chromiumly 2.4.0 → 2.5.1

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 (77) hide show
  1. package/README.md +57 -40
  2. package/dist/chromium/converters/converter.d.ts +13 -0
  3. package/dist/chromium/converters/converter.js +10 -0
  4. package/dist/chromium/converters/converter.js.map +1 -1
  5. package/dist/chromium/converters/html.converter.d.ts +32 -6
  6. package/dist/chromium/converters/html.converter.js +30 -9
  7. package/dist/chromium/converters/html.converter.js.map +1 -1
  8. package/dist/chromium/converters/markdown.converter.d.ts +34 -7
  9. package/dist/chromium/converters/markdown.converter.js +32 -16
  10. package/dist/chromium/converters/markdown.converter.js.map +1 -1
  11. package/dist/chromium/converters/url.converter.d.ts +31 -5
  12. package/dist/chromium/converters/url.converter.js +29 -1
  13. package/dist/chromium/converters/url.converter.js.map +1 -1
  14. package/dist/chromium/index.js.map +1 -1
  15. package/dist/chromium/interfaces/converter.types.d.ts +3 -6
  16. package/dist/chromium/utils/converter.utils.d.ts +27 -1
  17. package/dist/chromium/utils/converter.utils.js +48 -21
  18. package/dist/chromium/utils/converter.utils.js.map +1 -1
  19. package/dist/common/constants.js.map +1 -1
  20. package/dist/common/gotenberg.utils.d.ts +18 -0
  21. package/dist/common/gotenberg.utils.js +18 -0
  22. package/dist/common/gotenberg.utils.js.map +1 -1
  23. package/dist/common/index.d.ts +1 -0
  24. package/dist/common/index.js.map +1 -1
  25. package/dist/common/types.d.ts +3 -0
  26. package/dist/common/types.js +3 -0
  27. package/dist/common/types.js.map +1 -0
  28. package/dist/gotenberg.d.ts +8 -0
  29. package/dist/gotenberg.js +8 -0
  30. package/dist/gotenberg.js.map +1 -1
  31. package/dist/libre-office/index.js.map +1 -1
  32. package/dist/libre-office/utils/constants.js +76 -76
  33. package/dist/libre-office/utils/constants.js.map +1 -1
  34. package/dist/libre-office/utils/libre-office.utils.d.ts +19 -4
  35. package/dist/libre-office/utils/libre-office.utils.js +39 -7
  36. package/dist/libre-office/utils/libre-office.utils.js.map +1 -1
  37. package/dist/main.config.d.ts +43 -0
  38. package/dist/main.config.js +43 -0
  39. package/dist/main.config.js.map +1 -1
  40. package/dist/main.js.map +1 -1
  41. package/dist/pdf-engines/index.js.map +1 -1
  42. package/dist/pdf-engines/pdf.engine.d.ts +31 -5
  43. package/dist/pdf-engines/pdf.engine.js +31 -3
  44. package/dist/pdf-engines/pdf.engine.js.map +1 -1
  45. package/dist/pdf-engines/utils/engine.utils.d.ts +12 -3
  46. package/dist/pdf-engines/utils/engine.utils.js +27 -8
  47. package/dist/pdf-engines/utils/engine.utils.js.map +1 -1
  48. package/package.json +8 -7
  49. package/src/chromium/converters/converter.ts +18 -5
  50. package/src/chromium/converters/html.converter.ts +82 -61
  51. package/src/chromium/converters/markdown.converter.ts +86 -69
  52. package/src/chromium/converters/tests/html.converter.test.ts +119 -135
  53. package/src/chromium/converters/tests/markdown.converter.test.ts +131 -150
  54. package/src/chromium/converters/tests/url.converter.test.ts +114 -123
  55. package/src/chromium/converters/url.converter.ts +84 -60
  56. package/src/chromium/index.ts +3 -3
  57. package/src/chromium/interfaces/converter.types.ts +27 -27
  58. package/src/chromium/utils/converter.utils.ts +165 -139
  59. package/src/chromium/utils/tests/converter.utils.test.ts +312 -311
  60. package/src/common/constants.ts +3 -3
  61. package/src/common/gotenberg.utils.ts +36 -17
  62. package/src/common/index.ts +3 -2
  63. package/src/common/tests/gotenberg.utils.test.ts +54 -54
  64. package/src/common/types.ts +3 -0
  65. package/src/gotenberg.ts +13 -4
  66. package/src/libre-office/index.ts +2 -2
  67. package/src/libre-office/interfaces/libre-office.types.ts +2 -2
  68. package/src/libre-office/utils/constants.ts +76 -76
  69. package/src/libre-office/utils/libre-office.utils.ts +72 -37
  70. package/src/libre-office/utils/tests/libre-office.utils.test.ts +100 -68
  71. package/src/main.config.ts +68 -22
  72. package/src/main.ts +3 -3
  73. package/src/pdf-engines/index.ts +1 -1
  74. package/src/pdf-engines/pdf.engine.ts +77 -49
  75. package/src/pdf-engines/tests/pdf.engine.test.ts +94 -94
  76. package/src/pdf-engines/utils/engine.utils.ts +30 -12
  77. package/src/pdf-engines/utils/tests/engine.utils.test.ts +60 -48
@@ -1,361 +1,362 @@
1
1
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
- import { createReadStream, promises } from "fs";
2
+ import {createReadStream, promises} from "fs";
3
+ import path from "path";
3
4
  import FormData from "form-data";
4
- import { ConverterUtils } from "../converter.utils";
5
- import { PdfFormat } from "../../../common";
5
+ import {ConverterUtils} from "../converter.utils";
6
+ import {PdfFormat} from "../../../common";
6
7
 
7
8
  describe("ConverterUtils", () => {
8
- const mockFormDataAppend = jest.spyOn(FormData.prototype, "append");
9
- const mockPromisesAccess = jest.spyOn(promises, "access");
10
- const data = new FormData();
11
-
12
- beforeEach(() => {
13
- (createReadStream as jest.Mock) = jest
14
- .fn()
15
- .mockImplementation((file) => file);
16
- });
17
-
18
- afterEach(() => {
19
- jest.resetAllMocks();
20
- });
21
-
22
- describe("injectPageProperties", () => {
23
- describe("Page size", () => {
24
- describe("when page size is valid", () => {
25
- it("should append page size to data", () => {
26
- ConverterUtils.injectPageProperties(data, {
27
- size: { width: 8.3, height: 11.7 },
28
- });
29
- expect(mockFormDataAppend).toHaveBeenCalledTimes(2);
30
- expect(data.append).toHaveBeenCalledWith("paperWidth", 8.3);
31
- expect(data.append).toHaveBeenNthCalledWith(2, "paperHeight", 11.7);
32
- });
33
- });
34
- });
9
+ const mockFormDataAppend = jest.spyOn(FormData.prototype, "append");
10
+ const data = new FormData();
35
11
 
36
- describe("Page margins", () => {
37
- describe("when page margins are valid", () => {
38
- it("should append page margins to data", () => {
39
- ConverterUtils.injectPageProperties(data, {
40
- margins: { top: 0.5, bottom: 0.5, left: 1, right: 1 },
41
- });
42
- expect(mockFormDataAppend).toHaveBeenCalledTimes(4);
43
- expect(data.append).toHaveBeenCalledWith("marginTop", 0.5);
44
- expect(data.append).toHaveBeenNthCalledWith(2, "marginBottom", 0.5);
45
- expect(data.append).toHaveBeenNthCalledWith(3, "marginLeft", 1);
46
- expect(data.append).toHaveBeenNthCalledWith(4, "marginRight", 1);
47
- });
48
- });
12
+ afterEach(() => {
13
+ jest.resetAllMocks();
49
14
  });
50
15
 
51
- describe("Page css size", () => {
52
- describe("when preferCssPageSize parameter is set", () => {
53
- it("should append preferCssPageSize to data", () => {
54
- ConverterUtils.injectPageProperties(data, {
55
- preferCssPageSize: true,
56
- });
57
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
58
- expect(data.append).toHaveBeenCalledWith("preferCssPageSize", "true");
16
+ describe("addPageProperties", () => {
17
+ describe("Page size", () => {
18
+ describe("when page size is valid", () => {
19
+ it("should append page size to data", () => {
20
+ ConverterUtils.addPageProperties(data, {
21
+ size: {width: 8.3, height: 11.7},
22
+ });
23
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(2);
24
+ expect(data.append).toHaveBeenCalledWith("paperWidth", 8.3);
25
+ expect(data.append).toHaveBeenNthCalledWith(2, "paperHeight", 11.7);
26
+ });
27
+ });
59
28
  });
60
- });
61
- });
62
29
 
63
- describe("Page background", () => {
64
- describe("when printBackground parameter is set", () => {
65
- it("should append printBackground to data", () => {
66
- ConverterUtils.injectPageProperties(data, {
67
- printBackground: true,
68
- });
69
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
70
- expect(data.append).toHaveBeenCalledWith("printBackground", "true");
30
+ describe("Page margins", () => {
31
+ describe("when page margins are valid", () => {
32
+ it("should append page margins to data", () => {
33
+ ConverterUtils.addPageProperties(data, {
34
+ margins: {top: 0.5, bottom: 0.5, left: 1, right: 1},
35
+ });
36
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(4);
37
+ expect(data.append).toHaveBeenCalledWith("marginTop", 0.5);
38
+ expect(data.append).toHaveBeenNthCalledWith(2, "marginBottom", 0.5);
39
+ expect(data.append).toHaveBeenNthCalledWith(3, "marginLeft", 1);
40
+ expect(data.append).toHaveBeenNthCalledWith(4, "marginRight", 1);
41
+ });
42
+ });
71
43
  });
72
- });
73
-
74
- describe("when omitBackground parameter is set", () => {
75
- it("should append omitBackground to data", () => {
76
- ConverterUtils.injectPageProperties(data, {
77
- omitBackground: true,
78
- });
79
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
80
- expect(data.append).toHaveBeenCalledWith("omitBackground", "true");
44
+
45
+ describe("Page css size", () => {
46
+ describe("when preferCssPageSize parameter is set", () => {
47
+ it("should append preferCssPageSize to data", () => {
48
+ ConverterUtils.addPageProperties(data, {
49
+ preferCssPageSize: true,
50
+ });
51
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
52
+ expect(data.append).toHaveBeenCalledWith("preferCssPageSize", "true");
53
+ });
54
+ });
81
55
  });
82
- });
83
- });
84
56
 
85
- describe("Page landscape", () => {
86
- describe("when landscape parameter is set", () => {
87
- it("should append landscape to data", () => {
88
- ConverterUtils.injectPageProperties(data, {
89
- landscape: true,
90
- });
91
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
92
- expect(data.append).toHaveBeenCalledWith("landscape", "true");
57
+ describe("Page background", () => {
58
+ describe("when printBackground parameter is set", () => {
59
+ it("should append printBackground to data", () => {
60
+ ConverterUtils.addPageProperties(data, {
61
+ printBackground: true,
62
+ });
63
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
64
+ expect(data.append).toHaveBeenCalledWith("printBackground", "true");
65
+ });
66
+ });
67
+
68
+ describe("when omitBackground parameter is set", () => {
69
+ it("should append omitBackground to data", () => {
70
+ ConverterUtils.addPageProperties(data, {
71
+ omitBackground: true,
72
+ });
73
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
74
+ expect(data.append).toHaveBeenCalledWith("omitBackground", "true");
75
+ });
76
+ });
93
77
  });
94
- });
95
- });
96
78
 
97
- describe("Page scale", () => {
98
- describe("when page scale is valid", () => {
99
- it("should append scale to data", () => {
100
- ConverterUtils.injectPageProperties(data, {
101
- scale: 1.5,
102
- });
103
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
104
- expect(data.append).toHaveBeenCalledWith("scale", 1.5);
79
+ describe("Page landscape", () => {
80
+ describe("when landscape parameter is set", () => {
81
+ it("should append landscape to data", () => {
82
+ ConverterUtils.addPageProperties(data, {
83
+ landscape: true,
84
+ });
85
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
86
+ expect(data.append).toHaveBeenCalledWith("landscape", "true");
87
+ });
88
+ });
105
89
  });
106
- });
107
- });
108
90
 
109
- describe("Page ranges", () => {
110
- describe("when nativePageRanges is valid", () => {
111
- it("should append nativePageRanges to data", () => {
112
- ConverterUtils.injectPageProperties(data, {
113
- nativePageRanges: { from: 1, to: 6 },
114
- });
115
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
116
- expect(data.append).toHaveBeenCalledWith("nativePageRanges", "1-6");
91
+ describe("Page scale", () => {
92
+ describe("when page scale is valid", () => {
93
+ it("should append scale to data", () => {
94
+ ConverterUtils.addPageProperties(data, {
95
+ scale: 1.5,
96
+ });
97
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
98
+ expect(data.append).toHaveBeenCalledWith("scale", 1.5);
99
+ });
100
+ });
117
101
  });
118
- });
119
- });
120
- });
121
-
122
- describe("customize", () => {
123
- describe("when no option is passed", () => {
124
- it("should not append anything", async () => {
125
- await ConverterUtils.customize(data, {});
126
- expect(mockFormDataAppend).toHaveBeenCalledTimes(0);
127
- });
128
- });
129
102
 
130
- describe("when header parameter is passed as file", () => {
131
- it("should append header", async () => {
132
- mockPromisesAccess.mockResolvedValue();
133
- await ConverterUtils.customize(data, {
134
- header: "path/to/header.html",
103
+ describe("Page ranges", () => {
104
+ describe("when nativePageRanges is valid", () => {
105
+ it("should append nativePageRanges to data", () => {
106
+ ConverterUtils.addPageProperties(data, {
107
+ nativePageRanges: {from: 1, to: 6},
108
+ });
109
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
110
+ expect(data.append).toHaveBeenCalledWith("nativePageRanges", "1-6");
111
+ });
112
+ });
135
113
  });
136
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
137
- expect(data.append).toHaveBeenCalledWith(
138
- "files",
139
- "path/to/header.html",
140
- "header.html"
141
- );
142
- });
143
114
  });
144
115
 
145
- describe("when header parameter is passed as buffer", () => {
146
- it("should append header", async () => {
147
- mockPromisesAccess.mockResolvedValue();
148
- await ConverterUtils.customize(data, {
149
- header: Buffer.from("header"),
116
+ describe("addFile", () => {
117
+ const __tmp__ = path.resolve(process.cwd(), "__tmp__");
118
+ const filePath = path.resolve(__tmp__, "file.html")
119
+
120
+ beforeAll(async () => {
121
+ await promises.mkdir(path.resolve(__tmp__), {recursive: true});
122
+ await promises.writeFile(filePath, "data");
123
+ })
124
+
125
+ afterAll(async () => {
126
+ await promises.rm(path.resolve(__tmp__), {recursive: true})
127
+ })
128
+
129
+ describe("when file is passed as read stream", () => {
130
+ it("should append file to data", async () => {
131
+ const file = createReadStream(filePath)
132
+ await ConverterUtils.addFile(data, file, "file");
133
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
134
+ expect(data.append).toHaveBeenCalledWith("files", file, "file");
135
+ })
136
+ })
137
+
138
+ describe("when file is passed as path", () => {
139
+ it("should append file to data", async () => {
140
+ await ConverterUtils.addFile(data, filePath, "file");
141
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
142
+ })
143
+ })
144
+
145
+ describe("when file is passed as buffer", () => {
146
+ it("should append file to data", async () => {
147
+ const file = Buffer.from("data")
148
+ await ConverterUtils.addFile(data, file, "file");
149
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
150
+ expect(data.append).toHaveBeenCalledWith("files", file, "file");
151
+ })
152
+ })
153
+
154
+
155
+ })
156
+
157
+ describe("customize", () => {
158
+ describe("when no option is passed", () => {
159
+ it("should not append anything", async () => {
160
+ await ConverterUtils.customize(data, {});
161
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(0);
162
+ });
150
163
  });
151
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
152
- expect(data.append).toHaveBeenCalledWith(
153
- "files",
154
- Buffer.from("header"),
155
- "header.html"
156
- );
157
- });
158
- });
159
164
 
160
- describe("when footer parameter is passed as file", () => {
161
- it("should append footer", async () => {
162
- mockPromisesAccess.mockResolvedValue();
163
- await ConverterUtils.customize(data, {
164
- footer: "path/to/footer.html",
165
+ describe("when header parameter is passed", () => {
166
+ it("should append header", async () => {
167
+ await ConverterUtils.customize(data, {
168
+ header: Buffer.from("header"),
169
+ });
170
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
171
+ expect(data.append).toHaveBeenCalledWith(
172
+ "files",
173
+ Buffer.from("header"),
174
+ "header.html"
175
+ );
176
+ });
165
177
  });
166
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
167
- expect(data.append).toHaveBeenCalledWith(
168
- "files",
169
- "path/to/footer.html",
170
- "footer.html"
171
- );
172
- });
173
- });
174
178
 
175
- describe("when footer parameter is passed as buffer", () => {
176
- it("should append footer", async () => {
177
- mockPromisesAccess.mockResolvedValue();
178
- await ConverterUtils.customize(data, {
179
- footer: Buffer.from("footer"),
179
+ describe("when footer parameter is passed", () => {
180
+ it("should append footer", async () => {
181
+ await ConverterUtils.customize(data, {
182
+ footer: Buffer.from("footer"),
183
+ });
184
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
185
+ expect(data.append).toHaveBeenCalledWith(
186
+ "files",
187
+ Buffer.from("footer"),
188
+ "footer.html"
189
+ );
190
+ });
180
191
  });
181
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
182
- expect(data.append).toHaveBeenCalledWith(
183
- "files",
184
- Buffer.from("footer"),
185
- "footer.html"
186
- );
187
- });
188
- });
189
192
 
190
- describe("when pdf format parameter is passed", () => {
191
- it("should append pdf format", async () => {
192
- await ConverterUtils.customize(data, {
193
- pdfFormat: PdfFormat.A_1a,
193
+ describe("when pdf format parameter is passed", () => {
194
+ it("should append pdf format", async () => {
195
+ await ConverterUtils.customize(data, {
196
+ pdfFormat: PdfFormat.A_1a,
197
+ });
198
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
199
+ expect(data.append).toHaveBeenCalledWith("pdfa", "PDF/A-1a");
200
+ });
194
201
  });
195
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
196
- expect(data.append).toHaveBeenCalledWith("pdfa", "PDF/A-1a");
197
- });
198
- });
199
202
 
200
- describe("when pdf universal access parameter is passed", () => {
201
- it("should append pdfua format", async () => {
202
- await ConverterUtils.customize(data, {
203
- pdfUA: true,
203
+ describe("when pdf universal access parameter is passed", () => {
204
+ it("should append pdfua format", async () => {
205
+ await ConverterUtils.customize(data, {
206
+ pdfUA: true,
207
+ });
208
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
209
+ expect(data.append).toHaveBeenCalledWith("pdfua", "true");
210
+ });
204
211
  });
205
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
206
- expect(data.append).toHaveBeenCalledWith("pdfua", "true");
207
- });
208
- });
209
212
 
210
- describe("when page properties parameter is passed", () => {
211
- it("should append page propertiers", async () => {
212
- await ConverterUtils.customize(data, {
213
- properties: { size: { width: 8.3, height: 11.7 } },
213
+ describe("when page properties parameter is passed", () => {
214
+ it("should append page propertiers", async () => {
215
+ await ConverterUtils.customize(data, {
216
+ properties: {size: {width: 8.3, height: 11.7}},
217
+ });
218
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(2);
219
+ expect(data.append).toHaveBeenCalledWith("paperWidth", 8.3);
220
+ expect(data.append).toHaveBeenNthCalledWith(2, "paperHeight", 11.7);
221
+ });
214
222
  });
215
- expect(mockFormDataAppend).toHaveBeenCalledTimes(2);
216
- expect(data.append).toHaveBeenCalledWith("paperWidth", 8.3);
217
- expect(data.append).toHaveBeenNthCalledWith(2, "paperHeight", 11.7);
218
- });
219
- });
220
223
 
221
- describe("when emulatedMediaType parameter is passed", () => {
222
- it("should append emulatedMediaType", async () => {
223
- await ConverterUtils.customize(data, {
224
- emulatedMediaType: "screen",
224
+ describe("when emulatedMediaType parameter is passed", () => {
225
+ it("should append emulatedMediaType", async () => {
226
+ await ConverterUtils.customize(data, {
227
+ emulatedMediaType: "screen",
228
+ });
229
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
230
+ expect(data.append).toHaveBeenCalledWith("emulatedMediaType", "screen");
231
+ });
225
232
  });
226
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
227
- expect(data.append).toHaveBeenCalledWith("emulatedMediaType", "screen");
228
- });
229
- });
230
233
 
231
- describe("when waitDelay parameter is passed", () => {
232
- it("should append waitDelay", async () => {
233
- await ConverterUtils.customize(data, {
234
- waitDelay: "5s",
234
+ describe("when waitDelay parameter is passed", () => {
235
+ it("should append waitDelay", async () => {
236
+ await ConverterUtils.customize(data, {
237
+ waitDelay: "5s",
238
+ });
239
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
240
+ expect(data.append).toHaveBeenCalledWith("waitDelay", "5s");
241
+ });
235
242
  });
236
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
237
- expect(data.append).toHaveBeenCalledWith("waitDelay", "5s");
238
- });
239
- });
240
243
 
241
- describe("when waitForExpression parameter is passed", () => {
242
- it("should append waitForExpression", async () => {
243
- await ConverterUtils.customize(data, {
244
- waitForExpression: "document.readyState === 'complete'",
244
+ describe("when waitForExpression parameter is passed", () => {
245
+ it("should append waitForExpression", async () => {
246
+ await ConverterUtils.customize(data, {
247
+ waitForExpression: "document.readyState === 'complete'",
248
+ });
249
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
250
+ expect(data.append).toHaveBeenCalledWith(
251
+ "waitForExpression",
252
+ "document.readyState === 'complete'"
253
+ );
254
+ });
245
255
  });
246
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
247
- expect(data.append).toHaveBeenCalledWith(
248
- "waitForExpression",
249
- "document.readyState === 'complete'"
250
- );
251
- });
252
- });
253
256
 
254
- describe("when userAgent parameter is passed", () => {
255
- it("should append userAgent", async () => {
256
- const userAgent =
257
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36";
257
+ describe("when userAgent parameter is passed", () => {
258
+ it("should append userAgent", async () => {
259
+ const userAgent =
260
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36";
258
261
 
259
- await ConverterUtils.customize(data, {
260
- userAgent,
262
+ await ConverterUtils.customize(data, {
263
+ userAgent,
264
+ });
265
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
266
+ expect(data.append).toHaveBeenCalledWith("userAgent", userAgent);
267
+ });
261
268
  });
262
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
263
- expect(data.append).toHaveBeenCalledWith("userAgent", userAgent);
264
- });
265
- });
266
269
 
267
- describe("when extraHttpHeaders parameter is passed", () => {
268
- it("should append extraHttpHeaders", async () => {
269
- const extraHttpHeaders = {
270
- "X-Custom-Header": "value",
271
- };
270
+ describe("when extraHttpHeaders parameter is passed", () => {
271
+ it("should append extraHttpHeaders", async () => {
272
+ const extraHttpHeaders = {
273
+ "X-Custom-Header": "value",
274
+ };
272
275
 
273
- await ConverterUtils.customize(data, {
274
- extraHttpHeaders,
276
+ await ConverterUtils.customize(data, {
277
+ extraHttpHeaders,
278
+ });
279
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
280
+ expect(data.append).toHaveBeenCalledWith(
281
+ "extraHttpHeaders",
282
+ JSON.stringify(extraHttpHeaders)
283
+ );
284
+ });
275
285
  });
276
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
277
- expect(data.append).toHaveBeenCalledWith(
278
- "extraHttpHeaders",
279
- JSON.stringify(extraHttpHeaders)
280
- );
281
- });
282
- });
283
286
 
284
- describe("when failOnConsoleExceptions parameter is passed", () => {
285
- it("should append failOnConsoleExceptions", async () => {
286
- await ConverterUtils.customize(data, {
287
- failOnConsoleExceptions: true,
287
+ describe("when failOnConsoleExceptions parameter is passed", () => {
288
+ it("should append failOnConsoleExceptions", async () => {
289
+ await ConverterUtils.customize(data, {
290
+ failOnConsoleExceptions: true,
291
+ });
292
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
293
+ expect(data.append).toHaveBeenCalledWith(
294
+ "failOnConsoleExceptions",
295
+ "true"
296
+ );
297
+ });
288
298
  });
289
- expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
290
- expect(data.append).toHaveBeenCalledWith(
291
- "failOnConsoleExceptions",
292
- "true"
293
- );
294
- });
295
- });
296
299
 
297
- describe("when all options are passed", () => {
298
- it("should append all options", async () => {
299
- mockPromisesAccess.mockResolvedValue();
300
-
301
- await ConverterUtils.customize(data, {
302
- header: "path/to/header.html",
303
- footer: "path/to/footer.html",
304
- pdfFormat: PdfFormat.A_1a,
305
- pdfUA: true,
306
- emulatedMediaType: "screen",
307
- properties: { size: { width: 8.3, height: 11.7 } },
308
- waitDelay: "5s",
309
- waitForExpression: "document.readyState === 'complete'",
310
- userAgent:
311
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
312
- extraHttpHeaders: { "X-Custom-Header": "value" },
313
- failOnConsoleExceptions: true,
300
+ describe("when all options are passed", () => {
301
+ it("should append all options", async () => {
302
+ await ConverterUtils.customize(data, {
303
+ header: Buffer.from("header.html"),
304
+ footer: Buffer.from("footer.html"),
305
+ pdfFormat: PdfFormat.A_1a,
306
+ pdfUA: true,
307
+ emulatedMediaType: "screen",
308
+ properties: {size: {width: 8.3, height: 11.7}},
309
+ waitDelay: "5s",
310
+ waitForExpression: "document.readyState === 'complete'",
311
+ userAgent:
312
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
313
+ extraHttpHeaders: {"X-Custom-Header": "value"},
314
+ failOnConsoleExceptions: true,
315
+ });
316
+ expect(mockFormDataAppend).toHaveBeenCalledTimes(12);
317
+ expect(data.append).toHaveBeenNthCalledWith(1, "pdfa", "PDF/A-1a");
318
+ expect(data.append).toHaveBeenNthCalledWith(2, "pdfua", "true");
319
+ expect(data.append).toHaveBeenNthCalledWith(
320
+ 3,
321
+ "files",
322
+ Buffer.from("header.html"),
323
+ "header.html"
324
+ );
325
+ expect(data.append).toHaveBeenNthCalledWith(
326
+ 4,
327
+ "files",
328
+ Buffer.from("footer.html"),
329
+ "footer.html"
330
+ );
331
+ expect(data.append).toHaveBeenNthCalledWith(
332
+ 5,
333
+ "emulatedMediaType",
334
+ "screen"
335
+ );
336
+ expect(data.append).toHaveBeenNthCalledWith(6, "paperWidth", 8.3);
337
+ expect(data.append).toHaveBeenNthCalledWith(7, "paperHeight", 11.7);
338
+ expect(data.append).toHaveBeenNthCalledWith(8, "waitDelay", "5s");
339
+ expect(data.append).toHaveBeenNthCalledWith(
340
+ 9,
341
+ "waitForExpression",
342
+ "document.readyState === 'complete'"
343
+ );
344
+ expect(data.append).toHaveBeenNthCalledWith(
345
+ 10,
346
+ "userAgent",
347
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
348
+ );
349
+ expect(data.append).toHaveBeenNthCalledWith(
350
+ 11,
351
+ "extraHttpHeaders",
352
+ JSON.stringify({"X-Custom-Header": "value"})
353
+ );
354
+ expect(data.append).toHaveBeenNthCalledWith(
355
+ 12,
356
+ "failOnConsoleExceptions",
357
+ "true"
358
+ );
359
+ });
314
360
  });
315
- expect(mockFormDataAppend).toHaveBeenCalledTimes(12);
316
- expect(data.append).toHaveBeenNthCalledWith(1, "pdfa", "PDF/A-1a");
317
- expect(data.append).toHaveBeenNthCalledWith(2, "pdfua", "true");
318
- expect(data.append).toHaveBeenNthCalledWith(
319
- 3,
320
- "files",
321
- "path/to/header.html",
322
- "header.html"
323
- );
324
- expect(data.append).toHaveBeenNthCalledWith(
325
- 4,
326
- "files",
327
- "path/to/footer.html",
328
- "footer.html"
329
- );
330
- expect(data.append).toHaveBeenNthCalledWith(
331
- 5,
332
- "emulatedMediaType",
333
- "screen"
334
- );
335
- expect(data.append).toHaveBeenNthCalledWith(6, "paperWidth", 8.3);
336
- expect(data.append).toHaveBeenNthCalledWith(7, "paperHeight", 11.7);
337
- expect(data.append).toHaveBeenNthCalledWith(8, "waitDelay", "5s");
338
- expect(data.append).toHaveBeenNthCalledWith(
339
- 9,
340
- "waitForExpression",
341
- "document.readyState === 'complete'"
342
- );
343
- expect(data.append).toHaveBeenNthCalledWith(
344
- 10,
345
- "userAgent",
346
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
347
- );
348
- expect(data.append).toHaveBeenNthCalledWith(
349
- 11,
350
- "extraHttpHeaders",
351
- JSON.stringify({ "X-Custom-Header": "value" })
352
- );
353
- expect(data.append).toHaveBeenNthCalledWith(
354
- 12,
355
- "failOnConsoleExceptions",
356
- "true"
357
- );
358
- });
359
361
  });
360
- });
361
362
  });