languages.spec.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. require("../setup");
  2. import { expect } from "chai";
  3. import { Cassettes } from "mocha-cassettes";
  4. import { LokaliseApi } from "../../src/lokalise/lokalise_api";
  5. describe("Languages", 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 lang_id = 601;
  10. const second_lang_id = 910;
  11. cassette
  12. .createTest("list", async () => {
  13. const languages = await lokaliseApi.languages().list({
  14. project_id: project_id,
  15. });
  16. expect(languages.items[0].lang_id).to.eq(803);
  17. expect(languages.items[0].lang_name).to.eq("Albanian");
  18. })
  19. .register(this);
  20. cassette
  21. .createTest("list_pagination", async () => {
  22. const languages = await lokaliseApi.languages().list({
  23. project_id: project_id,
  24. page: 2,
  25. limit: 4,
  26. });
  27. expect(languages.items[0].lang_id).to.eq(lang_id);
  28. expect(languages.items[0].lang_name).to.eq("Chinese Traditional");
  29. expect(languages.totalResults).to.eq(12);
  30. expect(languages.totalPages).to.eq(3);
  31. expect(languages.resultsPerPage).to.eq(4);
  32. expect(languages.currentPage).to.eq(2);
  33. })
  34. .register(this);
  35. cassette
  36. .createTest("system_languages", async () => {
  37. const languages = await lokaliseApi.languages().system_languages({
  38. page: 3,
  39. limit: 2,
  40. });
  41. expect(languages.items[0].lang_id).to.eq(792);
  42. expect(languages.items[0].lang_name).to.eq("Afrikaans (South Africa)");
  43. expect(languages.totalResults).to.eq(619);
  44. expect(languages.totalPages).to.eq(310);
  45. expect(languages.resultsPerPage).to.eq(2);
  46. expect(languages.currentPage).to.eq(3);
  47. })
  48. .register(this);
  49. cassette
  50. .createTest("system_languages_all", async () => {
  51. const languages = await lokaliseApi.languages().system_languages();
  52. expect(languages.items[0].lang_id).to.eq(894);
  53. })
  54. .register(this);
  55. cassette
  56. .createTest("get", async () => {
  57. const language = await lokaliseApi.languages().get(lang_id, {
  58. project_id: project_id,
  59. });
  60. expect(language.lang_id).to.eq(lang_id);
  61. expect(language.lang_name).to.eq("Chinese Traditional");
  62. expect(language.lang_iso).to.eq("zh_TW");
  63. expect(language.is_rtl).to.be.false;
  64. expect(language.plural_forms).to.include("other");
  65. })
  66. .register(this);
  67. cassette
  68. .createTest("create", async () => {
  69. const languages = await lokaliseApi.languages().create(
  70. [
  71. {
  72. lang_iso: "ak",
  73. },
  74. ],
  75. { project_id: project_id }
  76. );
  77. expect(languages.items[0].lang_id).to.eq(second_lang_id);
  78. expect(languages.items[0].lang_name).to.eq("Akan");
  79. expect(languages.errors.length).to.eq(0);
  80. })
  81. .register(this);
  82. cassette
  83. .createTest("update", async () => {
  84. const language = await lokaliseApi.languages().update(
  85. lang_id,
  86. {
  87. lang_name: "Chinese Traditional Custom",
  88. },
  89. { project_id: project_id }
  90. );
  91. expect(language.lang_id).to.eq(lang_id);
  92. expect(language.lang_name).to.eq("Chinese Traditional Custom");
  93. })
  94. .register(this);
  95. cassette
  96. .createTest("delete", async () => {
  97. const response = await lokaliseApi.languages().delete(second_lang_id, {
  98. project_id: project_id,
  99. });
  100. expect(response.project_id).to.eq(project_id);
  101. expect(response.language_deleted).to.be.true;
  102. })
  103. .register(this);
  104. });