smartling-api-sdk-nodejs 2.29.0 → 2.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/.github/workflows/publish.yml +29 -0
  2. package/README.md +13 -1
  3. package/api/files/params/file-type.ts +27 -1
  4. package/built/api/files/params/file-type.d.ts +27 -1
  5. package/built/api/files/params/file-type.js +26 -0
  6. package/built/api/files/params/file-type.js.map +1 -1
  7. package/built/package.json +1 -1
  8. package/built/test/access-token-provider.spec.d.ts +1 -0
  9. package/built/test/access-token-provider.spec.js +25 -0
  10. package/built/test/access-token-provider.spec.js.map +1 -0
  11. package/built/test/auth.spec.d.ts +1 -0
  12. package/built/test/auth.spec.js +332 -0
  13. package/built/test/auth.spec.js.map +1 -0
  14. package/built/test/base-file.spec.d.ts +1 -0
  15. package/built/test/base-file.spec.js +53 -0
  16. package/built/test/base-file.spec.js.map +1 -0
  17. package/built/test/base.spec.d.ts +1 -0
  18. package/built/test/base.spec.js +558 -0
  19. package/built/test/base.spec.js.map +1 -0
  20. package/built/test/builder.spec.d.ts +1 -0
  21. package/built/test/builder.spec.js +142 -0
  22. package/built/test/builder.spec.js.map +1 -0
  23. package/built/test/context.spec.d.ts +1 -0
  24. package/built/test/context.spec.js +154 -0
  25. package/built/test/context.spec.js.map +1 -0
  26. package/built/test/exception.spec.d.ts +1 -0
  27. package/built/test/exception.spec.js +20 -0
  28. package/built/test/exception.spec.js.map +1 -0
  29. package/built/test/file-translations.spec.d.ts +1 -0
  30. package/built/test/file-translations.spec.js +449 -0
  31. package/built/test/file-translations.spec.js.map +1 -0
  32. package/built/test/files.spec.d.ts +1 -0
  33. package/built/test/files.spec.js +489 -0
  34. package/built/test/files.spec.js.map +1 -0
  35. package/built/test/glossaries.spec.d.ts +1 -0
  36. package/built/test/glossaries.spec.js +182 -0
  37. package/built/test/glossaries.spec.js.map +1 -0
  38. package/built/test/job-batches.spec.d.ts +1 -0
  39. package/built/test/job-batches.spec.js +221 -0
  40. package/built/test/job-batches.spec.js.map +1 -0
  41. package/built/test/jobs.spec.d.ts +1 -0
  42. package/built/test/jobs.spec.js +357 -0
  43. package/built/test/jobs.spec.js.map +1 -0
  44. package/built/test/locales.spec.d.ts +1 -0
  45. package/built/test/locales.spec.js +66 -0
  46. package/built/test/locales.spec.js.map +1 -0
  47. package/built/test/mock.d.ts +18 -0
  48. package/built/test/mock.js +31 -0
  49. package/built/test/mock.js.map +1 -0
  50. package/built/test/mt.spec.d.ts +1 -0
  51. package/built/test/mt.spec.js +135 -0
  52. package/built/test/mt.spec.js.map +1 -0
  53. package/built/test/projects.spec.d.ts +1 -0
  54. package/built/test/projects.spec.js +87 -0
  55. package/built/test/projects.spec.js.map +1 -0
  56. package/built/test/published-files.spec.d.ts +1 -0
  57. package/built/test/published-files.spec.js +76 -0
  58. package/built/test/published-files.spec.js.map +1 -0
  59. package/built/test/report-api.spec.d.ts +1 -0
  60. package/built/test/report-api.spec.js +187 -0
  61. package/built/test/report-api.spec.js.map +1 -0
  62. package/built/test/stream-to-string.d.ts +4 -0
  63. package/built/test/stream-to-string.js +14 -0
  64. package/built/test/stream-to-string.js.map +1 -0
  65. package/built/test/strings.spec.d.ts +1 -0
  66. package/built/test/strings.spec.js +204 -0
  67. package/built/test/strings.spec.js.map +1 -0
  68. package/built/test/tags.spec.d.ts +1 -0
  69. package/built/test/tags.spec.js +423 -0
  70. package/built/test/tags.spec.js.map +1 -0
  71. package/built/test/webhooks.spec.d.ts +1 -0
  72. package/built/test/webhooks.spec.js +447 -0
  73. package/built/test/webhooks.spec.js.map +1 -0
  74. package/package.json +1 -1
  75. package/.scannerwork/.sonar_lock +0 -0
  76. package/.scannerwork/report-task.txt +0 -6
@@ -0,0 +1,449 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const assert_1 = __importDefault(require("assert"));
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const sinon_1 = __importDefault(require("sinon"));
18
+ const mock_1 = require("./mock");
19
+ const file_translations_1 = require("../api/file-translations");
20
+ const fts_upload_file_parameters_1 = require("../api/file-translations/params/fts-upload-file-parameters");
21
+ const file_type_1 = require("../api/files/params/file-type");
22
+ const stream_to_string_1 = require("./stream-to-string");
23
+ const translate_file_parameters_1 = require("../api/file-translations/params/translate-file-parameters");
24
+ const fts_callback_method_1 = require("../api/file-translations/params/fts-callback-method");
25
+ const language_detection_parameters_1 = require("../api/file-translations/params/language-detection-parameters");
26
+ describe("SmartlingFileTranslationsApi class tests.", () => {
27
+ const userAgent = "test_user_agent";
28
+ const accountUid = "testAccountUid";
29
+ const fileUid = "testFileUid";
30
+ const mtUid = "testMtUid";
31
+ const languageDetectionUid = "testLanguageDetectionUid";
32
+ let fileTranslationsApi;
33
+ let fileTranslationsApiFetchStub;
34
+ let fileTranslationsApiUaStub;
35
+ let responseMockJsonStub;
36
+ let getHeaderStub;
37
+ beforeEach(() => {
38
+ fileTranslationsApi = new file_translations_1.SmartlingFileTranslationsApi("https://test.com", mock_1.authMock, mock_1.loggerMock);
39
+ fileTranslationsApiFetchStub = sinon_1.default.stub(fileTranslationsApi, "fetch");
40
+ fileTranslationsApiUaStub = sinon_1.default.stub(fileTranslationsApi, "ua");
41
+ responseMockJsonStub = sinon_1.default.stub(mock_1.responseMock, "json");
42
+ fileTranslationsApiFetchStub.returns(mock_1.responseMock);
43
+ fileTranslationsApiUaStub.returns(userAgent);
44
+ responseMockJsonStub.returns({
45
+ response: {}
46
+ });
47
+ getHeaderStub = sinon_1.default.stub(mock_1.responseMock.headers, "get");
48
+ getHeaderStub.returns(null);
49
+ });
50
+ afterEach(() => {
51
+ fileTranslationsApiFetchStub.restore();
52
+ fileTranslationsApiUaStub.restore();
53
+ responseMockJsonStub.restore();
54
+ getHeaderStub.restore();
55
+ });
56
+ describe("Methods", () => {
57
+ it("Upload file: from disk", () => __awaiter(void 0, void 0, void 0, function* () {
58
+ const params = new fts_upload_file_parameters_1.FtsUploadFileParameters();
59
+ params
60
+ .setFileType(file_type_1.FileType.XML)
61
+ .setFileFromLocalFilePath("./test/data/file.xml");
62
+ yield fileTranslationsApi.uploadFile(accountUid, params);
63
+ sinon_1.default.assert.calledOnce(fileTranslationsApiFetchStub);
64
+ const fileTranslationsApiFetchCall = fileTranslationsApiFetchStub.getCall(0);
65
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[0], `https://test.com/file-translations-api/v2/accounts/${accountUid}/files`);
66
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].method, "post");
67
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers.Authorization, "test_token_type test_access_token");
68
+ const testFileContent = fs_1.default.readFileSync(fs_1.default.realpathSync("./test/data/file.xml"), "utf8");
69
+ const formData = fileTranslationsApiFetchCall.args[1].body;
70
+ const boundary = formData.getBoundary();
71
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["User-Agent"], userAgent);
72
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["Content-Type"], `multipart/form-data; boundary=${boundary}`);
73
+ const content = yield (0, stream_to_string_1.streamToString)(fileTranslationsApiFetchCall.args[1].body._streams[1]);
74
+ assert_1.default.equal(content, testFileContent);
75
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].body._streams[4], "{\"fileType\":\"XML\"}");
76
+ }));
77
+ it("Upload file: as string", () => __awaiter(void 0, void 0, void 0, function* () {
78
+ const params = new fts_upload_file_parameters_1.FtsUploadFileParameters();
79
+ const testFileContent = fs_1.default.readFileSync(fs_1.default.realpathSync("./test/data/file.xml"), "utf8");
80
+ params
81
+ .setFileType(file_type_1.FileType.XML)
82
+ .setFileContent(testFileContent);
83
+ yield fileTranslationsApi.uploadFile(accountUid, params);
84
+ sinon_1.default.assert.calledOnce(fileTranslationsApiFetchStub);
85
+ const fileTranslationsApiFetchCall = fileTranslationsApiFetchStub.getCall(0);
86
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[0], `https://test.com/file-translations-api/v2/accounts/${accountUid}/files`);
87
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].method, "post");
88
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers.Authorization, "test_token_type test_access_token");
89
+ const formData = fileTranslationsApiFetchCall.args[1].body;
90
+ const boundary = formData.getBoundary();
91
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["User-Agent"], userAgent);
92
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["Content-Type"], `multipart/form-data; boundary=${boundary}`);
93
+ const content = yield (0, stream_to_string_1.streamToString)(fileTranslationsApiFetchCall.args[1].body._streams[1]);
94
+ assert_1.default.equal(content, testFileContent);
95
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].body._streams[4], "{\"fileType\":\"XML\"}");
96
+ }));
97
+ it("Upload file: as binary buffer", () => __awaiter(void 0, void 0, void 0, function* () {
98
+ const params = new fts_upload_file_parameters_1.FtsUploadFileParameters();
99
+ const testFileContent = fs_1.default.readFileSync(fs_1.default.realpathSync("./test/data/file.xml"));
100
+ params
101
+ .setFileType(file_type_1.FileType.XML)
102
+ .setFileContentFromBuffer(testFileContent);
103
+ yield fileTranslationsApi.uploadFile(accountUid, params);
104
+ sinon_1.default.assert.calledOnce(fileTranslationsApiFetchStub);
105
+ const fileTranslationsApiFetchCall = fileTranslationsApiFetchStub.getCall(0);
106
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[0], `https://test.com/file-translations-api/v2/accounts/${accountUid}/files`);
107
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].method, "post");
108
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers.Authorization, "test_token_type test_access_token");
109
+ const formData = fileTranslationsApiFetchCall.args[1].body;
110
+ const boundary = formData.getBoundary();
111
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["User-Agent"], userAgent);
112
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["Content-Type"], `multipart/form-data; boundary=${boundary}`);
113
+ const content = fileTranslationsApiFetchCall.args[1].body._streams[1].toString("utf-8");
114
+ assert_1.default.equal(content, testFileContent);
115
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].body._streams[4], "{\"fileType\":\"XML\"}");
116
+ }));
117
+ it("Upload file: with file name", () => __awaiter(void 0, void 0, void 0, function* () {
118
+ const params = new fts_upload_file_parameters_1.FtsUploadFileParameters();
119
+ const testFileContent = fs_1.default.readFileSync(fs_1.default.realpathSync("./test/data/file.xml"));
120
+ params
121
+ .setFileType(file_type_1.FileType.XML)
122
+ .setFileContentFromBuffer(testFileContent)
123
+ .setFileName("my-file");
124
+ yield fileTranslationsApi.uploadFile(accountUid, params);
125
+ sinon_1.default.assert.calledOnce(fileTranslationsApiFetchStub);
126
+ const fileTranslationsApiFetchCall = fileTranslationsApiFetchStub.getCall(0);
127
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[0], `https://test.com/file-translations-api/v2/accounts/${accountUid}/files`);
128
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].method, "post");
129
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers.Authorization, "test_token_type test_access_token");
130
+ const formData = fileTranslationsApiFetchCall.args[1].body;
131
+ const boundary = formData.getBoundary();
132
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["User-Agent"], userAgent);
133
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["Content-Type"], `multipart/form-data; boundary=${boundary}`);
134
+ const content = fileTranslationsApiFetchCall.args[1].body._streams[1].toString("utf-8");
135
+ assert_1.default.equal(content, testFileContent);
136
+ const contentDisposition = fileTranslationsApiFetchCall.args[1].body._streams[0].toString("utf-8");
137
+ assert_1.default.ok(contentDisposition.includes("filename=\"my-file\""));
138
+ assert_1.default.ok(contentDisposition.includes("Content-Type: application/octet-stream"));
139
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].body._streams[4], "{\"fileType\":\"XML\"}");
140
+ }));
141
+ it("Upload file: with file content type", () => __awaiter(void 0, void 0, void 0, function* () {
142
+ const params = new fts_upload_file_parameters_1.FtsUploadFileParameters();
143
+ const testFileContent = fs_1.default.readFileSync(fs_1.default.realpathSync("./test/data/file.xml"));
144
+ params
145
+ .setFileType(file_type_1.FileType.XML)
146
+ .setFileContentFromBuffer(testFileContent)
147
+ .setFileContentType("application/xml");
148
+ yield fileTranslationsApi.uploadFile(accountUid, params);
149
+ sinon_1.default.assert.calledOnce(fileTranslationsApiFetchStub);
150
+ const fileTranslationsApiFetchCall = fileTranslationsApiFetchStub.getCall(0);
151
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[0], `https://test.com/file-translations-api/v2/accounts/${accountUid}/files`);
152
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].method, "post");
153
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers.Authorization, "test_token_type test_access_token");
154
+ const formData = fileTranslationsApiFetchCall.args[1].body;
155
+ const boundary = formData.getBoundary();
156
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["User-Agent"], userAgent);
157
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].headers["Content-Type"], `multipart/form-data; boundary=${boundary}`);
158
+ const content = fileTranslationsApiFetchCall.args[1].body._streams[1].toString("utf-8");
159
+ assert_1.default.equal(content, testFileContent);
160
+ const contentDisposition = fileTranslationsApiFetchCall.args[1].body._streams[0].toString("utf-8");
161
+ assert_1.default.ok(!contentDisposition.includes("filename="));
162
+ assert_1.default.ok(contentDisposition.includes("Content-Type: application/xml"));
163
+ assert_1.default.equal(fileTranslationsApiFetchCall.args[1].body._streams[4], "{\"fileType\":\"XML\"}");
164
+ }));
165
+ it("Translate file", () => __awaiter(void 0, void 0, void 0, function* () {
166
+ const params = new translate_file_parameters_1.TranslateFileParameters();
167
+ params
168
+ .setSourceLocaleId("en-US")
169
+ .setTargetLocaleIds(["de-DE", "fr-FR"]);
170
+ yield fileTranslationsApi.translateFile(accountUid, fileUid, params);
171
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt`, {
172
+ method: "post",
173
+ headers: {
174
+ Authorization: "test_token_type test_access_token",
175
+ "Content-Type": "application/json",
176
+ "User-Agent": userAgent
177
+ },
178
+ body: JSON.stringify({
179
+ sourceLocaleId: "en-US",
180
+ targetLocaleIds: ["de-DE", "fr-FR"]
181
+ })
182
+ });
183
+ }));
184
+ it("Translate file with callback and without user data", () => __awaiter(void 0, void 0, void 0, function* () {
185
+ const params = new translate_file_parameters_1.TranslateFileParameters();
186
+ params
187
+ .setSourceLocaleId("en-US")
188
+ .setTargetLocaleIds(["de-DE", "fr-FR"])
189
+ .setCallback({
190
+ url: "https://myhost.com",
191
+ httpMethod: fts_callback_method_1.FtsCallbackMethod.POST
192
+ });
193
+ yield fileTranslationsApi.translateFile(accountUid, fileUid, params);
194
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt`, {
195
+ method: "post",
196
+ headers: {
197
+ Authorization: "test_token_type test_access_token",
198
+ "Content-Type": "application/json",
199
+ "User-Agent": userAgent
200
+ },
201
+ body: JSON.stringify({
202
+ sourceLocaleId: "en-US",
203
+ targetLocaleIds: ["de-DE", "fr-FR"],
204
+ callback: {
205
+ url: "https://myhost.com",
206
+ httpMethod: "POST"
207
+ }
208
+ })
209
+ });
210
+ }));
211
+ it("Translate file with callback and user data", () => __awaiter(void 0, void 0, void 0, function* () {
212
+ const params = new translate_file_parameters_1.TranslateFileParameters();
213
+ params
214
+ .setSourceLocaleId("en-US")
215
+ .setTargetLocaleIds(["de-DE", "fr-FR"])
216
+ .setCallback({
217
+ url: "https://myhost.com",
218
+ httpMethod: fts_callback_method_1.FtsCallbackMethod.POST,
219
+ userData: "test user data"
220
+ });
221
+ yield fileTranslationsApi.translateFile(accountUid, fileUid, params);
222
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt`, {
223
+ method: "post",
224
+ headers: {
225
+ Authorization: "test_token_type test_access_token",
226
+ "Content-Type": "application/json",
227
+ "User-Agent": userAgent
228
+ },
229
+ body: JSON.stringify({
230
+ sourceLocaleId: "en-US",
231
+ targetLocaleIds: ["de-DE", "fr-FR"],
232
+ callback: {
233
+ url: "https://myhost.com",
234
+ httpMethod: "POST",
235
+ userData: "test user data"
236
+ }
237
+ })
238
+ });
239
+ }));
240
+ it("Get translation progress", () => __awaiter(void 0, void 0, void 0, function* () {
241
+ yield fileTranslationsApi.getTranslationProgress(accountUid, fileUid, mtUid);
242
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/status`, {
243
+ method: "get",
244
+ headers: {
245
+ Authorization: "test_token_type test_access_token",
246
+ "Content-Type": "application/json",
247
+ "User-Agent": userAgent
248
+ }
249
+ });
250
+ }));
251
+ it("Download translated file", () => __awaiter(void 0, void 0, void 0, function* () {
252
+ const localeId = "de-DE";
253
+ yield fileTranslationsApi.downloadTranslatedFile(accountUid, fileUid, mtUid, localeId);
254
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/${localeId}/file`, {
255
+ method: "get",
256
+ headers: {
257
+ Authorization: "test_token_type test_access_token",
258
+ "Content-Type": "application/json",
259
+ "User-Agent": userAgent
260
+ }
261
+ });
262
+ }));
263
+ it("Download translated file with metadata when no headers", () => __awaiter(void 0, void 0, void 0, function* () {
264
+ const localeId = "de-DE";
265
+ const fileWithMetadata = yield fileTranslationsApi.downloadTranslatedFileWithMetadata(accountUid, fileUid, mtUid, localeId);
266
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/${localeId}/file`, {
267
+ method: "get",
268
+ headers: {
269
+ Authorization: "test_token_type test_access_token",
270
+ "Content-Type": "application/json",
271
+ "User-Agent": userAgent
272
+ }
273
+ });
274
+ assert_1.default.ok(fileWithMetadata.contentType === undefined);
275
+ assert_1.default.ok(fileWithMetadata.fileName === undefined);
276
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
277
+ }));
278
+ it("Download translated file with metadata", () => __awaiter(void 0, void 0, void 0, function* () {
279
+ const localeId = "de-DE";
280
+ getHeaderStub.onCall(0).returns("application/xml");
281
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.xml\"");
282
+ getHeaderStub.returns(null);
283
+ const fileWithMetadata = yield fileTranslationsApi.downloadTranslatedFileWithMetadata(accountUid, fileUid, mtUid, localeId);
284
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/${localeId}/file`, {
285
+ method: "get",
286
+ headers: {
287
+ Authorization: "test_token_type test_access_token",
288
+ "Content-Type": "application/json",
289
+ "User-Agent": userAgent
290
+ }
291
+ });
292
+ assert_1.default.ok(fileWithMetadata.contentType === "application/xml");
293
+ assert_1.default.ok(fileWithMetadata.fileName === "test.xml");
294
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
295
+ }));
296
+ it("Download translated file with escaped quotes in the file name", () => __awaiter(void 0, void 0, void 0, function* () {
297
+ const localeId = "de-DE";
298
+ getHeaderStub.onCall(0).returns("application/xml");
299
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test - \\\"phase 1\\\".xml\"");
300
+ getHeaderStub.returns(null);
301
+ const fileWithMetadata = yield fileTranslationsApi.downloadTranslatedFileWithMetadata(accountUid, fileUid, mtUid, localeId);
302
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/${localeId}/file`, {
303
+ method: "get",
304
+ headers: {
305
+ Authorization: "test_token_type test_access_token",
306
+ "Content-Type": "application/json",
307
+ "User-Agent": userAgent
308
+ }
309
+ });
310
+ assert_1.default.ok(fileWithMetadata.contentType === "application/xml");
311
+ assert_1.default.ok(fileWithMetadata.fileName === "test - \"phase 1\".xml");
312
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
313
+ }));
314
+ it("Download translated files", () => __awaiter(void 0, void 0, void 0, function* () {
315
+ yield fileTranslationsApi.downloadTranslatedFiles(accountUid, fileUid, mtUid);
316
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/all/file/zip`, {
317
+ method: "get",
318
+ headers: {
319
+ Authorization: "test_token_type test_access_token",
320
+ "Content-Type": "application/json",
321
+ "User-Agent": userAgent
322
+ }
323
+ });
324
+ }));
325
+ it("Download translated files with metadata when no headers", () => __awaiter(void 0, void 0, void 0, function* () {
326
+ const fileWithMetadata = yield fileTranslationsApi.downloadTranslatedFilesWithMetadata(accountUid, fileUid, mtUid);
327
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/all/file/zip`, {
328
+ method: "get",
329
+ headers: {
330
+ Authorization: "test_token_type test_access_token",
331
+ "Content-Type": "application/json",
332
+ "User-Agent": userAgent
333
+ }
334
+ });
335
+ assert_1.default.ok(fileWithMetadata.contentType === undefined);
336
+ assert_1.default.ok(fileWithMetadata.fileName === undefined);
337
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
338
+ }));
339
+ it("Download translated files with metadata", () => __awaiter(void 0, void 0, void 0, function* () {
340
+ getHeaderStub.onCall(0).returns("application/zip");
341
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.zip\"");
342
+ getHeaderStub.returns(null);
343
+ const fileWithMetadata = yield fileTranslationsApi.downloadTranslatedFilesWithMetadata(accountUid, fileUid, mtUid);
344
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/locales/all/file/zip`, {
345
+ method: "get",
346
+ headers: {
347
+ Authorization: "test_token_type test_access_token",
348
+ "Content-Type": "application/json",
349
+ "User-Agent": userAgent
350
+ }
351
+ });
352
+ assert_1.default.ok(fileWithMetadata.contentType === "application/zip");
353
+ assert_1.default.ok(fileWithMetadata.fileName === "test.zip");
354
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
355
+ }));
356
+ it("Cancel file translation", () => __awaiter(void 0, void 0, void 0, function* () {
357
+ yield fileTranslationsApi.cancelFileTranslation(accountUid, fileUid, mtUid);
358
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/mt/${mtUid}/cancel`, {
359
+ method: "post",
360
+ headers: {
361
+ Authorization: "test_token_type test_access_token",
362
+ "Content-Type": "application/json",
363
+ "User-Agent": userAgent
364
+ }
365
+ });
366
+ }));
367
+ it("Detect file language", () => __awaiter(void 0, void 0, void 0, function* () {
368
+ yield fileTranslationsApi.detectFileLanguage(accountUid, fileUid);
369
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/language-detection`, {
370
+ method: "post",
371
+ headers: {
372
+ Authorization: "test_token_type test_access_token",
373
+ "Content-Type": "application/json",
374
+ "User-Agent": userAgent
375
+ }
376
+ });
377
+ }));
378
+ it("Detect file language with empty parameters", () => __awaiter(void 0, void 0, void 0, function* () {
379
+ yield fileTranslationsApi.detectFileLanguage(accountUid, fileUid, new language_detection_parameters_1.LanguageDetectionParameters());
380
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/language-detection`, {
381
+ method: "post",
382
+ headers: {
383
+ Authorization: "test_token_type test_access_token",
384
+ "Content-Type": "application/json",
385
+ "User-Agent": userAgent
386
+ },
387
+ body: JSON.stringify({})
388
+ });
389
+ }));
390
+ it("Detect file language with callback and without user data", () => __awaiter(void 0, void 0, void 0, function* () {
391
+ const params = new language_detection_parameters_1.LanguageDetectionParameters()
392
+ .setCallback({
393
+ url: "https://myhost.com",
394
+ httpMethod: fts_callback_method_1.FtsCallbackMethod.POST
395
+ });
396
+ yield fileTranslationsApi.detectFileLanguage(accountUid, fileUid, params);
397
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/language-detection`, {
398
+ method: "post",
399
+ headers: {
400
+ Authorization: "test_token_type test_access_token",
401
+ "Content-Type": "application/json",
402
+ "User-Agent": userAgent
403
+ },
404
+ body: JSON.stringify({
405
+ callback: {
406
+ url: "https://myhost.com",
407
+ httpMethod: "POST"
408
+ }
409
+ })
410
+ });
411
+ }));
412
+ it("Detect file language with callback and with user data", () => __awaiter(void 0, void 0, void 0, function* () {
413
+ const params = new language_detection_parameters_1.LanguageDetectionParameters()
414
+ .setCallback({
415
+ url: "https://myhost.com",
416
+ httpMethod: fts_callback_method_1.FtsCallbackMethod.POST,
417
+ userData: "test user data"
418
+ });
419
+ yield fileTranslationsApi.detectFileLanguage(accountUid, fileUid, params);
420
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/language-detection`, {
421
+ method: "post",
422
+ headers: {
423
+ Authorization: "test_token_type test_access_token",
424
+ "Content-Type": "application/json",
425
+ "User-Agent": userAgent
426
+ },
427
+ body: JSON.stringify({
428
+ callback: {
429
+ url: "https://myhost.com",
430
+ httpMethod: "POST",
431
+ userData: "test user data"
432
+ }
433
+ })
434
+ });
435
+ }));
436
+ it("Get language detection progress", () => __awaiter(void 0, void 0, void 0, function* () {
437
+ yield fileTranslationsApi.getLanguageDetectionProgress(accountUid, fileUid, languageDetectionUid);
438
+ sinon_1.default.assert.calledOnceWithExactly(fileTranslationsApiFetchStub, `https://test.com/file-translations-api/v2/accounts/${accountUid}/files/${fileUid}/language-detection/${languageDetectionUid}/status`, {
439
+ method: "get",
440
+ headers: {
441
+ Authorization: "test_token_type test_access_token",
442
+ "Content-Type": "application/json",
443
+ "User-Agent": userAgent
444
+ }
445
+ });
446
+ }));
447
+ });
448
+ });
449
+ //# sourceMappingURL=file-translations.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-translations.spec.js","sourceRoot":"","sources":["../../test/file-translations.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};