@zextras/carbonio-ui-preview 0.2.1 → 0.2.2
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/lib/preview/ImagePreview.js +11 -5
- package/lib/preview/ImagePreview.js.map +1 -1
- package/lib/preview/PageController.js +14 -3
- package/lib/preview/PageController.js.map +1 -1
- package/lib/preview/PdfPreview.d.ts +4 -0
- package/lib/preview/PdfPreview.js +51 -18
- package/lib/preview/PdfPreview.js.map +1 -1
- package/lib/preview/PdfPreview.test.js +326 -59
- package/lib/preview/PdfPreview.test.js.map +1 -1
- package/lib/preview/PreviewManager.test.js +93 -0
- package/lib/preview/PreviewManager.test.js.map +1 -1
- package/lib-esm/preview/ImagePreview.js +11 -5
- package/lib-esm/preview/ImagePreview.js.map +1 -1
- package/lib-esm/preview/PageController.js +14 -3
- package/lib-esm/preview/PageController.js.map +1 -1
- package/lib-esm/preview/PdfPreview.d.ts +4 -0
- package/lib-esm/preview/PdfPreview.js +51 -18
- package/lib-esm/preview/PdfPreview.js.map +1 -1
- package/lib-esm/preview/PdfPreview.test.js +326 -59
- package/lib-esm/preview/PdfPreview.test.js.map +1 -1
- package/lib-esm/preview/PreviewManager.test.js +94 -1
- package/lib-esm/preview/PreviewManager.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -61,10 +61,10 @@ describe('Pdf Preview', function () {
|
|
|
61
61
|
setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
62
62
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
63
63
|
});
|
|
64
|
-
return [4 /*yield*/, screen.findByText(/
|
|
64
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
65
65
|
case 1:
|
|
66
66
|
_a.sent();
|
|
67
|
-
expect(screen.queryByText(/
|
|
67
|
+
expect(screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
|
|
68
68
|
expect(screen.getByTestId('pdf-preview-container')).toBeInTheDocument();
|
|
69
69
|
pageElement = document.querySelector('[data-page-number="1"]');
|
|
70
70
|
expect(pageElement).toBeDefined();
|
|
@@ -81,7 +81,7 @@ describe('Pdf Preview', function () {
|
|
|
81
81
|
setup(React.createElement(PdfPreview, { show: false, src: pdfFile.dataURI, onClose: onClose }), {
|
|
82
82
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
83
83
|
});
|
|
84
|
-
expect(screen.queryByText(/
|
|
84
|
+
expect(screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
|
|
85
85
|
expect(screen.queryByTestId('pdf-preview-container')).not.toBeInTheDocument();
|
|
86
86
|
return [2 /*return*/];
|
|
87
87
|
});
|
|
@@ -95,13 +95,13 @@ describe('Pdf Preview', function () {
|
|
|
95
95
|
setup(React.createElement(PdfPreview, { show: true, src: "invalid-pdf.pdf", onClose: onClose }), {
|
|
96
96
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
97
97
|
});
|
|
98
|
-
return [4 /*yield*/, screen.findByText(/
|
|
98
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
99
99
|
case 1:
|
|
100
100
|
_a.sent();
|
|
101
|
-
return [4 /*yield*/, screen.findByText(/Failed to load
|
|
101
|
+
return [4 /*yield*/, screen.findByText(/Failed to load document preview./i)];
|
|
102
102
|
case 2:
|
|
103
103
|
_a.sent();
|
|
104
|
-
expect(screen.queryByText(/
|
|
104
|
+
expect(screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
|
|
105
105
|
expect(screen.getByTestId('pdf-preview-container')).toBeInTheDocument();
|
|
106
106
|
return [2 /*return*/];
|
|
107
107
|
}
|
|
@@ -148,10 +148,10 @@ describe('Pdf Preview', function () {
|
|
|
148
148
|
setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, filename: "file name", extension: "pdf", size: "18KB" }), {
|
|
149
149
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
150
150
|
});
|
|
151
|
-
return [4 /*yield*/, screen.findByText(/
|
|
151
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
152
152
|
case 1:
|
|
153
153
|
_a.sent();
|
|
154
|
-
expect(screen.queryByText(/
|
|
154
|
+
expect(screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
|
|
155
155
|
expect(screen.getByText(/file name/i)).toBeVisible();
|
|
156
156
|
expect(screen.getByText(/pdf.*18KB/i)).toBeVisible();
|
|
157
157
|
return [2 /*return*/];
|
|
@@ -167,10 +167,10 @@ describe('Pdf Preview', function () {
|
|
|
167
167
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
168
168
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
169
169
|
}).user;
|
|
170
|
-
return [4 /*yield*/, screen.findByText(/
|
|
170
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
171
171
|
case 1:
|
|
172
172
|
_a.sent();
|
|
173
|
-
expect(screen.queryByText(/
|
|
173
|
+
expect(screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
|
|
174
174
|
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
175
175
|
case 2:
|
|
176
176
|
_a.sent();
|
|
@@ -195,10 +195,10 @@ describe('Pdf Preview', function () {
|
|
|
195
195
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, closeAction: closeAction }), {
|
|
196
196
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
197
197
|
}).user;
|
|
198
|
-
return [4 /*yield*/, screen.findByText(/
|
|
198
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
199
199
|
case 1:
|
|
200
200
|
_a.sent();
|
|
201
|
-
expect(screen.queryByText(/
|
|
201
|
+
expect(screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
|
|
202
202
|
closeActionElement = screen.getByTestId('icon: Activity');
|
|
203
203
|
expect(closeActionElement).toBeVisible();
|
|
204
204
|
return [4 /*yield*/, user.hover(closeActionElement)];
|
|
@@ -246,7 +246,7 @@ describe('Pdf Preview', function () {
|
|
|
246
246
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, actions: actions, filename: "pdf name", closeAction: closeAction }), {
|
|
247
247
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
248
248
|
}).user;
|
|
249
|
-
return [4 /*yield*/, screen.findByText(/
|
|
249
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
250
250
|
case 1:
|
|
251
251
|
_a.sent();
|
|
252
252
|
return [4 /*yield*/, waitFor(function () {
|
|
@@ -304,7 +304,7 @@ describe('Pdf Preview', function () {
|
|
|
304
304
|
setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
305
305
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
306
306
|
});
|
|
307
|
-
return [4 /*yield*/, screen.findByText(/
|
|
307
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
308
308
|
case 1:
|
|
309
309
|
_a.sent();
|
|
310
310
|
canvas = document.querySelector('canvas');
|
|
@@ -323,7 +323,7 @@ describe('Pdf Preview', function () {
|
|
|
323
323
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
324
324
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
325
325
|
}).user;
|
|
326
|
-
return [4 /*yield*/, screen.findByText(/
|
|
326
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
327
327
|
case 1:
|
|
328
328
|
_a.sent();
|
|
329
329
|
canvas = document.querySelector('canvas');
|
|
@@ -356,7 +356,7 @@ describe('Pdf Preview', function () {
|
|
|
356
356
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
357
357
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
358
358
|
}).user;
|
|
359
|
-
return [4 /*yield*/, screen.findByText(/
|
|
359
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
360
360
|
case 1:
|
|
361
361
|
_a.sent();
|
|
362
362
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -409,7 +409,7 @@ describe('Pdf Preview', function () {
|
|
|
409
409
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
410
410
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
411
411
|
}).user;
|
|
412
|
-
return [4 /*yield*/, screen.findByText(/
|
|
412
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
413
413
|
case 1:
|
|
414
414
|
_a.sent();
|
|
415
415
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -448,7 +448,7 @@ describe('Pdf Preview', function () {
|
|
|
448
448
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
449
449
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
450
450
|
}).user;
|
|
451
|
-
return [4 /*yield*/, screen.findByText(/
|
|
451
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
452
452
|
case 1:
|
|
453
453
|
_a.sent();
|
|
454
454
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -479,7 +479,7 @@ describe('Pdf Preview', function () {
|
|
|
479
479
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
480
480
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
481
481
|
}).user;
|
|
482
|
-
return [4 /*yield*/, screen.findByText(/
|
|
482
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
483
483
|
case 1:
|
|
484
484
|
_a.sent();
|
|
485
485
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -517,7 +517,7 @@ describe('Pdf Preview', function () {
|
|
|
517
517
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
518
518
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
519
519
|
}).user;
|
|
520
|
-
return [4 /*yield*/, screen.findByText(/
|
|
520
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
521
521
|
case 1:
|
|
522
522
|
_a.sent();
|
|
523
523
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -546,7 +546,7 @@ describe('Pdf Preview', function () {
|
|
|
546
546
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
547
547
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
548
548
|
}).user;
|
|
549
|
-
return [4 /*yield*/, screen.findByText(/
|
|
549
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
550
550
|
case 1:
|
|
551
551
|
_a.sent();
|
|
552
552
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -576,7 +576,7 @@ describe('Pdf Preview', function () {
|
|
|
576
576
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
577
577
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
578
578
|
}).user;
|
|
579
|
-
return [4 /*yield*/, screen.findByText(/
|
|
579
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
580
580
|
case 1:
|
|
581
581
|
_a.sent();
|
|
582
582
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -609,7 +609,7 @@ describe('Pdf Preview', function () {
|
|
|
609
609
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
610
610
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
611
611
|
}).user;
|
|
612
|
-
return [4 /*yield*/, screen.findByText(/
|
|
612
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
613
613
|
case 1:
|
|
614
614
|
_a.sent();
|
|
615
615
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -641,7 +641,7 @@ describe('Pdf Preview', function () {
|
|
|
641
641
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
642
642
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
643
643
|
}).user;
|
|
644
|
-
return [4 /*yield*/, screen.findByText(/
|
|
644
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
645
645
|
case 1:
|
|
646
646
|
_a.sent();
|
|
647
647
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -675,7 +675,7 @@ describe('Pdf Preview', function () {
|
|
|
675
675
|
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
676
676
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
677
677
|
}).user;
|
|
678
|
-
return [4 /*yield*/, screen.findByText(/
|
|
678
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
679
679
|
case 1:
|
|
680
680
|
_a.sent();
|
|
681
681
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -710,16 +710,15 @@ describe('Pdf Preview', function () {
|
|
|
710
710
|
}); });
|
|
711
711
|
describe('Page selector', function () {
|
|
712
712
|
test('shows page controller', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
713
|
-
var onClose
|
|
713
|
+
var onClose;
|
|
714
714
|
return __generator(this, function (_a) {
|
|
715
715
|
switch (_a.label) {
|
|
716
716
|
case 0:
|
|
717
717
|
onClose = jest.fn();
|
|
718
|
-
|
|
719
|
-
setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
718
|
+
setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
720
719
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
721
720
|
});
|
|
722
|
-
return [4 /*yield*/, screen.findByText(/
|
|
721
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
723
722
|
case 1:
|
|
724
723
|
_a.sent();
|
|
725
724
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -733,16 +732,15 @@ describe('Pdf Preview', function () {
|
|
|
733
732
|
});
|
|
734
733
|
}); });
|
|
735
734
|
test('blur is a confirmation event on page input', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
736
|
-
var onClose,
|
|
735
|
+
var onClose, user, pageInput;
|
|
737
736
|
return __generator(this, function (_a) {
|
|
738
737
|
switch (_a.label) {
|
|
739
738
|
case 0:
|
|
740
739
|
onClose = jest.fn();
|
|
741
|
-
|
|
742
|
-
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
740
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
743
741
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
744
742
|
}).user;
|
|
745
|
-
return [4 /*yield*/, screen.findByText(/
|
|
743
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
746
744
|
case 1:
|
|
747
745
|
_a.sent();
|
|
748
746
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -766,16 +764,15 @@ describe('Pdf Preview', function () {
|
|
|
766
764
|
});
|
|
767
765
|
}); });
|
|
768
766
|
test('enter key is a confirmation event on page input', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
769
|
-
var onClose,
|
|
767
|
+
var onClose, user, pageInput;
|
|
770
768
|
return __generator(this, function (_a) {
|
|
771
769
|
switch (_a.label) {
|
|
772
770
|
case 0:
|
|
773
771
|
onClose = jest.fn();
|
|
774
|
-
|
|
775
|
-
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
772
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
776
773
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
777
774
|
}).user;
|
|
778
|
-
return [4 /*yield*/, screen.findByText(/
|
|
775
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
779
776
|
case 1:
|
|
780
777
|
_a.sent();
|
|
781
778
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -799,18 +796,17 @@ describe('Pdf Preview', function () {
|
|
|
799
796
|
});
|
|
800
797
|
}); });
|
|
801
798
|
test('when input is confirmed, input loses focus and the document is scrolled to typed page', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
802
|
-
var onClose,
|
|
799
|
+
var onClose, scrollIntoViewFn, user, pageInput;
|
|
803
800
|
return __generator(this, function (_a) {
|
|
804
801
|
switch (_a.label) {
|
|
805
802
|
case 0:
|
|
806
803
|
onClose = jest.fn();
|
|
807
|
-
ref = React.createRef();
|
|
808
804
|
scrollIntoViewFn = jest.fn();
|
|
809
805
|
window.HTMLElement.prototype.scrollIntoView = scrollIntoViewFn;
|
|
810
|
-
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose
|
|
806
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
811
807
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
812
808
|
}).user;
|
|
813
|
-
return [4 /*yield*/, screen.findByText(/
|
|
809
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
814
810
|
case 1:
|
|
815
811
|
_a.sent();
|
|
816
812
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -836,18 +832,17 @@ describe('Pdf Preview', function () {
|
|
|
836
832
|
});
|
|
837
833
|
}); });
|
|
838
834
|
test('when input is confirmed with an invalid value, input loses focus and the input value is reset to previous valid page', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
839
|
-
var onClose,
|
|
835
|
+
var onClose, scrollIntoViewFn, user, pageInput;
|
|
840
836
|
return __generator(this, function (_a) {
|
|
841
837
|
switch (_a.label) {
|
|
842
838
|
case 0:
|
|
843
839
|
onClose = jest.fn();
|
|
844
|
-
ref = React.createRef();
|
|
845
840
|
scrollIntoViewFn = jest.fn();
|
|
846
841
|
window.HTMLElement.prototype.scrollIntoView = scrollIntoViewFn;
|
|
847
|
-
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose
|
|
842
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
848
843
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
849
844
|
}).user;
|
|
850
|
-
return [4 /*yield*/, screen.findByText(/
|
|
845
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
851
846
|
case 1:
|
|
852
847
|
_a.sent();
|
|
853
848
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -872,16 +867,15 @@ describe('Pdf Preview', function () {
|
|
|
872
867
|
});
|
|
873
868
|
}); });
|
|
874
869
|
test('on scroll, if focus is not on input, value is updated with current page', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
875
|
-
var onClose,
|
|
870
|
+
var onClose, pageInput, page2Element;
|
|
876
871
|
return __generator(this, function (_a) {
|
|
877
872
|
switch (_a.label) {
|
|
878
873
|
case 0:
|
|
879
874
|
onClose = jest.fn();
|
|
880
|
-
|
|
881
|
-
setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
875
|
+
setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
882
876
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
883
877
|
});
|
|
884
|
-
return [4 /*yield*/, screen.findByText(/
|
|
878
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
885
879
|
case 1:
|
|
886
880
|
_a.sent();
|
|
887
881
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -900,16 +894,15 @@ describe('Pdf Preview', function () {
|
|
|
900
894
|
});
|
|
901
895
|
}); });
|
|
902
896
|
test('on scroll, if focus is on input, value is updated with current page', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
903
|
-
var onClose,
|
|
897
|
+
var onClose, user, pageInput, page2Element;
|
|
904
898
|
return __generator(this, function (_a) {
|
|
905
899
|
switch (_a.label) {
|
|
906
900
|
case 0:
|
|
907
901
|
onClose = jest.fn();
|
|
908
|
-
|
|
909
|
-
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
902
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
910
903
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
911
904
|
}).user;
|
|
912
|
-
return [4 /*yield*/, screen.findByText(/
|
|
905
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
913
906
|
case 1:
|
|
914
907
|
_a.sent();
|
|
915
908
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -935,17 +928,16 @@ describe('Pdf Preview', function () {
|
|
|
935
928
|
}
|
|
936
929
|
});
|
|
937
930
|
}); });
|
|
938
|
-
test('esc key
|
|
939
|
-
var onClose,
|
|
931
|
+
test('must press esc key 2 times to make user exit from the preview, when focus is on input', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
932
|
+
var onClose, user, pageInput;
|
|
940
933
|
return __generator(this, function (_a) {
|
|
941
934
|
switch (_a.label) {
|
|
942
935
|
case 0:
|
|
943
936
|
onClose = jest.fn();
|
|
944
|
-
|
|
945
|
-
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
|
|
937
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
946
938
|
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
947
939
|
}).user;
|
|
948
|
-
return [4 /*yield*/, screen.findByText(/
|
|
940
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
949
941
|
case 1:
|
|
950
942
|
_a.sent();
|
|
951
943
|
// eslint-disable-next-line testing-library/no-node-access
|
|
@@ -963,7 +955,282 @@ describe('Pdf Preview', function () {
|
|
|
963
955
|
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
964
956
|
case 4:
|
|
965
957
|
_a.sent();
|
|
966
|
-
expect(onClose).toHaveBeenCalled();
|
|
958
|
+
expect(onClose).not.toHaveBeenCalled();
|
|
959
|
+
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
960
|
+
case 5:
|
|
961
|
+
_a.sent();
|
|
962
|
+
expect(onClose).toHaveBeenCalledTimes(1);
|
|
963
|
+
return [2 /*return*/];
|
|
964
|
+
}
|
|
965
|
+
});
|
|
966
|
+
}); });
|
|
967
|
+
});
|
|
968
|
+
describe('keyboard shortcuts', function () {
|
|
969
|
+
describe('Home and End', function () {
|
|
970
|
+
test('click End go to last page and Home return to the first page', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
971
|
+
var onClose, user, pageInput;
|
|
972
|
+
return __generator(this, function (_a) {
|
|
973
|
+
switch (_a.label) {
|
|
974
|
+
case 0:
|
|
975
|
+
onClose = jest.fn();
|
|
976
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
977
|
+
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
978
|
+
}).user;
|
|
979
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
980
|
+
case 1:
|
|
981
|
+
_a.sent();
|
|
982
|
+
// eslint-disable-next-line testing-library/no-node-access
|
|
983
|
+
expect(document.querySelector('canvas')).toBeVisible();
|
|
984
|
+
expect(screen.getByText(/page/i)).toBeVisible();
|
|
985
|
+
pageInput = screen.getByRole('textbox', { name: /current page/i });
|
|
986
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
987
|
+
return [4 /*yield*/, user.keyboard('{End}')];
|
|
988
|
+
case 2:
|
|
989
|
+
_a.sent();
|
|
990
|
+
expect(pageInput).toHaveDisplayValue('4');
|
|
991
|
+
return [4 /*yield*/, user.keyboard('{Home}')];
|
|
992
|
+
case 3:
|
|
993
|
+
_a.sent();
|
|
994
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
995
|
+
return [2 /*return*/];
|
|
996
|
+
}
|
|
997
|
+
});
|
|
998
|
+
}); });
|
|
999
|
+
test('click End go to last page and Home return to the first page, but they do not work if the page input is focussed ', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1000
|
+
var onClose, user, pageInput;
|
|
1001
|
+
return __generator(this, function (_a) {
|
|
1002
|
+
switch (_a.label) {
|
|
1003
|
+
case 0:
|
|
1004
|
+
onClose = jest.fn();
|
|
1005
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
1006
|
+
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
1007
|
+
}).user;
|
|
1008
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
1009
|
+
case 1:
|
|
1010
|
+
_a.sent();
|
|
1011
|
+
// eslint-disable-next-line testing-library/no-node-access
|
|
1012
|
+
expect(document.querySelector('canvas')).toBeVisible();
|
|
1013
|
+
expect(screen.getByText(/page/i)).toBeVisible();
|
|
1014
|
+
pageInput = screen.getByRole('textbox', { name: /current page/i });
|
|
1015
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1016
|
+
return [4 /*yield*/, user.click(pageInput)];
|
|
1017
|
+
case 2:
|
|
1018
|
+
_a.sent();
|
|
1019
|
+
expect(pageInput).toHaveFocus();
|
|
1020
|
+
return [4 /*yield*/, user.keyboard('{End}')];
|
|
1021
|
+
case 3:
|
|
1022
|
+
_a.sent();
|
|
1023
|
+
expect(pageInput).not.toHaveDisplayValue('4');
|
|
1024
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1025
|
+
// remove focus
|
|
1026
|
+
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
1027
|
+
case 4:
|
|
1028
|
+
// remove focus
|
|
1029
|
+
_a.sent();
|
|
1030
|
+
expect(pageInput).not.toHaveFocus();
|
|
1031
|
+
return [4 /*yield*/, user.keyboard('{End}')];
|
|
1032
|
+
case 5:
|
|
1033
|
+
_a.sent();
|
|
1034
|
+
expect(pageInput).toHaveDisplayValue('4');
|
|
1035
|
+
// focus input again
|
|
1036
|
+
return [4 /*yield*/, user.click(pageInput)];
|
|
1037
|
+
case 6:
|
|
1038
|
+
// focus input again
|
|
1039
|
+
_a.sent();
|
|
1040
|
+
expect(pageInput).toHaveFocus();
|
|
1041
|
+
return [4 /*yield*/, user.keyboard('{Home}')];
|
|
1042
|
+
case 7:
|
|
1043
|
+
_a.sent();
|
|
1044
|
+
expect(pageInput).not.toHaveDisplayValue('1');
|
|
1045
|
+
expect(pageInput).toHaveDisplayValue('4');
|
|
1046
|
+
// remove focus
|
|
1047
|
+
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
1048
|
+
case 8:
|
|
1049
|
+
// remove focus
|
|
1050
|
+
_a.sent();
|
|
1051
|
+
expect(pageInput).not.toHaveFocus();
|
|
1052
|
+
return [4 /*yield*/, user.keyboard('{Home}')];
|
|
1053
|
+
case 9:
|
|
1054
|
+
_a.sent();
|
|
1055
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1056
|
+
return [2 /*return*/];
|
|
1057
|
+
}
|
|
1058
|
+
});
|
|
1059
|
+
}); });
|
|
1060
|
+
});
|
|
1061
|
+
describe('PageUp and PageDown', function () {
|
|
1062
|
+
test('click PageDown go to the next page and PageUp go to the previous page', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1063
|
+
var onClose, user, pageInput;
|
|
1064
|
+
return __generator(this, function (_a) {
|
|
1065
|
+
switch (_a.label) {
|
|
1066
|
+
case 0:
|
|
1067
|
+
onClose = jest.fn();
|
|
1068
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
1069
|
+
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
1070
|
+
}).user;
|
|
1071
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
1072
|
+
case 1:
|
|
1073
|
+
_a.sent();
|
|
1074
|
+
// eslint-disable-next-line testing-library/no-node-access
|
|
1075
|
+
expect(document.querySelector('canvas')).toBeVisible();
|
|
1076
|
+
expect(screen.getByText(/page/i)).toBeVisible();
|
|
1077
|
+
pageInput = screen.getByRole('textbox', { name: /current page/i });
|
|
1078
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1079
|
+
return [4 /*yield*/, user.keyboard('{PageDown}')];
|
|
1080
|
+
case 2:
|
|
1081
|
+
_a.sent();
|
|
1082
|
+
expect(pageInput).toHaveDisplayValue('2');
|
|
1083
|
+
return [4 /*yield*/, user.keyboard('{PageDown}')];
|
|
1084
|
+
case 3:
|
|
1085
|
+
_a.sent();
|
|
1086
|
+
expect(pageInput).toHaveDisplayValue('3');
|
|
1087
|
+
return [4 /*yield*/, user.keyboard('{PageDown}')];
|
|
1088
|
+
case 4:
|
|
1089
|
+
_a.sent();
|
|
1090
|
+
expect(pageInput).toHaveDisplayValue('4');
|
|
1091
|
+
return [4 /*yield*/, user.keyboard('{PageDown}')];
|
|
1092
|
+
case 5:
|
|
1093
|
+
_a.sent();
|
|
1094
|
+
expect(pageInput).toHaveDisplayValue('4');
|
|
1095
|
+
return [4 /*yield*/, user.keyboard('{PageUp}')];
|
|
1096
|
+
case 6:
|
|
1097
|
+
_a.sent();
|
|
1098
|
+
expect(pageInput).toHaveDisplayValue('3');
|
|
1099
|
+
return [4 /*yield*/, user.keyboard('{PageUp}')];
|
|
1100
|
+
case 7:
|
|
1101
|
+
_a.sent();
|
|
1102
|
+
expect(pageInput).toHaveDisplayValue('2');
|
|
1103
|
+
return [4 /*yield*/, user.keyboard('{PageUp}')];
|
|
1104
|
+
case 8:
|
|
1105
|
+
_a.sent();
|
|
1106
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1107
|
+
return [4 /*yield*/, user.keyboard('{PageUp}')];
|
|
1108
|
+
case 9:
|
|
1109
|
+
_a.sent();
|
|
1110
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1111
|
+
return [2 /*return*/];
|
|
1112
|
+
}
|
|
1113
|
+
});
|
|
1114
|
+
}); });
|
|
1115
|
+
test('click PageDown go to the next page and PageUp go to the previous page, but they do not work if the page input is focussed ', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1116
|
+
var onClose, user, pageInput;
|
|
1117
|
+
return __generator(this, function (_a) {
|
|
1118
|
+
switch (_a.label) {
|
|
1119
|
+
case 0:
|
|
1120
|
+
onClose = jest.fn();
|
|
1121
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
1122
|
+
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
1123
|
+
}).user;
|
|
1124
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
1125
|
+
case 1:
|
|
1126
|
+
_a.sent();
|
|
1127
|
+
// eslint-disable-next-line testing-library/no-node-access
|
|
1128
|
+
expect(document.querySelector('canvas')).toBeVisible();
|
|
1129
|
+
expect(screen.getByText(/page/i)).toBeVisible();
|
|
1130
|
+
pageInput = screen.getByRole('textbox', { name: /current page/i });
|
|
1131
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1132
|
+
return [4 /*yield*/, user.click(pageInput)];
|
|
1133
|
+
case 2:
|
|
1134
|
+
_a.sent();
|
|
1135
|
+
expect(pageInput).toHaveFocus();
|
|
1136
|
+
return [4 /*yield*/, user.keyboard('{PageDown}')];
|
|
1137
|
+
case 3:
|
|
1138
|
+
_a.sent();
|
|
1139
|
+
expect(pageInput).not.toHaveDisplayValue('2');
|
|
1140
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1141
|
+
// remove focus
|
|
1142
|
+
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
1143
|
+
case 4:
|
|
1144
|
+
// remove focus
|
|
1145
|
+
_a.sent();
|
|
1146
|
+
expect(pageInput).not.toHaveFocus();
|
|
1147
|
+
return [4 /*yield*/, user.keyboard('{PageDown}')];
|
|
1148
|
+
case 5:
|
|
1149
|
+
_a.sent();
|
|
1150
|
+
expect(pageInput).toHaveDisplayValue('2');
|
|
1151
|
+
// focus input again
|
|
1152
|
+
return [4 /*yield*/, user.click(pageInput)];
|
|
1153
|
+
case 6:
|
|
1154
|
+
// focus input again
|
|
1155
|
+
_a.sent();
|
|
1156
|
+
expect(pageInput).toHaveFocus();
|
|
1157
|
+
return [4 /*yield*/, user.keyboard('{PageUp}')];
|
|
1158
|
+
case 7:
|
|
1159
|
+
_a.sent();
|
|
1160
|
+
expect(pageInput).not.toHaveDisplayValue('1');
|
|
1161
|
+
expect(pageInput).toHaveDisplayValue('2');
|
|
1162
|
+
// remove focus
|
|
1163
|
+
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
1164
|
+
case 8:
|
|
1165
|
+
// remove focus
|
|
1166
|
+
_a.sent();
|
|
1167
|
+
expect(pageInput).not.toHaveFocus();
|
|
1168
|
+
return [4 /*yield*/, user.keyboard('{PageUp}')];
|
|
1169
|
+
case 9:
|
|
1170
|
+
_a.sent();
|
|
1171
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1172
|
+
return [2 /*return*/];
|
|
1173
|
+
}
|
|
1174
|
+
});
|
|
1175
|
+
}); });
|
|
1176
|
+
});
|
|
1177
|
+
test('ArrowUp and ArrowDown', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1178
|
+
var onClose, scrollByFn, user, pageInput;
|
|
1179
|
+
return __generator(this, function (_a) {
|
|
1180
|
+
switch (_a.label) {
|
|
1181
|
+
case 0:
|
|
1182
|
+
onClose = jest.fn();
|
|
1183
|
+
scrollByFn = jest.fn();
|
|
1184
|
+
window.HTMLElement.prototype.scrollBy = scrollByFn;
|
|
1185
|
+
user = setup(React.createElement(PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
|
|
1186
|
+
setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
|
|
1187
|
+
}).user;
|
|
1188
|
+
return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
|
|
1189
|
+
case 1:
|
|
1190
|
+
_a.sent();
|
|
1191
|
+
// eslint-disable-next-line testing-library/no-node-access
|
|
1192
|
+
expect(document.querySelector('canvas')).toBeVisible();
|
|
1193
|
+
expect(screen.getByText(/page/i)).toBeVisible();
|
|
1194
|
+
pageInput = screen.getByRole('textbox', { name: /current page/i });
|
|
1195
|
+
expect(pageInput).toHaveDisplayValue('1');
|
|
1196
|
+
return [4 /*yield*/, user.click(pageInput)];
|
|
1197
|
+
case 2:
|
|
1198
|
+
_a.sent();
|
|
1199
|
+
expect(pageInput).toHaveFocus();
|
|
1200
|
+
return [4 /*yield*/, user.keyboard('{ArrowDown}')];
|
|
1201
|
+
case 3:
|
|
1202
|
+
_a.sent();
|
|
1203
|
+
expect(scrollByFn).not.toHaveBeenCalled();
|
|
1204
|
+
// remove focus
|
|
1205
|
+
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
1206
|
+
case 4:
|
|
1207
|
+
// remove focus
|
|
1208
|
+
_a.sent();
|
|
1209
|
+
expect(pageInput).not.toHaveFocus();
|
|
1210
|
+
return [4 /*yield*/, user.keyboard('{ArrowDown}')];
|
|
1211
|
+
case 5:
|
|
1212
|
+
_a.sent();
|
|
1213
|
+
expect(scrollByFn).toHaveBeenCalledTimes(1);
|
|
1214
|
+
expect(scrollByFn).toHaveBeenCalledWith(0, 40);
|
|
1215
|
+
return [4 /*yield*/, user.click(pageInput)];
|
|
1216
|
+
case 6:
|
|
1217
|
+
_a.sent();
|
|
1218
|
+
expect(pageInput).toHaveFocus();
|
|
1219
|
+
return [4 /*yield*/, user.keyboard('{ArrowUp}')];
|
|
1220
|
+
case 7:
|
|
1221
|
+
_a.sent();
|
|
1222
|
+
expect(scrollByFn).toHaveBeenCalledTimes(1);
|
|
1223
|
+
// remove focus
|
|
1224
|
+
return [4 /*yield*/, user.keyboard('{Escape}')];
|
|
1225
|
+
case 8:
|
|
1226
|
+
// remove focus
|
|
1227
|
+
_a.sent();
|
|
1228
|
+
expect(pageInput).not.toHaveFocus();
|
|
1229
|
+
return [4 /*yield*/, user.keyboard('{ArrowUp}')];
|
|
1230
|
+
case 9:
|
|
1231
|
+
_a.sent();
|
|
1232
|
+
expect(scrollByFn).toHaveBeenCalledTimes(2);
|
|
1233
|
+
expect(scrollByFn).toHaveBeenCalledWith(0, -40);
|
|
967
1234
|
return [2 /*return*/];
|
|
968
1235
|
}
|
|
969
1236
|
});
|