screenshots.spec.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. require("../setup");
  2. import { expect } from "chai";
  3. import { Cassettes } from "mocha-cassettes";
  4. import { LokaliseApi } from "../../src/lokalise/lokalise_api";
  5. describe("Screenshots", function () {
  6. const cassette = new Cassettes("./test/cassettes");
  7. const lokaliseApi = new LokaliseApi({ apiKey: process.env.API_KEY });
  8. const project_id = "803826145ba90b42d5d860.46800099";
  9. const key_id = 15519786;
  10. const second_screenshot_id = 189268;
  11. const screenshot_id = 189213;
  12. const data =
  13. "data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAH0AAAAgCAIAAACw8uBbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAALkSURBVGhD7ZnNattAEIDzAO65r+CWtNCrqWUby01SHISVCqMeQujBhda0hlx8co6pDy0Un9pT60AuPRZKUK59APeNOquR5NXoZ7XyOnJgzYeQRrOzu99uJIj2Hjwycnj42PjZ7P1pH8DxSdOafflGIPlArf7u0rsem00Sz6d2uvCuLp7VJVuxvrzb8Od5C0uyAo/12SsxBkS2rcA7sP+0DdLhSOJZyHqvmRc/PPhJL5USavVX46tg5WSXbZO2Yu+abaC9V8Pe81ZHc/do79WgvVeDhPf351M4Xi6+8/AJmuIU9Q7S0TIvHSOaEhTyjtLRcmQ8imhKIPYeSUfL0XkU2QUaxtFy5MzNNomXQGGpHKTfq/fduzBzV7wT0QSSXBXaO4zbnJ+5/96+BpZ9NnoSwYktXWc1GkyMdsM8vhmxu3jJ8uORQIQ9wAo3tplVc94PGmIOX4pLCy5X7hHm+NXWQ/rYPEwtpRbp54x1MhR47w/iU2KC+NHj5EN9vi9/c0FDCGZEXKzJiuNi0F78nLPjId5aL5gbrD1bAFaWr0+ac0MKS4Wt+GQlZHr/1O39PThMAnHypiXgFotE+5fBRg4i3Mz5/Yh7MCXC54fntJfMnHXXE5etAZ8Zkdocb2ErPFdIpneim+elNcjxjgxtB6yxeYq9x+/m58elrHtJy9ncO/6x3qn3adckuhGIT6YzoXcApPhPidTnDD/J5N38/Ji1sJeUHCyF1qI1yM7kg8EAkptAFXnP968mfdRAZPThPJKe6h0er8EjIhwxzgSDyR3nzy32riORhBTfVLyX1By+1IrrETY+qZxsDu9YrL+NzQ4I3qu/ei8i6XDunr7hpad61xRB4N1sdX776uFoWzaRDpB8TUEE3gGn0wXpcCRxzSaIvWu2gfZeDdp7NWjv1aC9V4OEd/19VSFFvevvq2op5F1/X1WO2PvufF9tGOOFdz1zFPzDRGGpcki/V++Fd2Fmxd5bnf90pEGocXtKKgAAAABJRU5ErkJggg==";
  14. cassette
  15. .createTest("list_with_error", async () => {
  16. await lokaliseApi
  17. .screenshots()
  18. // We actually WANT this error to happen so ignoring TS warnings
  19. // @ts-ignore
  20. .list({})
  21. .catch((e: Error) => {
  22. expect(e.message).to.include("Required param project_id");
  23. });
  24. })
  25. .register(this);
  26. cassette
  27. .createTest("list", async () => {
  28. const screenshots = await lokaliseApi.screenshots().list({
  29. project_id: project_id,
  30. page: 1,
  31. limit: 1,
  32. });
  33. expect(screenshots.items[0].screenshot_id).to.eq(screenshot_id);
  34. expect(screenshots.items[0].key_ids).to.include(key_id);
  35. expect(screenshots.totalResults).to.eq(1);
  36. expect(screenshots.totalPages).to.eq(1);
  37. expect(screenshots.resultsPerPage).to.eq(1);
  38. expect(screenshots.currentPage).to.eq(1);
  39. expect(screenshots.hasPrevPage()).to.be.false;
  40. expect(screenshots.prevPage()).to.eq(1);
  41. })
  42. .register(this);
  43. cassette
  44. .createTest("get", async () => {
  45. const screenshot = await lokaliseApi.screenshots().get("757673", {
  46. project_id: project_id,
  47. });
  48. expect(screenshot.screenshot_id).to.eq(757673);
  49. expect(screenshot.key_ids).to.include(74166107);
  50. expect(screenshot.title).to.eq("123");
  51. expect(screenshot.description).to.eq("");
  52. expect(screenshot.screenshot_tags.length).to.eq(0);
  53. expect(screenshot.keys[0].key_id).to.eq(74166107);
  54. expect(screenshot.keys[0].coordinates.height).to.eq(12);
  55. expect(screenshot.url).to.include("s3.eu-central-1");
  56. expect(screenshot.width).to.eq(1506);
  57. expect(screenshot.height).to.eq(411);
  58. expect(screenshot.created_at).to.eq("2021-03-16 17:55:01 (Etc/UTC)");
  59. expect(screenshot.created_at_timestamp).to.eq(1615917301);
  60. })
  61. .register(this);
  62. cassette
  63. .createTest("create", async () => {
  64. const screenshots = await lokaliseApi.screenshots().create(
  65. [
  66. {
  67. data: data,
  68. ocr: false,
  69. key_ids: [key_id],
  70. tags: ["onboarding"],
  71. },
  72. ],
  73. { project_id: project_id }
  74. );
  75. expect(screenshots.items[0].screenshot_id).to.eq(second_screenshot_id);
  76. expect(screenshots.items[0].key_ids).to.include(key_id);
  77. expect(screenshots.errors[0].code).to.eq(405);
  78. })
  79. .register(this);
  80. cassette
  81. .createTest("update", async () => {
  82. const screenshot = await lokaliseApi
  83. .screenshots()
  84. .update(
  85. screenshot_id,
  86. { title: "node screen", description: "node desc" },
  87. { project_id: project_id }
  88. );
  89. expect(screenshot.screenshot_id).to.eq(screenshot_id);
  90. expect(screenshot.title).to.eq("node screen");
  91. expect(screenshot.description).to.eq("node desc");
  92. })
  93. .register(this);
  94. cassette
  95. .createTest("delete", async () => {
  96. const response = await lokaliseApi
  97. .screenshots()
  98. .delete(second_screenshot_id, { project_id: project_id });
  99. expect(response.project_id).to.eq(project_id);
  100. expect(response.screenshot_deleted).to.be.true;
  101. })
  102. .register(this);
  103. });