-
-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathspecific-pages.test.ts
More file actions
104 lines (88 loc) · 3.98 KB
/
specific-pages.test.ts
File metadata and controls
104 lines (88 loc) · 3.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import { data } from '../helper/default-test';
import { PDFParse } from 'pdf-parse';
import { describe, expect, test } from 'vitest';
describe('test-parse-parameters', async () => {
const buffer = await data.getBuffer();
const parser = new PDFParse({ data: buffer });
// Parse only the first page (page 1):
// - Request text extraction only for page 1 using the `partial` option.
// - Verify that only one page is returned, that its page number is 1,
// and that the total page count in metadata matches the expected value.
describe('parse only page 1', async () => {
const result = await parser.getText({ partial: [1] });
test('check result', async () => {
expect(result.pages.length).toEqual(1);
expect(result.pages[0].num).toEqual(1);
expect(result.total).toEqual(data.total);
});
test.each(result.pages)('page: $num must contains test sentences', ({ num, text }) => {
expect(text.includes(data.getFirstText(num))).toBeTruthy();
});
});
// Parse a selection of non-consecutive pages (pages 2, 5 and 7):
// - Use the `partial` option to specify an explicit list of pages.
// - Confirm that the returned pages are in the requested order and
// that each page's extracted text contains the expected sample text.
describe('parse pages 2, 5, 7', async () => {
const result = await parser.getText({ partial: [2, 5, 7] });
test('check result', async () => {
expect(result.pages.length).toEqual(3);
expect(result.pages[0].num).toEqual(2);
expect(result.pages[1].num).toEqual(5);
expect(result.pages[2].num).toEqual(7);
expect(result.total).toEqual(data.total);
});
test.each(result.pages)('page: $num must contains test sentences', ({ num, text }) => {
expect(text.includes(data.getFirstText(num))).toBeTruthy();
});
});
// Parse a contiguous page range (pages 5 through 8):
// - Provide `first` and `last` to extract a continuous range of pages.
// - Ensure the number of returned pages equals the range length and that
// the pages and their contents match expectations.
describe('parse pages between 5-8', async () => {
const result = await parser.getText({ first: 5, last: 8 });
test('check result', async () => {
expect(result.pages.length).toEqual(4);
expect(result.pages[0].num).toEqual(5);
expect(result.pages[1].num).toEqual(6);
expect(result.pages[2].num).toEqual(7);
expect(result.pages[3].num).toEqual(8);
expect(result.total).toEqual(data.total);
});
test.each(result.pages)('page: $num must contains test sentences', ({ num, text }) => {
expect(text.includes(data.getFirstText(num))).toBeTruthy();
});
});
// Parse the first N pages (first 2 pages):
// - Use `first` to request extraction starting from page 1 up to the given count.
// - Verify the returned pages start at page 1 and include the expected texts.
describe('parse first 2 pages', async () => {
const result = await parser.getText({ first: 2 });
test('check result', async () => {
expect(result.pages.length).toEqual(2);
expect(result.pages[0].num).toEqual(1);
expect(result.pages[1].num).toEqual(2);
expect(result.total).toEqual(data.total);
});
test.each(result.pages)('page: $num must contains test sentences', ({ num, text }) => {
expect(text.includes(data.getFirstText(num))).toBeTruthy();
});
});
// Parse the last N pages (last 2 pages):
// - Use `last` to request extraction of the final N pages of the document.
// - Confirm the pages returned correspond to the document's tail and that
// each contains the expected sample text for its page number.
describe('parse last 2 pages', async () => {
const result = await parser.getText({ last: 2 });
test('check result', async () => {
expect(result.pages.length).toEqual(2);
expect(result.pages[0].num).toEqual(13);
expect(result.pages[1].num).toEqual(14);
expect(result.total).toEqual(data.total);
});
test.each(result.pages)('page: $num must contains test sentences', ({ num, text }) => {
expect(text.includes(data.getFirstText(num))).toBeTruthy();
});
});
});