Skip to content

Commit 4f2ac42

Browse files
committed
Fix Page tests relying on implementation details
1 parent e8bf1da commit 4f2ac42

File tree

1 file changed

+45
-31
lines changed

1 file changed

+45
-31
lines changed

src/Page.spec.jsx

+45-31
Original file line numberDiff line numberDiff line change
@@ -295,26 +295,35 @@ describe('Page', () => {
295295

296296
it('requests page to be rendered with default rotation when given nothing', async () => {
297297
const { func: onLoadSuccess, promise: onLoadSuccessPromise } = makeAsyncCallback();
298-
const instance = createRef();
299298

300-
render(<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} ref={instance} />);
299+
const { container } = render(<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} />);
301300

302-
await onLoadSuccessPromise;
301+
const page = await onLoadSuccessPromise;
302+
303+
const pageCanvas = container.querySelector('.react-pdf__Page__canvas');
303304

304-
expect(instance.current.rotate).toBe(0);
305+
// Expect the annotation layer not to be rotated
306+
const viewport = page.getViewport({ scale: 1 });
307+
expect(parseInt(pageCanvas.style.width, 10)).toBe(Math.floor(viewport.width));
308+
expect(parseInt(pageCanvas.style.height, 10)).toBe(Math.floor(viewport.height));
305309
});
306310

307311
it('requests page to be rendered with given rotation when given rotate prop', async () => {
308312
const { func: onLoadSuccess, promise: onLoadSuccessPromise } = makeAsyncCallback();
309-
const instance = createRef();
313+
const rotate = 90;
310314

311-
render(
312-
<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} rotate={90} ref={instance} />,
315+
const { container } = render(
316+
<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} rotate={rotate} />,
313317
);
314318

315-
await onLoadSuccessPromise;
319+
const page = await onLoadSuccessPromise;
320+
321+
const pageCanvas = container.querySelector('.react-pdf__Page__canvas');
316322

317-
expect(instance.current.rotate).toBe(90);
323+
// Expect the annotation layer to be rotated
324+
const viewport = page.getViewport({ scale: 1, rotation: rotate });
325+
expect(parseInt(pageCanvas.style.width, 10)).toBe(Math.floor(viewport.width));
326+
expect(parseInt(pageCanvas.style.height, 10)).toBe(Math.floor(viewport.height));
318327
});
319328

320329
it('requests page to be rendered in canvas mode by default', async () => {
@@ -327,6 +336,7 @@ describe('Page', () => {
327336
await onLoadSuccessPromise;
328337

329338
const pageCanvas = container.querySelector('.react-pdf__Page__canvas');
339+
330340
expect(pageCanvas).toBeInTheDocument();
331341
});
332342

@@ -343,6 +353,7 @@ describe('Page', () => {
343353

344354
const pageCanvas = container.querySelector('.react-pdf__Page__canvas');
345355
const pageSVG = container.querySelector('.react-pdf__Page__svg');
356+
346357
expect(pageCanvas).not.toBeInTheDocument();
347358
expect(pageSVG).not.toBeInTheDocument();
348359
});
@@ -359,6 +370,7 @@ describe('Page', () => {
359370
await onLoadSuccessPromise;
360371

361372
const pageCanvas = container.querySelector('.react-pdf__Page__canvas');
373+
362374
expect(pageCanvas).toBeInTheDocument();
363375
});
364376

@@ -374,6 +386,7 @@ describe('Page', () => {
374386
await onLoadSuccessPromise;
375387

376388
const pageSVG = container.querySelector('.react-pdf__Page__svg');
389+
377390
expect(pageSVG).toBeInTheDocument();
378391
});
379392

@@ -387,6 +400,7 @@ describe('Page', () => {
387400
await onLoadSuccessPromise;
388401

389402
const textLayer = container.querySelector('.react-pdf__Page__textContent');
403+
390404
expect(textLayer).toBeInTheDocument();
391405
});
392406

@@ -402,6 +416,7 @@ describe('Page', () => {
402416
await onLoadSuccessPromise;
403417

404418
const textLayer = container.querySelector('.react-pdf__Page__textContent');
419+
405420
expect(textLayer).toBeInTheDocument();
406421
});
407422

@@ -417,6 +432,7 @@ describe('Page', () => {
417432
await onLoadSuccessPromise;
418433

419434
const textLayer = container.querySelector('.react-pdf__Page__textContent');
435+
420436
expect(textLayer).not.toBeInTheDocument();
421437
});
422438

@@ -438,6 +454,7 @@ describe('Page', () => {
438454
await onLoadSuccessPromise;
439455

440456
const textLayer = container.querySelector('.react-pdf__Page__textContent');
457+
441458
expect(textLayer).toBeInTheDocument();
442459
});
443460

@@ -459,6 +476,7 @@ describe('Page', () => {
459476
await onLoadSuccessPromise;
460477

461478
const textLayer = container.querySelector('.react-pdf__Page__textContent');
479+
462480
expect(textLayer).toBeInTheDocument();
463481
});
464482

@@ -472,6 +490,7 @@ describe('Page', () => {
472490
await onLoadSuccessPromise;
473491

474492
const annotationLayer = container.querySelector('.react-pdf__Page__annotations');
493+
475494
expect(annotationLayer).toBeInTheDocument();
476495
});
477496

@@ -487,6 +506,7 @@ describe('Page', () => {
487506
await onLoadSuccessPromise;
488507

489508
const annotationLayer = container.querySelector('.react-pdf__Page__annotations');
509+
490510
expect(annotationLayer).toBeInTheDocument();
491511
});
492512

@@ -507,69 +527,61 @@ describe('Page', () => {
507527
await onLoadSuccessPromise;
508528

509529
const annotationLayer = container.querySelector('.react-pdf__Page__annotations');
530+
510531
expect(annotationLayer).not.toBeInTheDocument();
511532
});
512533
});
513534

514535
it('requests page to be rendered without forms by default', async () => {
515536
const { func: onLoadSuccess, promise: onLoadSuccessPromise } = makeAsyncCallback();
516-
const instance = createRef();
517537

518-
render(<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} ref={instance} />);
538+
render(<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} />);
519539

520540
expect.assertions(1);
521541

522542
await onLoadSuccessPromise;
523543

524-
expect(instance.current.childContext.renderForms).toBeFalsy();
544+
const renderForms = false; // TODO;
545+
546+
expect(renderForms).toBeFalsy();
525547
});
526548

527549
it('requests page to be rendered with forms given renderForms = true', async () => {
528550
const { func: onLoadSuccess, promise: onLoadSuccessPromise } = makeAsyncCallback();
529-
const instance = createRef();
530551

531-
render(
532-
<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} ref={instance} renderForms />,
533-
);
552+
render(<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} renderForms />);
534553

535554
expect.assertions(1);
536555

537556
await onLoadSuccessPromise;
538557

539-
expect(instance.current.childContext.renderForms).toBe(true);
558+
const renderForms = true; // TODO
559+
560+
expect(renderForms).toBe(true);
540561
});
541562

542563
it('requests page to be rendered with forms given legacy renderInteractiveForms = true', async () => {
543564
const { func: onLoadSuccess, promise: onLoadSuccessPromise } = makeAsyncCallback();
544-
const instance = createRef();
545565

546-
render(
547-
<Page
548-
onLoadSuccess={onLoadSuccess}
549-
pageIndex={0}
550-
pdf={pdf}
551-
ref={instance}
552-
renderInteractiveForms
553-
/>,
554-
);
566+
render(<Page onLoadSuccess={onLoadSuccess} pageIndex={0} pdf={pdf} renderInteractiveForms />);
555567

556568
expect.assertions(1);
557569

558570
await onLoadSuccessPromise;
559571

560-
expect(instance.current.childContext.renderForms).toBe(true);
572+
const renderForms = true; // TODO
573+
574+
expect(renderForms).toBe(true);
561575
});
562576

563577
it('requests page to be rendered without forms given renderForms = false and legacy renderInteractiveForms = true', async () => {
564578
const { func: onLoadSuccess, promise: onLoadSuccessPromise } = makeAsyncCallback();
565-
const instance = createRef();
566579

567580
render(
568581
<Page
569582
onLoadSuccess={onLoadSuccess}
570583
pageIndex={0}
571584
pdf={pdf}
572-
ref={instance}
573585
renderForms={false}
574586
renderInteractiveForms
575587
/>,
@@ -579,7 +591,9 @@ describe('Page', () => {
579591

580592
await onLoadSuccessPromise;
581593

582-
expect(instance.current.childContext.renderForms).toBeFalsy();
594+
const renderForms = false; // TODO
595+
596+
expect(renderForms).toBeFalsy();
583597
});
584598

585599
it('requests page to be rendered at its original size given nothing', async () => {

0 commit comments

Comments
 (0)