smartling-api-sdk-nodejs 2.29.0 → 2.30.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 (71) hide show
  1. package/.github/workflows/publish.yml +29 -0
  2. package/built/package.json +1 -1
  3. package/built/test/access-token-provider.spec.d.ts +1 -0
  4. package/built/test/access-token-provider.spec.js +25 -0
  5. package/built/test/access-token-provider.spec.js.map +1 -0
  6. package/built/test/auth.spec.d.ts +1 -0
  7. package/built/test/auth.spec.js +332 -0
  8. package/built/test/auth.spec.js.map +1 -0
  9. package/built/test/base-file.spec.d.ts +1 -0
  10. package/built/test/base-file.spec.js +53 -0
  11. package/built/test/base-file.spec.js.map +1 -0
  12. package/built/test/base.spec.d.ts +1 -0
  13. package/built/test/base.spec.js +558 -0
  14. package/built/test/base.spec.js.map +1 -0
  15. package/built/test/builder.spec.d.ts +1 -0
  16. package/built/test/builder.spec.js +142 -0
  17. package/built/test/builder.spec.js.map +1 -0
  18. package/built/test/context.spec.d.ts +1 -0
  19. package/built/test/context.spec.js +154 -0
  20. package/built/test/context.spec.js.map +1 -0
  21. package/built/test/exception.spec.d.ts +1 -0
  22. package/built/test/exception.spec.js +20 -0
  23. package/built/test/exception.spec.js.map +1 -0
  24. package/built/test/file-translations.spec.d.ts +1 -0
  25. package/built/test/file-translations.spec.js +449 -0
  26. package/built/test/file-translations.spec.js.map +1 -0
  27. package/built/test/files.spec.d.ts +1 -0
  28. package/built/test/files.spec.js +489 -0
  29. package/built/test/files.spec.js.map +1 -0
  30. package/built/test/glossaries.spec.d.ts +1 -0
  31. package/built/test/glossaries.spec.js +182 -0
  32. package/built/test/glossaries.spec.js.map +1 -0
  33. package/built/test/job-batches.spec.d.ts +1 -0
  34. package/built/test/job-batches.spec.js +221 -0
  35. package/built/test/job-batches.spec.js.map +1 -0
  36. package/built/test/jobs.spec.d.ts +1 -0
  37. package/built/test/jobs.spec.js +357 -0
  38. package/built/test/jobs.spec.js.map +1 -0
  39. package/built/test/locales.spec.d.ts +1 -0
  40. package/built/test/locales.spec.js +66 -0
  41. package/built/test/locales.spec.js.map +1 -0
  42. package/built/test/mock.d.ts +18 -0
  43. package/built/test/mock.js +31 -0
  44. package/built/test/mock.js.map +1 -0
  45. package/built/test/mt.spec.d.ts +1 -0
  46. package/built/test/mt.spec.js +135 -0
  47. package/built/test/mt.spec.js.map +1 -0
  48. package/built/test/projects.spec.d.ts +1 -0
  49. package/built/test/projects.spec.js +87 -0
  50. package/built/test/projects.spec.js.map +1 -0
  51. package/built/test/published-files.spec.d.ts +1 -0
  52. package/built/test/published-files.spec.js +76 -0
  53. package/built/test/published-files.spec.js.map +1 -0
  54. package/built/test/report-api.spec.d.ts +1 -0
  55. package/built/test/report-api.spec.js +187 -0
  56. package/built/test/report-api.spec.js.map +1 -0
  57. package/built/test/stream-to-string.d.ts +4 -0
  58. package/built/test/stream-to-string.js +14 -0
  59. package/built/test/stream-to-string.js.map +1 -0
  60. package/built/test/strings.spec.d.ts +1 -0
  61. package/built/test/strings.spec.js +204 -0
  62. package/built/test/strings.spec.js.map +1 -0
  63. package/built/test/tags.spec.d.ts +1 -0
  64. package/built/test/tags.spec.js +423 -0
  65. package/built/test/tags.spec.js.map +1 -0
  66. package/built/test/webhooks.spec.d.ts +1 -0
  67. package/built/test/webhooks.spec.js +447 -0
  68. package/built/test/webhooks.spec.js.map +1 -0
  69. package/package.json +1 -1
  70. package/.scannerwork/.sonar_lock +0 -0
  71. package/.scannerwork/report-task.txt +0 -6
@@ -0,0 +1,489 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const fs = __importStar(require("fs"));
39
+ const sinon_1 = __importDefault(require("sinon"));
40
+ const assert_1 = __importDefault(require("assert"));
41
+ const index_1 = require("../api/files/index");
42
+ const mock_1 = require("./mock");
43
+ const retrieval_type_1 = require("../api/files/params/retrieval-type");
44
+ const download_file_parameters_1 = require("../api/files/params/download-file-parameters");
45
+ const download_file_with_metadata_parameters_1 = require("../api/files/params/download-file-with-metadata-parameters");
46
+ const upload_file_parameters_1 = require("../api/files/params/upload-file-parameters");
47
+ const file_type_1 = require("../api/files/params/file-type");
48
+ const stream_to_string_1 = require("./stream-to-string");
49
+ const download_file_all_translations_parameters_1 = require("../api/files/params/download-file-all-translations-parameters");
50
+ const recently_uploaded_files_1 = require("../api/files/params/recently-uploaded-files");
51
+ const filename_mode_1 = require("../api/files/params/filename-mode");
52
+ const download_multiple_files_translations_parameters_1 = require("../api/files/params/download-multiple-files-translations-parameters");
53
+ const exception_1 = require("../api/exception");
54
+ const translation_file_name_mode_1 = require("../api/files/params/translation-file-name-mode");
55
+ const file_locale_mode_1 = require("../api/files/params/file-locale-mode");
56
+ const file_filter_1 = require("../api/files/params/file-filter");
57
+ describe("SmartlingFilesApi class tests.", () => {
58
+ const projectId = "testProjectId";
59
+ const fileUri = "testFileUri";
60
+ let filesApi;
61
+ let filesApiFetchStub;
62
+ let filesApiUaStub;
63
+ let responseMockJsonStub;
64
+ beforeEach(() => {
65
+ filesApi = new index_1.SmartlingFilesApi("https://test.com", mock_1.authMock, mock_1.loggerMock);
66
+ filesApiFetchStub = sinon_1.default.stub(filesApi, "fetch");
67
+ filesApiUaStub = sinon_1.default.stub(filesApi, "ua");
68
+ responseMockJsonStub = sinon_1.default.stub(mock_1.responseMock, "json");
69
+ filesApiUaStub.returns("test_user_agent");
70
+ filesApiFetchStub.returns(mock_1.responseMock);
71
+ responseMockJsonStub.returns({
72
+ response: {}
73
+ });
74
+ });
75
+ afterEach(() => {
76
+ filesApiFetchStub.restore();
77
+ responseMockJsonStub.restore();
78
+ filesApiUaStub.restore();
79
+ });
80
+ describe("Methods", () => {
81
+ it("Get status for all locales", () => __awaiter(void 0, void 0, void 0, function* () {
82
+ yield filesApi.getStatusForAllLocales(projectId, fileUri);
83
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
84
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/file/status?fileUri=testFileUri`, {
85
+ headers: {
86
+ Authorization: "test_token_type test_access_token",
87
+ "Content-Type": "application/json",
88
+ "User-Agent": "test_user_agent"
89
+ },
90
+ method: "get"
91
+ });
92
+ }));
93
+ it("Get recently uploaded files for project", () => __awaiter(void 0, void 0, void 0, function* () {
94
+ const params = new recently_uploaded_files_1.RecentlyUploadedFilesParameters()
95
+ .setOffset(0)
96
+ .setLimit(99)
97
+ .setUriMask("TEST");
98
+ yield filesApi.getRecentlyUploadedFiles(projectId, params);
99
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
100
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/files/list?offset=0&limit=99&uriMask=TEST`, {
101
+ headers: {
102
+ Authorization: "test_token_type test_access_token",
103
+ "Content-Type": "application/json",
104
+ "User-Agent": "test_user_agent"
105
+ },
106
+ method: "get"
107
+ });
108
+ }));
109
+ it("Get last modified", () => __awaiter(void 0, void 0, void 0, function* () {
110
+ yield filesApi.getLastModified(projectId, fileUri);
111
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
112
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/file/last-modified?fileUri=testFileUri`, {
113
+ headers: {
114
+ Authorization: "test_token_type test_access_token",
115
+ "Content-Type": "application/json",
116
+ "User-Agent": "test_user_agent"
117
+ },
118
+ method: "get"
119
+ });
120
+ }));
121
+ describe("Download file", () => {
122
+ const localeId = "fr-FR";
123
+ let params;
124
+ beforeEach(() => {
125
+ params = new download_file_parameters_1.DownloadFileParameters();
126
+ });
127
+ it("Download file with debugMode enabled and retrievalType published", () => __awaiter(void 0, void 0, void 0, function* () {
128
+ params
129
+ .setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED)
130
+ .enableDebugMode();
131
+ yield filesApi.downloadFile(projectId, fileUri, localeId, params);
132
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
133
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?retrievalType=published&debugMode=1&fileUri=testFileUri`, {
134
+ headers: {
135
+ Authorization: "test_token_type test_access_token",
136
+ "Content-Type": "application/json",
137
+ "User-Agent": "test_user_agent"
138
+ },
139
+ method: "get"
140
+ });
141
+ }));
142
+ it("Download file with debugMode disabled and retrievalType published", () => __awaiter(void 0, void 0, void 0, function* () {
143
+ params.setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED);
144
+ yield filesApi.downloadFile(projectId, fileUri, localeId, params);
145
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
146
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?retrievalType=published&fileUri=testFileUri`, {
147
+ headers: {
148
+ Authorization: "test_token_type test_access_token",
149
+ "Content-Type": "application/json",
150
+ "User-Agent": "test_user_agent"
151
+ },
152
+ method: "get"
153
+ });
154
+ }));
155
+ it("Download file with includeOriginalStrings enabled", () => __awaiter(void 0, void 0, void 0, function* () {
156
+ params.setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED).includeOriginalStrings();
157
+ yield filesApi.downloadFile(projectId, fileUri, localeId, params);
158
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
159
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?retrievalType=published&includeOriginalStrings=true&fileUri=testFileUri`, {
160
+ headers: {
161
+ Authorization: "test_token_type test_access_token",
162
+ "Content-Type": "application/json",
163
+ "User-Agent": "test_user_agent"
164
+ },
165
+ method: "get"
166
+ });
167
+ }));
168
+ it("Download file with includeOriginalStrings disabled", () => __awaiter(void 0, void 0, void 0, function* () {
169
+ params.setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED).excludeOriginalStrings();
170
+ yield filesApi.downloadFile(projectId, fileUri, localeId, params);
171
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
172
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?retrievalType=published&includeOriginalStrings=false&fileUri=testFileUri`, {
173
+ headers: {
174
+ Authorization: "test_token_type test_access_token",
175
+ "Content-Type": "application/json",
176
+ "User-Agent": "test_user_agent"
177
+ },
178
+ method: "get"
179
+ });
180
+ }));
181
+ });
182
+ describe("Download file with metadata", () => {
183
+ let getHeaderStub;
184
+ const localeId = "fr-FR";
185
+ let params;
186
+ beforeEach(() => {
187
+ params = new download_file_with_metadata_parameters_1.DownloadFileWithMetadataParameters();
188
+ getHeaderStub = sinon_1.default.stub(mock_1.responseMock.headers, "get");
189
+ getHeaderStub.returns(null);
190
+ });
191
+ afterEach(() => {
192
+ getHeaderStub.restore();
193
+ });
194
+ it("Download file when no headers in response", () => __awaiter(void 0, void 0, void 0, function* () {
195
+ const fileWithMetadata = yield filesApi.downloadFileWithMetadata(projectId, fileUri, localeId, params);
196
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
197
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?fileUri=testFileUri`, {
198
+ headers: {
199
+ Authorization: "test_token_type test_access_token",
200
+ "Content-Type": "application/json",
201
+ "User-Agent": "test_user_agent"
202
+ },
203
+ method: "get"
204
+ });
205
+ assert_1.default.ok(fileWithMetadata.contentType === undefined);
206
+ assert_1.default.ok(fileWithMetadata.fileName === undefined);
207
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
208
+ }));
209
+ it("Download file with metadata", () => __awaiter(void 0, void 0, void 0, function* () {
210
+ getHeaderStub.onCall(0).returns("application/xml");
211
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.xml\"");
212
+ getHeaderStub.returns(null);
213
+ const fileWithMetadata = yield filesApi.downloadFileWithMetadata(projectId, fileUri, localeId, params);
214
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
215
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?fileUri=testFileUri`, {
216
+ headers: {
217
+ Authorization: "test_token_type test_access_token",
218
+ "Content-Type": "application/json",
219
+ "User-Agent": "test_user_agent"
220
+ },
221
+ method: "get"
222
+ });
223
+ assert_1.default.ok(fileWithMetadata.contentType === "application/xml");
224
+ assert_1.default.ok(fileWithMetadata.fileName === "test.xml");
225
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
226
+ }));
227
+ it("Download file with fileNameMode original", () => __awaiter(void 0, void 0, void 0, function* () {
228
+ params.setFileNameMode(filename_mode_1.FileNameMode.ORIGINAL);
229
+ getHeaderStub.onCall(0).returns("application/xml");
230
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.xml\"");
231
+ getHeaderStub.returns(null);
232
+ const fileWithMetadata = yield filesApi.downloadFileWithMetadata(projectId, fileUri, localeId, params);
233
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
234
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?fileUri=testFileUri`, {
235
+ headers: {
236
+ Authorization: "test_token_type test_access_token",
237
+ "Content-Type": "application/json",
238
+ "User-Agent": "test_user_agent"
239
+ },
240
+ method: "get"
241
+ });
242
+ assert_1.default.ok(fileWithMetadata.contentType === "application/xml");
243
+ assert_1.default.ok(fileWithMetadata.fileName === "test.xml");
244
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
245
+ }));
246
+ it("Download file with fileNameMode transformed", () => __awaiter(void 0, void 0, void 0, function* () {
247
+ params.setFileNameMode(filename_mode_1.FileNameMode.TRANSFORMED);
248
+ getHeaderStub.onCall(0).returns("application/xml");
249
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.xml\"");
250
+ getHeaderStub.returns(null);
251
+ const fileWithMetadata = yield filesApi.downloadFileWithMetadata(projectId, fileUri, localeId, params);
252
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
253
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?changeFileName=true&fileUri=testFileUri`, {
254
+ headers: {
255
+ Authorization: "test_token_type test_access_token",
256
+ "Content-Type": "application/json",
257
+ "User-Agent": "test_user_agent"
258
+ },
259
+ method: "get"
260
+ });
261
+ assert_1.default.ok(fileWithMetadata.contentType === "application/xml");
262
+ assert_1.default.ok(fileWithMetadata.fileName === "test.xml");
263
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
264
+ }));
265
+ it("Download file with debugMode enabled and retrievalType published", () => __awaiter(void 0, void 0, void 0, function* () {
266
+ params
267
+ .setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED)
268
+ .enableDebugMode();
269
+ getHeaderStub.onCall(0).returns("application/json");
270
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.json\"");
271
+ getHeaderStub.returns(null);
272
+ const fileWithMetadata = yield filesApi.downloadFileWithMetadata(projectId, fileUri, localeId, params);
273
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
274
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?retrievalType=published&debugMode=1&fileUri=testFileUri`, {
275
+ headers: {
276
+ Authorization: "test_token_type test_access_token",
277
+ "Content-Type": "application/json",
278
+ "User-Agent": "test_user_agent"
279
+ },
280
+ method: "get"
281
+ });
282
+ assert_1.default.ok(fileWithMetadata.contentType === "application/json");
283
+ assert_1.default.ok(fileWithMetadata.fileName === "test.json");
284
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
285
+ }));
286
+ it("Download file with debugMode disabled and retrievalType published", () => __awaiter(void 0, void 0, void 0, function* () {
287
+ params.setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED);
288
+ getHeaderStub.onCall(0).returns("application/json");
289
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.json\"");
290
+ getHeaderStub.returns(null);
291
+ const fileWithMetadata = yield filesApi.downloadFileWithMetadata(projectId, fileUri, localeId, params);
292
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
293
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?retrievalType=published&fileUri=testFileUri`, {
294
+ headers: {
295
+ Authorization: "test_token_type test_access_token",
296
+ "Content-Type": "application/json",
297
+ "User-Agent": "test_user_agent"
298
+ },
299
+ method: "get"
300
+ });
301
+ assert_1.default.ok(fileWithMetadata.contentType === "application/json");
302
+ assert_1.default.ok(fileWithMetadata.fileName === "test.json");
303
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
304
+ }));
305
+ it("Download file with includeOriginalStrings enabled", () => __awaiter(void 0, void 0, void 0, function* () {
306
+ params.setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED).includeOriginalStrings();
307
+ getHeaderStub.onCall(0).returns("application/json");
308
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.json\"");
309
+ getHeaderStub.returns(null);
310
+ const fileWithMetadata = yield filesApi.downloadFileWithMetadata(projectId, fileUri, localeId, params);
311
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
312
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?retrievalType=published&includeOriginalStrings=true&fileUri=testFileUri`, {
313
+ headers: {
314
+ Authorization: "test_token_type test_access_token",
315
+ "Content-Type": "application/json",
316
+ "User-Agent": "test_user_agent"
317
+ },
318
+ method: "get"
319
+ });
320
+ assert_1.default.ok(fileWithMetadata.contentType === "application/json");
321
+ assert_1.default.ok(fileWithMetadata.fileName === "test.json");
322
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
323
+ }));
324
+ it("Download file with includeOriginalStrings disabled", () => __awaiter(void 0, void 0, void 0, function* () {
325
+ params.setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED).excludeOriginalStrings();
326
+ getHeaderStub.onCall(0).returns("application/json");
327
+ getHeaderStub.onCall(1).returns("attachment; filename=\"test.json\"");
328
+ getHeaderStub.returns(null);
329
+ const fileWithMetadata = yield filesApi.downloadFileWithMetadata(projectId, fileUri, localeId, params);
330
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
331
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/${localeId}/file?retrievalType=published&includeOriginalStrings=false&fileUri=testFileUri`, {
332
+ headers: {
333
+ Authorization: "test_token_type test_access_token",
334
+ "Content-Type": "application/json",
335
+ "User-Agent": "test_user_agent"
336
+ },
337
+ method: "get"
338
+ });
339
+ assert_1.default.ok(fileWithMetadata.contentType === "application/json");
340
+ assert_1.default.ok(fileWithMetadata.fileName === "test.json");
341
+ assert_1.default.ok(fileWithMetadata.fileContent.byteLength === 1);
342
+ }));
343
+ });
344
+ describe("Download file - all translations", () => {
345
+ let params;
346
+ beforeEach(() => {
347
+ params = new download_file_all_translations_parameters_1.DownloadFileAllTranslationsParameters();
348
+ });
349
+ it("Supports all parameters of single file download", () => __awaiter(void 0, void 0, void 0, function* () {
350
+ params
351
+ .setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED)
352
+ .enableDebugMode();
353
+ yield filesApi.downloadFileAllTranslations(projectId, fileUri, params);
354
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
355
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/locales/all/file/zip?retrievalType=published&debugMode=1&fileUri=testFileUri`, {
356
+ headers: {
357
+ Authorization: "test_token_type test_access_token",
358
+ "Content-Type": "application/json",
359
+ "User-Agent": "test_user_agent"
360
+ },
361
+ method: "get"
362
+ });
363
+ }));
364
+ });
365
+ it("Delete file", () => __awaiter(void 0, void 0, void 0, function* () {
366
+ yield filesApi.deleteFile(projectId, fileUri);
367
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
368
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[0], `https://test.com/files-api/v2/projects/${projectId}/file/delete`);
369
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].method, "post");
370
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].headers.Authorization, "test_token_type test_access_token");
371
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].headers["User-Agent"], "test_user_agent");
372
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].body.getBuffer().toString().includes("Content-Disposition: form-data; name=\"fileUri\""), true);
373
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].body.getBuffer().toString().includes(fileUri), true);
374
+ }));
375
+ it("Upload file: from disk", () => __awaiter(void 0, void 0, void 0, function* () {
376
+ const params = new upload_file_parameters_1.UploadFileParameters();
377
+ params
378
+ .setFileFromLocalFilePath("./test/data/file.xml")
379
+ .setFileUri("test-file-uri")
380
+ .setFileType(file_type_1.FileType.XML)
381
+ .setCallbackUrl("https://callback.url")
382
+ .setDirective("foo", "bar");
383
+ yield filesApi.uploadFile(projectId, params);
384
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
385
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[0], `https://test.com/files-api/v2/projects/${projectId}/file`);
386
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].method, "post");
387
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].headers.Authorization, "test_token_type test_access_token");
388
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].headers["User-Agent"], "test_user_agent");
389
+ const stringifiedFormData = JSON.stringify(filesApiFetchStub.getCall(0).args[1].body);
390
+ assert_1.default.ok(stringifiedFormData.includes("Content-Disposition: form-data; name=\\\"callbackUrl\\\"\\r\\n\\r\\n\",\"https://callback.url\""));
391
+ assert_1.default.equal(yield (0, stream_to_string_1.streamToString)(filesApiFetchStub.getCall(0).args[1].body._streams[1]), fs.readFileSync(fs.realpathSync("./test/data/file.xml"), "utf8"));
392
+ }));
393
+ it("Upload file: as string", () => __awaiter(void 0, void 0, void 0, function* () {
394
+ const params = new upload_file_parameters_1.UploadFileParameters();
395
+ params
396
+ .setFileContent(fs.readFileSync(fs.realpathSync("./test/data/file.xml"), "utf8"))
397
+ .setFileUri("test-file-uri")
398
+ .setFileType(file_type_1.FileType.XML)
399
+ .setCallbackUrl("https://callback.url")
400
+ .setDirective("foo", "bar");
401
+ yield filesApi.uploadFile(projectId, params);
402
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
403
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[0], `https://test.com/files-api/v2/projects/${projectId}/file`);
404
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].method, "post");
405
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].headers.Authorization, "test_token_type test_access_token");
406
+ assert_1.default.equal(filesApiFetchStub.getCall(0).args[1].headers["User-Agent"], "test_user_agent");
407
+ const stringifiedFormData = JSON.stringify(filesApiFetchStub.getCall(0).args[1].body);
408
+ assert_1.default.ok(stringifiedFormData.includes("Content-Disposition: form-data; name=\\\"callbackUrl\\\"\\r\\n\\r\\n\",\"https://callback.url\""));
409
+ assert_1.default.equal(yield (0, stream_to_string_1.streamToString)(filesApiFetchStub.getCall(0).args[1].body._streams[1]), fs.readFileSync(fs.realpathSync("./test/data/file.xml"), "utf8"));
410
+ }));
411
+ describe("Download multiple files translations", () => {
412
+ const localeId = "fr-FR";
413
+ const anotherLocaleId = "de-DE";
414
+ const files = [
415
+ {
416
+ fileUri,
417
+ localeIds: [localeId, anotherLocaleId]
418
+ }
419
+ ];
420
+ let params;
421
+ beforeEach(() => {
422
+ params = new download_multiple_files_translations_parameters_1.DownloadMultipleFilesTranslationsParameters(files);
423
+ });
424
+ it("throws error if file is missing", () => {
425
+ assert_1.default.throws(() => {
426
+ new download_multiple_files_translations_parameters_1.DownloadMultipleFilesTranslationsParameters([]);
427
+ }, exception_1.SmartlingException);
428
+ });
429
+ it("throws error if localeId is missing", () => {
430
+ assert_1.default.throws(() => {
431
+ new download_multiple_files_translations_parameters_1.DownloadMultipleFilesTranslationsParameters([{
432
+ fileUri,
433
+ localeIds: []
434
+ }]);
435
+ }, exception_1.SmartlingException);
436
+ });
437
+ it("Download mutliple files translations", () => __awaiter(void 0, void 0, void 0, function* () {
438
+ yield filesApi.downloadMultipleFilesTranslations(projectId, params);
439
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
440
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/files/zip`, {
441
+ headers: {
442
+ Authorization: "test_token_type test_access_token",
443
+ "Content-Type": "application/json",
444
+ "User-Agent": "test_user_agent"
445
+ },
446
+ method: "post",
447
+ body: JSON.stringify({
448
+ files: [{
449
+ fileUri,
450
+ localeIds: [localeId, anotherLocaleId]
451
+ }]
452
+ })
453
+ });
454
+ }));
455
+ it("Download mutliple files translations with parameters", () => __awaiter(void 0, void 0, void 0, function* () {
456
+ params
457
+ .setRetrievalType(retrieval_type_1.RetrievalType.PUBLISHED)
458
+ .includeOriginalStrings()
459
+ .setFileNameMode(translation_file_name_mode_1.TranslationFileNameMode.UNCHANGED)
460
+ .setFileLocaleMode(file_locale_mode_1.FileLocaleMode.LOCALE_IN_PATH)
461
+ .setZipFileName("translations.zip")
462
+ .setFileFilter(file_filter_1.FileFilter.ALL_FILES);
463
+ yield filesApi.downloadMultipleFilesTranslations(projectId, params);
464
+ sinon_1.default.assert.calledOnce(filesApiFetchStub);
465
+ sinon_1.default.assert.calledWithExactly(filesApiFetchStub, `https://test.com/files-api/v2/projects/${projectId}/files/zip`, {
466
+ headers: {
467
+ Authorization: "test_token_type test_access_token",
468
+ "Content-Type": "application/json",
469
+ "User-Agent": "test_user_agent"
470
+ },
471
+ method: "post",
472
+ body: JSON.stringify({
473
+ files: [{
474
+ fileUri,
475
+ localeIds: [localeId, anotherLocaleId]
476
+ }],
477
+ retrievalType: "published",
478
+ includeOriginalStrings: true,
479
+ fileNameMode: "unchanged",
480
+ localeMode: "locale_in_path",
481
+ zipFileName: "translations.zip",
482
+ fileFilter: "all_files"
483
+ })
484
+ });
485
+ }));
486
+ });
487
+ });
488
+ });
489
+ //# sourceMappingURL=files.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.spec.js","sourceRoot":"","sources":["../../test/files.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};