From c400dfa9e6cb93d84e98fff5175b14f13afd3bd4 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Tue, 18 Dec 2018 20:56:28 +0900 Subject: [PATCH] Add unit tests for trailer --- tests/unit/trailer.spec.js | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tests/unit/trailer.spec.js diff --git a/tests/unit/trailer.spec.js b/tests/unit/trailer.spec.js new file mode 100644 index 0000000..d485ebe --- /dev/null +++ b/tests/unit/trailer.spec.js @@ -0,0 +1,48 @@ +const PDFDocument = require('../../'); + +describe('Document trailer', () => { + let document; + + beforeEach(() => { + document = new PDFDocument({info: { CreationDate: new Date(Date.UTC(2018,1,1)) } }); + }); + + test('', (done) => { + const dataLog = []; + const expected = [ + [ + '7 0 obj', + '<<\n/Producer 8 0 R\n/Creator 9 0 R\n/CreationDate 10 0 R\n>>' + ], + [ + '8 0 obj', + '(PDFKit)' + ], + [ + '9 0 obj', + '(PDFKit)' + ], + [ + '10 0 obj', + '(D:20180201000000Z)' + ], + [ + 'trailer', + `<<\n/Size 11\n/Root 2 0 R\n/Info 7 0 R\n/ID [<8c72cf48ff87daac57e26bf1550e6979> <8c72cf48ff87daac57e26bf1550e6979>]\n>>` + ] + ]; + document._write = function(data) { + dataLog.push(data) + } + document.end(); + setTimeout(() => { + for (let i = 0; i < expected.length; ++i) { + let idx = dataLog.indexOf(expected[i][0]); + for (let j = 1; j < expected[i].length; ++j) { + expect(dataLog[idx + j]).toEqual(expected[i][j]); + } + } + done(); + }, 1); + }); +}); \ No newline at end of file