@zextras/carbonio-ui-preview 0.2.1 → 0.2.3

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.
@@ -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(/loading pdf/i)];
64
+ return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
65
65
  case 1:
66
66
  _a.sent();
67
- expect(screen.queryByText(/loading pdf/i)).not.toBeInTheDocument();
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(/loading pdf/i)).not.toBeInTheDocument();
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(/loading pdf/i)];
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 PDF file/i)];
101
+ return [4 /*yield*/, screen.findByText(/Failed to load document preview./i)];
102
102
  case 2:
103
103
  _a.sent();
104
- expect(screen.queryByText(/loading pdf/i)).not.toBeInTheDocument();
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(/loading pdf/i)];
151
+ return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
152
152
  case 1:
153
153
  _a.sent();
154
- expect(screen.queryByText(/loading pdf/i)).not.toBeInTheDocument();
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(/loading pdf/i)];
170
+ return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
171
171
  case 1:
172
172
  _a.sent();
173
- expect(screen.queryByText(/loading pdf/i)).not.toBeInTheDocument();
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(/loading pdf/i)];
198
+ return [4 /*yield*/, screen.findByText(/Loading document preview…/i)];
199
199
  case 1:
200
200
  _a.sent();
201
- expect(screen.queryByText(/loading pdf/i)).not.toBeInTheDocument();
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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(/loading pdf/i)];
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, ref;
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
- ref = React.createRef();
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(/loading pdf/i)];
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, ref, user, pageInput;
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
- ref = React.createRef();
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(/loading pdf/i)];
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, ref, user, pageInput;
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
- ref = React.createRef();
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(/loading pdf/i)];
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, ref, scrollIntoViewFn, user, pageInput;
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, ref: ref }), {
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(/loading pdf/i)];
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, ref, scrollIntoViewFn, user, pageInput;
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, ref: ref }), {
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(/loading pdf/i)];
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, ref, pageInput, page2Element;
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
- ref = React.createRef();
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(/loading pdf/i)];
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, ref, user, pageInput, page2Element;
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
- ref = React.createRef();
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(/loading pdf/i)];
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 makes user exit from the preview, even when focus is on input', function () { return __awaiter(void 0, void 0, void 0, function () {
939
- var onClose, ref, user, pageInput;
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
- ref = React.createRef();
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(/loading pdf/i)];
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
  });