user_groups.spec.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. require("../setup");
  2. import { expect } from "chai";
  3. import { Cassettes } from "mocha-cassettes";
  4. import { LokaliseApi } from "../../src/lokalise/lokalise_api";
  5. describe("UserGroups", function () {
  6. const cassette = new Cassettes("./test/cassettes");
  7. const lokaliseApi = new LokaliseApi({ apiKey: process.env.API_KEY });
  8. const team_id = 176692;
  9. const group_id = 7561;
  10. const new_group_id = 762;
  11. const user_id = 20181;
  12. const project_id = "531138705d0ba0c18f5b43.63503311";
  13. cassette
  14. .createTest("list", async () => {
  15. const user_groups = await lokaliseApi.userGroups().list({
  16. team_id: team_id,
  17. });
  18. expect(user_groups.items[1].group_id).to.eq(group_id);
  19. expect(user_groups.totalResults).to.eq(4);
  20. expect(user_groups.currentPage).to.eq(1);
  21. })
  22. .register(this);
  23. cassette
  24. .createTest("list_pagination", async () => {
  25. const user_groups = await lokaliseApi.userGroups().list({
  26. team_id: team_id,
  27. page: 1,
  28. limit: 1,
  29. });
  30. expect(user_groups.items[0].group_id).to.eq(2639);
  31. expect(user_groups.totalResults).to.eq(4);
  32. expect(user_groups.totalPages).to.eq(4);
  33. expect(user_groups.resultsPerPage).to.eq(1);
  34. expect(user_groups.currentPage).to.eq(1);
  35. })
  36. .register(this);
  37. cassette
  38. .createTest("get", async () => {
  39. const user_group = await lokaliseApi.userGroups().get(group_id, {
  40. team_id: team_id,
  41. });
  42. expect(user_group.group_id).to.eq(group_id);
  43. expect(user_group.name).to.eq("Restricted");
  44. expect(user_group.permissions.is_admin).to.be.false;
  45. expect(user_group.permissions.is_reviewer).to.be.true;
  46. const languages = user_group.permissions.languages[1];
  47. expect(languages.is_writable).to.be.true;
  48. expect(languages.lang_id).to.eq(910);
  49. expect(languages.lang_iso).to.eq("ak");
  50. expect(languages.lang_name).to.eq("Akan");
  51. expect(user_group.created_at).to.eq("2022-08-01 14:16:44 (Etc/UTC)");
  52. expect(user_group.created_at_timestamp).to.eq(1659363404);
  53. expect(user_group.team_id).to.eq(team_id);
  54. expect(user_group.projects).to.include("2273827860c1e2473eb195.11207948");
  55. expect(user_group.members).to.include(34051);
  56. })
  57. .register(this);
  58. cassette
  59. .createTest("create", async () => {
  60. const user_group = await lokaliseApi.userGroups().create(
  61. {
  62. name: "Node",
  63. is_reviewer: false,
  64. is_admin: true,
  65. admin_rights: ["upload"],
  66. },
  67. { team_id: team_id }
  68. );
  69. expect(user_group.group_id).to.eq(new_group_id);
  70. expect(user_group.name).to.eq("Node");
  71. expect(user_group.permissions.is_admin).to.be.true;
  72. })
  73. .register(this);
  74. cassette
  75. .createTest("update", async () => {
  76. const user_group = await lokaliseApi.userGroups().update(
  77. new_group_id,
  78. {
  79. name: "Node updated",
  80. is_reviewer: false,
  81. is_admin: true,
  82. admin_rights: ["upload"],
  83. },
  84. { team_id: team_id }
  85. );
  86. expect(user_group.group_id).to.eq(new_group_id);
  87. expect(user_group.name).to.eq("Node updated");
  88. expect(user_group.permissions.is_admin).to.be.true;
  89. })
  90. .register(this);
  91. cassette
  92. .createTest("add_project_to_group", async () => {
  93. const user_group = await lokaliseApi
  94. .userGroups()
  95. .add_projects_to_group(team_id, new_group_id, [project_id]);
  96. expect(user_group.group_id).to.eq(new_group_id);
  97. expect(user_group.projects).to.include(project_id);
  98. })
  99. .register(this);
  100. cassette
  101. .createTest("remove_project_from_group", async () => {
  102. const user_group = await lokaliseApi
  103. .userGroups()
  104. .remove_projects_from_group(team_id, new_group_id, [project_id]);
  105. expect(user_group.group_id).to.eq(new_group_id);
  106. expect(user_group.projects).not.to.include(project_id);
  107. })
  108. .register(this);
  109. cassette
  110. .createTest("add_members_to_group", async () => {
  111. const user_group = await lokaliseApi
  112. .userGroups()
  113. .add_members_to_group(team_id, new_group_id, [user_id]);
  114. expect(user_group.group_id).to.eq(new_group_id);
  115. expect(user_group.members).to.include(user_id);
  116. })
  117. .register(this);
  118. cassette
  119. .createTest("remove_members_from_group", async () => {
  120. const user_group = await lokaliseApi
  121. .userGroups()
  122. .remove_members_from_group(team_id, new_group_id, [user_id]);
  123. expect(user_group.group_id).to.eq(new_group_id);
  124. expect(user_group.members).not.to.include(user_id);
  125. })
  126. .register(this);
  127. cassette
  128. .createTest("delete", async () => {
  129. const response = await lokaliseApi.userGroups().delete(new_group_id, {
  130. team_id: team_id,
  131. });
  132. expect(response.team_id).to.eq(team_id);
  133. expect(response.group_deleted).to.be.true;
  134. })
  135. .register(this);
  136. });