projects.spec.ts 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. require("../setup");
  2. import { expect } from "chai";
  3. import { Cassettes } from "mocha-cassettes";
  4. import { LokaliseApi } from "../../src/lokalise/lokalise_api";
  5. describe("Projects", function () {
  6. const cassette = new Cassettes("./test/cassettes");
  7. const lokaliseApi = new LokaliseApi({ apiKey: process.env.API_KEY });
  8. const project_id = "9367803563515cbe23fa19.58441884";
  9. const new_project_id = "580641925d0a726ead2fd7.11048498";
  10. cassette
  11. .createTest("list", async () => {
  12. const projects = await lokaliseApi.projects().list();
  13. expect(projects.items[0].name).to.eq("Angular");
  14. })
  15. .register(this);
  16. cassette
  17. .createTest("list_pagination", async () => {
  18. const projects = await lokaliseApi.projects().list({ page: 3, limit: 2 });
  19. expect(projects.items[0].name).to.eq("Blog");
  20. expect(projects.totalResults).to.eq(45);
  21. expect(projects.totalPages).to.eq(23);
  22. expect(projects.resultsPerPage).to.eq(2);
  23. expect(projects.currentPage).to.eq(3);
  24. })
  25. .register(this);
  26. cassette
  27. .createTest("create", async () => {
  28. const project = await lokaliseApi.projects().create({
  29. name: "Node.js test",
  30. description: "Test description",
  31. });
  32. expect(project.project_id).to.equal(project_id);
  33. expect(project.name).to.equal("Node.js test");
  34. expect(project.description).to.equal("Test description");
  35. })
  36. .register(this);
  37. cassette
  38. .createTest("get", async () => {
  39. const project = await lokaliseApi.projects().get(project_id);
  40. expect(project.project_id).to.equal(project_id);
  41. expect(project.project_type).to.equal("localization_files");
  42. expect(project.name).to.equal("Node.js test");
  43. expect(project.description).to.equal("Test description");
  44. expect(project.created_at).to.equal("2022-10-20 14:35:42 (Etc/UTC)");
  45. expect(project.created_at_timestamp).to.equal(1666276542);
  46. expect(project.created_by).to.equal(20181);
  47. expect(project.created_by_email).to.equal("bodrovis@protonmail.com");
  48. expect(project.team_id).to.equal(176692);
  49. expect(project.base_language_id).to.equal(640);
  50. expect(project.base_language_iso).to.equal("en");
  51. expect(project.settings.per_platform_key_names).to.be.false;
  52. expect(project.statistics.team).to.equal(2);
  53. })
  54. .register(this);
  55. cassette
  56. .createTest("update", async () => {
  57. const project = await lokaliseApi.projects().update(project_id, {
  58. name: "Node updated",
  59. description: "SDK update",
  60. });
  61. expect(project.project_id).to.equal(project_id);
  62. expect(project.name).to.equal("Node updated");
  63. expect(project.description).to.equal("SDK update");
  64. })
  65. .register(this);
  66. cassette
  67. .createTest("empty", async () => {
  68. const response = await lokaliseApi.projects().empty(new_project_id);
  69. expect(response.project_id).to.equal(new_project_id);
  70. expect(response.keys_deleted).to.be.true;
  71. })
  72. .register(this);
  73. cassette
  74. .createTest("delete", async () => {
  75. const response = await lokaliseApi.projects().delete(new_project_id);
  76. expect(response.project_id).to.be.equal(new_project_id);
  77. expect(response.project_deleted).to.be.true;
  78. })
  79. .register(this);
  80. });