chromiumly 2.3.1 → 2.5.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.
- package/dist/chromium/converters/converter.js.map +1 -1
- package/dist/chromium/converters/html.converter.d.ts +4 -6
- package/dist/chromium/converters/html.converter.js +3 -4
- package/dist/chromium/converters/html.converter.js.map +1 -1
- package/dist/chromium/converters/markdown.converter.d.ts +5 -7
- package/dist/chromium/converters/markdown.converter.js +3 -6
- package/dist/chromium/converters/markdown.converter.js.map +1 -1
- package/dist/chromium/converters/url.converter.d.ts +3 -5
- package/dist/chromium/converters/url.converter.js +1 -1
- package/dist/chromium/converters/url.converter.js.map +1 -1
- package/dist/chromium/index.js.map +1 -1
- package/dist/chromium/interfaces/converter.types.d.ts +3 -5
- package/dist/chromium/utils/converter.utils.d.ts +3 -1
- package/dist/chromium/utils/converter.utils.js +26 -11
- package/dist/chromium/utils/converter.utils.js.map +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/gotenberg.utils.js.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/types.d.ts +3 -0
- package/dist/common/types.js +3 -0
- package/dist/common/types.js.map +1 -0
- package/dist/gotenberg.js.map +1 -1
- package/dist/libre-office/index.js.map +1 -1
- package/dist/libre-office/utils/constants.js.map +1 -1
- package/dist/libre-office/utils/libre-office.utils.d.ts +3 -4
- package/dist/libre-office/utils/libre-office.utils.js +18 -9
- package/dist/libre-office/utils/libre-office.utils.js.map +1 -1
- package/dist/main.config.js.map +1 -1
- package/dist/main.js.map +1 -1
- package/dist/pdf-engines/index.js.map +1 -1
- package/dist/pdf-engines/pdf.engine.js +3 -3
- package/dist/pdf-engines/pdf.engine.js.map +1 -1
- package/dist/pdf-engines/utils/engine.utils.d.ts +2 -3
- package/dist/pdf-engines/utils/engine.utils.js +17 -8
- package/dist/pdf-engines/utils/engine.utils.js.map +1 -1
- package/package.json +7 -7
- package/src/chromium/converters/converter.ts +5 -5
- package/src/chromium/converters/html.converter.ts +54 -56
- package/src/chromium/converters/markdown.converter.ts +57 -60
- package/src/chromium/converters/tests/html.converter.test.ts +121 -126
- package/src/chromium/converters/tests/markdown.converter.test.ts +132 -139
- package/src/chromium/converters/tests/url.converter.test.ts +114 -123
- package/src/chromium/converters/url.converter.ts +55 -57
- package/src/chromium/index.ts +3 -3
- package/src/chromium/interfaces/converter.types.ts +27 -27
- package/src/chromium/utils/converter.utils.ts +141 -129
- package/src/chromium/utils/tests/converter.utils.test.ts +315 -280
- package/src/common/constants.ts +3 -3
- package/src/common/gotenberg.utils.ts +16 -16
- package/src/common/index.ts +3 -2
- package/src/common/tests/gotenberg.utils.test.ts +54 -54
- package/src/common/types.ts +3 -0
- package/src/gotenberg.ts +4 -4
- package/src/libre-office/index.ts +2 -2
- package/src/libre-office/interfaces/libre-office.types.ts +2 -2
- package/src/libre-office/utils/constants.ts +76 -76
- package/src/libre-office/utils/libre-office.utils.ts +42 -35
- package/src/libre-office/utils/tests/libre-office.utils.test.ts +81 -69
- package/src/main.config.ts +22 -21
- package/src/main.ts +3 -3
- package/src/pdf-engines/index.ts +1 -1
- package/src/pdf-engines/pdf.engine.ts +49 -49
- package/src/pdf-engines/tests/pdf.engine.test.ts +94 -94
- package/src/pdf-engines/utils/engine.utils.ts +20 -12
- package/src/pdf-engines/utils/tests/engine.utils.test.ts +60 -48
|
@@ -1,327 +1,362 @@
|
|
|
1
1
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2
|
-
import {
|
|
2
|
+
import {createReadStream, promises} from "fs";
|
|
3
|
+
import path from "path";
|
|
3
4
|
import FormData from "form-data";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
5
|
+
import {ConverterUtils} from "../converter.utils";
|
|
6
|
+
import {PdfFormat} from "../../../common";
|
|
6
7
|
|
|
7
8
|
describe("ConverterUtils", () => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
});
|
|
9
|
+
const mockFormDataAppend = jest.spyOn(FormData.prototype, "append");
|
|
10
|
+
const data = new FormData();
|
|
11
|
+
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
jest.resetAllMocks();
|
|
34
14
|
});
|
|
35
15
|
|
|
36
|
-
describe("
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
+
});
|
|
47
28
|
});
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
29
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
+
});
|
|
59
43
|
});
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
44
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
+
});
|
|
71
55
|
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
56
|
+
|
|
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
|
+
});
|
|
81
77
|
});
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
78
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
+
});
|
|
93
89
|
});
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
90
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
+
});
|
|
105
101
|
});
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
102
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
+
});
|
|
117
113
|
});
|
|
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
114
|
});
|
|
129
115
|
|
|
130
|
-
describe("
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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, "file");
|
|
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
|
+
});
|
|
135
163
|
});
|
|
136
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
137
|
-
expect(data.append).toHaveBeenCalledWith(
|
|
138
|
-
"header.html",
|
|
139
|
-
"path/to/header.html"
|
|
140
|
-
);
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
164
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
+
});
|
|
149
177
|
});
|
|
150
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
151
|
-
expect(data.append).toHaveBeenCalledWith(
|
|
152
|
-
"footer.html",
|
|
153
|
-
"path/to/footer.html"
|
|
154
|
-
);
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
178
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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
|
+
});
|
|
162
191
|
});
|
|
163
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
164
|
-
expect(data.append).toHaveBeenCalledWith("pdfa", "PDF/A-1a");
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
192
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
+
});
|
|
172
201
|
});
|
|
173
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
174
|
-
expect(data.append).toHaveBeenCalledWith("pdfua", "true");
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
202
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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
|
+
});
|
|
182
211
|
});
|
|
183
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(2);
|
|
184
|
-
expect(data.append).toHaveBeenCalledWith("paperWidth", 8.3);
|
|
185
|
-
expect(data.append).toHaveBeenNthCalledWith(2, "paperHeight", 11.7);
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
212
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
+
});
|
|
193
222
|
});
|
|
194
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
195
|
-
expect(data.append).toHaveBeenCalledWith("emulatedMediaType", "screen");
|
|
196
|
-
});
|
|
197
|
-
});
|
|
198
223
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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
|
+
});
|
|
203
232
|
});
|
|
204
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
205
|
-
expect(data.append).toHaveBeenCalledWith("waitDelay", "5s");
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
233
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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
|
+
});
|
|
242
|
+
});
|
|
243
|
+
|
|
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
|
+
});
|
|
213
255
|
});
|
|
214
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
215
|
-
expect(data.append).toHaveBeenCalledWith(
|
|
216
|
-
"waitForExpression",
|
|
217
|
-
"document.readyState === 'complete'"
|
|
218
|
-
);
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
256
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
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";
|
|
226
261
|
|
|
227
|
-
|
|
228
|
-
|
|
262
|
+
await ConverterUtils.customize(data, {
|
|
263
|
+
userAgent,
|
|
264
|
+
});
|
|
265
|
+
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
266
|
+
expect(data.append).toHaveBeenCalledWith("userAgent", userAgent);
|
|
267
|
+
});
|
|
229
268
|
});
|
|
230
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
231
|
-
expect(data.append).toHaveBeenCalledWith("userAgent", userAgent);
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
269
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
270
|
+
describe("when extraHttpHeaders parameter is passed", () => {
|
|
271
|
+
it("should append extraHttpHeaders", async () => {
|
|
272
|
+
const extraHttpHeaders = {
|
|
273
|
+
"X-Custom-Header": "value",
|
|
274
|
+
};
|
|
240
275
|
|
|
241
|
-
|
|
242
|
-
|
|
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
|
+
});
|
|
243
285
|
});
|
|
244
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
245
|
-
expect(data.append).toHaveBeenCalledWith(
|
|
246
|
-
"extraHttpHeaders",
|
|
247
|
-
JSON.stringify(extraHttpHeaders)
|
|
248
|
-
);
|
|
249
|
-
});
|
|
250
|
-
});
|
|
251
286
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
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
|
+
});
|
|
256
298
|
});
|
|
257
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(1);
|
|
258
|
-
expect(data.append).toHaveBeenCalledWith(
|
|
259
|
-
"failOnConsoleExceptions",
|
|
260
|
-
"true"
|
|
261
|
-
);
|
|
262
|
-
});
|
|
263
|
-
});
|
|
264
299
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
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
|
+
});
|
|
282
360
|
});
|
|
283
|
-
expect(mockFormDataAppend).toHaveBeenCalledTimes(12);
|
|
284
|
-
expect(data.append).toHaveBeenNthCalledWith(1, "pdfa", "PDF/A-1a");
|
|
285
|
-
expect(data.append).toHaveBeenNthCalledWith(2, "pdfua", "true");
|
|
286
|
-
expect(data.append).toHaveBeenNthCalledWith(
|
|
287
|
-
3,
|
|
288
|
-
"header.html",
|
|
289
|
-
"path/to/header.html"
|
|
290
|
-
);
|
|
291
|
-
expect(data.append).toHaveBeenNthCalledWith(
|
|
292
|
-
4,
|
|
293
|
-
"footer.html",
|
|
294
|
-
"path/to/footer.html"
|
|
295
|
-
);
|
|
296
|
-
expect(data.append).toHaveBeenNthCalledWith(
|
|
297
|
-
5,
|
|
298
|
-
"emulatedMediaType",
|
|
299
|
-
"screen"
|
|
300
|
-
);
|
|
301
|
-
expect(data.append).toHaveBeenNthCalledWith(6, "paperWidth", 8.3);
|
|
302
|
-
expect(data.append).toHaveBeenNthCalledWith(7, "paperHeight", 11.7);
|
|
303
|
-
expect(data.append).toHaveBeenNthCalledWith(8, "waitDelay", "5s");
|
|
304
|
-
expect(data.append).toHaveBeenNthCalledWith(
|
|
305
|
-
9,
|
|
306
|
-
"waitForExpression",
|
|
307
|
-
"document.readyState === 'complete'"
|
|
308
|
-
);
|
|
309
|
-
expect(data.append).toHaveBeenNthCalledWith(
|
|
310
|
-
10,
|
|
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
|
-
);
|
|
314
|
-
expect(data.append).toHaveBeenNthCalledWith(
|
|
315
|
-
11,
|
|
316
|
-
"extraHttpHeaders",
|
|
317
|
-
JSON.stringify({ "X-Custom-Header": "value" })
|
|
318
|
-
);
|
|
319
|
-
expect(data.append).toHaveBeenNthCalledWith(
|
|
320
|
-
12,
|
|
321
|
-
"failOnConsoleExceptions",
|
|
322
|
-
"true"
|
|
323
|
-
);
|
|
324
|
-
});
|
|
325
361
|
});
|
|
326
|
-
});
|
|
327
362
|
});
|
package/src/common/constants.ts
CHANGED