@zextras/carbonio-ui-preview 1.2.0 → 1.2.1

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.
Files changed (183) hide show
  1. package/lib/constants/index.js.map +1 -0
  2. package/lib/index.js.map +1 -0
  3. package/lib/preview/FocusWithin.js.map +1 -0
  4. package/lib/preview/Header.js.map +1 -0
  5. package/lib/preview/ImagePreview.js.map +1 -0
  6. package/lib/preview/Navigator.js.map +1 -0
  7. package/lib/preview/PageController.js.map +1 -0
  8. package/lib/preview/PdfPreview.js.map +1 -0
  9. package/lib/preview/PreviewCriteriaAlternativeContent.js.map +1 -0
  10. package/lib/preview/PreviewManager.js.map +1 -0
  11. package/lib/preview/PreviewWrapper.js.map +1 -0
  12. package/lib/{src/preview → preview}/StyledComponents.d.ts +0 -1
  13. package/lib/preview/StyledComponents.js.map +1 -0
  14. package/lib/preview/ZoomController.js.map +1 -0
  15. package/lib/preview/usePageScrollController.js.map +1 -0
  16. package/lib/preview/useZoom.js.map +1 -0
  17. package/lib/{src/utils → utils}/type-utils.js.map +1 -1
  18. package/lib/utils/utils.js.map +1 -0
  19. package/lib-esm/constants/index.js.map +1 -0
  20. package/lib-esm/index.js.map +1 -0
  21. package/lib-esm/preview/FocusWithin.js.map +1 -0
  22. package/lib-esm/preview/Header.js.map +1 -0
  23. package/lib-esm/preview/ImagePreview.js.map +1 -0
  24. package/lib-esm/preview/Navigator.js.map +1 -0
  25. package/lib-esm/preview/PageController.js.map +1 -0
  26. package/lib-esm/preview/PdfPreview.js.map +1 -0
  27. package/lib-esm/preview/PreviewCriteriaAlternativeContent.js.map +1 -0
  28. package/lib-esm/preview/PreviewManager.js.map +1 -0
  29. package/lib-esm/preview/PreviewWrapper.js.map +1 -0
  30. package/lib-esm/{src/preview → preview}/StyledComponents.d.ts +0 -1
  31. package/lib-esm/preview/StyledComponents.js.map +1 -0
  32. package/lib-esm/preview/ZoomController.js.map +1 -0
  33. package/lib-esm/preview/usePageScrollController.js.map +1 -0
  34. package/lib-esm/preview/useZoom.js.map +1 -0
  35. package/lib-esm/{src/utils → utils}/type-utils.js.map +1 -1
  36. package/lib-esm/utils/utils.js.map +1 -0
  37. package/package.json +4 -3
  38. package/lib/jest-setup.d.ts +0 -2
  39. package/lib/jest-setup.js +0 -78
  40. package/lib/jest-setup.js.map +0 -1
  41. package/lib/src/constants/index.js.map +0 -1
  42. package/lib/src/constants/test.d.ts +0 -16
  43. package/lib/src/constants/test.js +0 -27
  44. package/lib/src/constants/test.js.map +0 -1
  45. package/lib/src/index.js.map +0 -1
  46. package/lib/src/preview/FocusWithin.js.map +0 -1
  47. package/lib/src/preview/Header.js.map +0 -1
  48. package/lib/src/preview/Header.test.d.ts +0 -1
  49. package/lib/src/preview/Header.test.js +0 -143
  50. package/lib/src/preview/Header.test.js.map +0 -1
  51. package/lib/src/preview/ImagePreview.js.map +0 -1
  52. package/lib/src/preview/ImagePreview.test.d.ts +0 -1
  53. package/lib/src/preview/ImagePreview.test.js +0 -162
  54. package/lib/src/preview/ImagePreview.test.js.map +0 -1
  55. package/lib/src/preview/Navigator.js.map +0 -1
  56. package/lib/src/preview/PageController.js.map +0 -1
  57. package/lib/src/preview/PdfPreview.js.map +0 -1
  58. package/lib/src/preview/PdfPreview.test.d.ts +0 -1
  59. package/lib/src/preview/PdfPreview.test.js +0 -1298
  60. package/lib/src/preview/PdfPreview.test.js.map +0 -1
  61. package/lib/src/preview/PreviewCriteriaAlternativeContent.js.map +0 -1
  62. package/lib/src/preview/PreviewManager.js.map +0 -1
  63. package/lib/src/preview/PreviewManager.test.d.ts +0 -1
  64. package/lib/src/preview/PreviewManager.test.js +0 -254
  65. package/lib/src/preview/PreviewManager.test.js.map +0 -1
  66. package/lib/src/preview/PreviewWrapper.js.map +0 -1
  67. package/lib/src/preview/PreviewWrapper.test.d.ts +0 -1
  68. package/lib/src/preview/PreviewWrapper.test.js +0 -86
  69. package/lib/src/preview/PreviewWrapper.test.js.map +0 -1
  70. package/lib/src/preview/StyledComponents.js.map +0 -1
  71. package/lib/src/preview/ZoomController.js.map +0 -1
  72. package/lib/src/preview/usePageScrollController.js.map +0 -1
  73. package/lib/src/preview/useZoom.js.map +0 -1
  74. package/lib/src/utils/test-utils.d.ts +0 -21
  75. package/lib/src/utils/test-utils.js +0 -148
  76. package/lib/src/utils/test-utils.js.map +0 -1
  77. package/lib/src/utils/utils.js.map +0 -1
  78. package/lib-esm/jest-setup.d.ts +0 -2
  79. package/lib-esm/jest-setup.js +0 -73
  80. package/lib-esm/jest-setup.js.map +0 -1
  81. package/lib-esm/src/constants/index.js.map +0 -1
  82. package/lib-esm/src/constants/test.d.ts +0 -16
  83. package/lib-esm/src/constants/test.js +0 -24
  84. package/lib-esm/src/constants/test.js.map +0 -1
  85. package/lib-esm/src/index.js.map +0 -1
  86. package/lib-esm/src/preview/FocusWithin.js.map +0 -1
  87. package/lib-esm/src/preview/Header.js.map +0 -1
  88. package/lib-esm/src/preview/Header.test.d.ts +0 -1
  89. package/lib-esm/src/preview/Header.test.js +0 -138
  90. package/lib-esm/src/preview/Header.test.js.map +0 -1
  91. package/lib-esm/src/preview/ImagePreview.js.map +0 -1
  92. package/lib-esm/src/preview/ImagePreview.test.d.ts +0 -1
  93. package/lib-esm/src/preview/ImagePreview.test.js +0 -157
  94. package/lib-esm/src/preview/ImagePreview.test.js.map +0 -1
  95. package/lib-esm/src/preview/Navigator.js.map +0 -1
  96. package/lib-esm/src/preview/PageController.js.map +0 -1
  97. package/lib-esm/src/preview/PdfPreview.js.map +0 -1
  98. package/lib-esm/src/preview/PdfPreview.test.d.ts +0 -1
  99. package/lib-esm/src/preview/PdfPreview.test.js +0 -1293
  100. package/lib-esm/src/preview/PdfPreview.test.js.map +0 -1
  101. package/lib-esm/src/preview/PreviewCriteriaAlternativeContent.js.map +0 -1
  102. package/lib-esm/src/preview/PreviewManager.js.map +0 -1
  103. package/lib-esm/src/preview/PreviewManager.test.d.ts +0 -1
  104. package/lib-esm/src/preview/PreviewManager.test.js +0 -229
  105. package/lib-esm/src/preview/PreviewManager.test.js.map +0 -1
  106. package/lib-esm/src/preview/PreviewWrapper.js.map +0 -1
  107. package/lib-esm/src/preview/PreviewWrapper.test.d.ts +0 -1
  108. package/lib-esm/src/preview/PreviewWrapper.test.js +0 -81
  109. package/lib-esm/src/preview/PreviewWrapper.test.js.map +0 -1
  110. package/lib-esm/src/preview/StyledComponents.js.map +0 -1
  111. package/lib-esm/src/preview/ZoomController.js.map +0 -1
  112. package/lib-esm/src/preview/usePageScrollController.js.map +0 -1
  113. package/lib-esm/src/preview/useZoom.js.map +0 -1
  114. package/lib-esm/src/utils/test-utils.d.ts +0 -21
  115. package/lib-esm/src/utils/test-utils.js +0 -116
  116. package/lib-esm/src/utils/test-utils.js.map +0 -1
  117. package/lib-esm/src/utils/utils.js.map +0 -1
  118. /package/lib/{src/constants → constants}/index.d.ts +0 -0
  119. /package/lib/{src/constants → constants}/index.js +0 -0
  120. /package/lib/{src/index.d.ts → index.d.ts} +0 -0
  121. /package/lib/{src/index.js → index.js} +0 -0
  122. /package/lib/{src/preview → preview}/FocusWithin.d.ts +0 -0
  123. /package/lib/{src/preview → preview}/FocusWithin.js +0 -0
  124. /package/lib/{src/preview → preview}/Header.d.ts +0 -0
  125. /package/lib/{src/preview → preview}/Header.js +0 -0
  126. /package/lib/{src/preview → preview}/ImagePreview.d.ts +0 -0
  127. /package/lib/{src/preview → preview}/ImagePreview.js +0 -0
  128. /package/lib/{src/preview → preview}/Navigator.d.ts +0 -0
  129. /package/lib/{src/preview → preview}/Navigator.js +0 -0
  130. /package/lib/{src/preview → preview}/PageController.d.ts +0 -0
  131. /package/lib/{src/preview → preview}/PageController.js +0 -0
  132. /package/lib/{src/preview → preview}/PdfPreview.d.ts +0 -0
  133. /package/lib/{src/preview → preview}/PdfPreview.js +0 -0
  134. /package/lib/{src/preview → preview}/PreviewCriteriaAlternativeContent.d.ts +0 -0
  135. /package/lib/{src/preview → preview}/PreviewCriteriaAlternativeContent.js +0 -0
  136. /package/lib/{src/preview → preview}/PreviewManager.d.ts +0 -0
  137. /package/lib/{src/preview → preview}/PreviewManager.js +0 -0
  138. /package/lib/{src/preview → preview}/PreviewWrapper.d.ts +0 -0
  139. /package/lib/{src/preview → preview}/PreviewWrapper.js +0 -0
  140. /package/lib/{src/preview → preview}/StyledComponents.js +0 -0
  141. /package/lib/{src/preview → preview}/ZoomController.d.ts +0 -0
  142. /package/lib/{src/preview → preview}/ZoomController.js +0 -0
  143. /package/lib/{src/preview → preview}/usePageScrollController.d.ts +0 -0
  144. /package/lib/{src/preview → preview}/usePageScrollController.js +0 -0
  145. /package/lib/{src/preview → preview}/useZoom.d.ts +0 -0
  146. /package/lib/{src/preview → preview}/useZoom.js +0 -0
  147. /package/lib/{src/utils → utils}/type-utils.d.ts +0 -0
  148. /package/lib/{src/utils → utils}/type-utils.js +0 -0
  149. /package/lib/{src/utils → utils}/utils.d.ts +0 -0
  150. /package/lib/{src/utils → utils}/utils.js +0 -0
  151. /package/lib-esm/{src/constants → constants}/index.d.ts +0 -0
  152. /package/lib-esm/{src/constants → constants}/index.js +0 -0
  153. /package/lib-esm/{src/index.d.ts → index.d.ts} +0 -0
  154. /package/lib-esm/{src/index.js → index.js} +0 -0
  155. /package/lib-esm/{src/preview → preview}/FocusWithin.d.ts +0 -0
  156. /package/lib-esm/{src/preview → preview}/FocusWithin.js +0 -0
  157. /package/lib-esm/{src/preview → preview}/Header.d.ts +0 -0
  158. /package/lib-esm/{src/preview → preview}/Header.js +0 -0
  159. /package/lib-esm/{src/preview → preview}/ImagePreview.d.ts +0 -0
  160. /package/lib-esm/{src/preview → preview}/ImagePreview.js +0 -0
  161. /package/lib-esm/{src/preview → preview}/Navigator.d.ts +0 -0
  162. /package/lib-esm/{src/preview → preview}/Navigator.js +0 -0
  163. /package/lib-esm/{src/preview → preview}/PageController.d.ts +0 -0
  164. /package/lib-esm/{src/preview → preview}/PageController.js +0 -0
  165. /package/lib-esm/{src/preview → preview}/PdfPreview.d.ts +0 -0
  166. /package/lib-esm/{src/preview → preview}/PdfPreview.js +0 -0
  167. /package/lib-esm/{src/preview → preview}/PreviewCriteriaAlternativeContent.d.ts +0 -0
  168. /package/lib-esm/{src/preview → preview}/PreviewCriteriaAlternativeContent.js +0 -0
  169. /package/lib-esm/{src/preview → preview}/PreviewManager.d.ts +0 -0
  170. /package/lib-esm/{src/preview → preview}/PreviewManager.js +0 -0
  171. /package/lib-esm/{src/preview → preview}/PreviewWrapper.d.ts +0 -0
  172. /package/lib-esm/{src/preview → preview}/PreviewWrapper.js +0 -0
  173. /package/lib-esm/{src/preview → preview}/StyledComponents.js +0 -0
  174. /package/lib-esm/{src/preview → preview}/ZoomController.d.ts +0 -0
  175. /package/lib-esm/{src/preview → preview}/ZoomController.js +0 -0
  176. /package/lib-esm/{src/preview → preview}/usePageScrollController.d.ts +0 -0
  177. /package/lib-esm/{src/preview → preview}/usePageScrollController.js +0 -0
  178. /package/lib-esm/{src/preview → preview}/useZoom.d.ts +0 -0
  179. /package/lib-esm/{src/preview → preview}/useZoom.js +0 -0
  180. /package/lib-esm/{src/utils → utils}/type-utils.d.ts +0 -0
  181. /package/lib-esm/{src/utils → utils}/type-utils.js +0 -0
  182. /package/lib-esm/{src/utils → utils}/utils.d.ts +0 -0
  183. /package/lib-esm/{src/utils → utils}/utils.js +0 -0
@@ -1,1298 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- /*
43
- * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>
44
- *
45
- * SPDX-License-Identifier: AGPL-3.0-only
46
- */
47
- var react_1 = __importDefault(require("react"));
48
- var react_2 = require("@testing-library/react");
49
- var user_event_1 = __importDefault(require("@testing-library/user-event"));
50
- var jest_fetch_mock_1 = __importDefault(require("jest-fetch-mock"));
51
- var PdfPreview_1 = require("./PdfPreview");
52
- var constants_1 = require("../constants");
53
- var test_1 = require("../constants/test");
54
- var test_utils_1 = require("test-utils");
55
- var pdfFile = (0, test_utils_1.loadPDF)('./__mocks__/_pdf.pdf');
56
- var zoomInIcon = 'icon: Plus';
57
- var zoomOutIcon = 'icon: Minus';
58
- var zoomFitToWidthIcon = 'icon: MaximizeOutline';
59
- var zoomResetWidthIcon = 'icon: MinimizeOutline';
60
- jest.useRealTimers();
61
- describe('Pdf Preview', function () {
62
- test('Render a pdf document', function () { return __awaiter(void 0, void 0, void 0, function () {
63
- var onClose, pageElement;
64
- return __generator(this, function (_a) {
65
- switch (_a.label) {
66
- case 0:
67
- onClose = jest.fn();
68
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
69
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
70
- });
71
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
72
- case 1:
73
- _a.sent();
74
- expect(react_2.screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
75
- expect(react_2.screen.getByTestId(test_1.SELECTORS.previewContainer)).toBeInTheDocument();
76
- pageElement = document.querySelector(test_1.SELECTORS.pdfPage(1));
77
- expect(pageElement).toBeDefined();
78
- expect(pageElement).not.toBeNull();
79
- expect(pageElement).toBeInTheDocument();
80
- return [2 /*return*/];
81
- }
82
- });
83
- }); });
84
- test('Render a pdf document from File', function () { return __awaiter(void 0, void 0, void 0, function () {
85
- var onClose, loadingElement, pageElement;
86
- return __generator(this, function (_a) {
87
- switch (_a.label) {
88
- case 0:
89
- onClose = jest.fn();
90
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.file, onClose: onClose }), {
91
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
92
- });
93
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
94
- case 1:
95
- loadingElement = _a.sent();
96
- expect(loadingElement).toBeInTheDocument();
97
- return [4 /*yield*/, (0, react_2.waitForElementToBeRemoved)(loadingElement)];
98
- case 2:
99
- _a.sent();
100
- expect(react_2.screen.getByTestId(test_1.SELECTORS.previewContainer)).toBeInTheDocument();
101
- pageElement = document.querySelector(test_1.SELECTORS.pdfPage(1));
102
- expect(pageElement).toBeDefined();
103
- expect(pageElement).not.toBeNull();
104
- expect(pageElement).toBeInTheDocument();
105
- return [2 /*return*/];
106
- }
107
- });
108
- }); });
109
- test('Render a pdf document from Blob', function () { return __awaiter(void 0, void 0, void 0, function () {
110
- var onClose, loadingElement, pageElement;
111
- return __generator(this, function (_a) {
112
- switch (_a.label) {
113
- case 0:
114
- onClose = jest.fn();
115
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.blob, onClose: onClose }), {
116
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
117
- });
118
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
119
- case 1:
120
- loadingElement = _a.sent();
121
- expect(loadingElement).toBeInTheDocument();
122
- return [4 /*yield*/, (0, react_2.waitForElementToBeRemoved)(loadingElement)];
123
- case 2:
124
- _a.sent();
125
- expect(react_2.screen.getByTestId(test_1.SELECTORS.previewContainer)).toBeInTheDocument();
126
- pageElement = document.querySelector(test_1.SELECTORS.pdfPage(1));
127
- expect(pageElement).toBeDefined();
128
- expect(pageElement).not.toBeNull();
129
- expect(pageElement).toBeInTheDocument();
130
- return [2 /*return*/];
131
- }
132
- });
133
- }); });
134
- test('If show is false does not render the pdf', function () { return __awaiter(void 0, void 0, void 0, function () {
135
- var onClose;
136
- return __generator(this, function (_a) {
137
- onClose = jest.fn();
138
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: false, src: pdfFile.dataURI, onClose: onClose }), {
139
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
140
- });
141
- expect(react_2.screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
142
- expect(react_2.screen.queryByTestId(test_1.SELECTORS.previewContainer)).not.toBeInTheDocument();
143
- return [2 /*return*/];
144
- });
145
- }); });
146
- test('If pdf is not valid render an error message', function () { return __awaiter(void 0, void 0, void 0, function () {
147
- var onClose;
148
- return __generator(this, function (_a) {
149
- switch (_a.label) {
150
- case 0:
151
- jest_fetch_mock_1.default.mockReject(function () { return Promise.reject(new Error('API is down')); });
152
- onClose = jest.fn();
153
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: "invalid-pdf.pdf", onClose: onClose }), {
154
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
155
- });
156
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
157
- case 1:
158
- _a.sent();
159
- return [4 /*yield*/, react_2.screen.findByText(/Failed to load document preview./i)];
160
- case 2:
161
- _a.sent();
162
- expect(react_2.screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
163
- expect(react_2.screen.getByTestId(test_1.SELECTORS.previewContainer)).toBeInTheDocument();
164
- return [2 /*return*/];
165
- }
166
- });
167
- }); });
168
- test('If fallback is requested, does not render the pdf but the fallback instead', function () { return __awaiter(void 0, void 0, void 0, function () {
169
- var onClose;
170
- return __generator(this, function (_a) {
171
- onClose = jest.fn();
172
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, useFallback: true, openSrc: "open-src" }), {
173
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
174
- });
175
- expect(react_2.screen.getByText(/This item cannot be displayed/i)).toBeVisible();
176
- expect(react_2.screen.getByText(/The file size exceeds the limit allowed and cannot be displayed/i)).toBeVisible();
177
- expect(react_2.screen.getByText(/Please, download it or open it in a separate tab/i)).toBeVisible();
178
- expect(react_2.screen.getByRole('button', { name: /download/i })).toBeVisible();
179
- expect(react_2.screen.getByRole('button', { name: /open/i })).toBeVisible();
180
- return [2 /*return*/];
181
- });
182
- }); });
183
- test('Render a custom fallback', function () { return __awaiter(void 0, void 0, void 0, function () {
184
- var onClose, CustomContent;
185
- return __generator(this, function (_a) {
186
- onClose = jest.fn();
187
- CustomContent = react_1.default.createElement("div", null, "Custom content");
188
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, useFallback: true, customContent: CustomContent, openSrc: "open-src" }), {
189
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
190
- });
191
- expect(react_2.screen.queryByText(/This item cannot be displayed/i)).not.toBeInTheDocument();
192
- expect(react_2.screen.queryByText(/The file size exceeds the limit allowed and cannot be displayed/i)).not.toBeInTheDocument();
193
- expect(react_2.screen.queryByText(/Please, download it or open it in a separate tab/i)).not.toBeInTheDocument();
194
- expect(react_2.screen.queryByRole('button', { name: /download/i })).not.toBeInTheDocument();
195
- expect(react_2.screen.queryByRole('button', { name: /open/i })).not.toBeInTheDocument();
196
- expect(react_2.screen.getByText(/custom content/i)).toBeVisible();
197
- return [2 /*return*/];
198
- });
199
- }); });
200
- test('Additional data are visible', function () { return __awaiter(void 0, void 0, void 0, function () {
201
- var onClose;
202
- return __generator(this, function (_a) {
203
- switch (_a.label) {
204
- case 0:
205
- onClose = jest.fn();
206
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, filename: "file name", extension: "pdf", size: "18KB" }), {
207
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
208
- });
209
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
210
- case 1:
211
- _a.sent();
212
- expect(react_2.screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
213
- expect(react_2.screen.getByText(/file name/i)).toBeVisible();
214
- expect(react_2.screen.getByText(/pdf.*18KB/i)).toBeVisible();
215
- return [2 /*return*/];
216
- }
217
- });
218
- }); });
219
- test('Escape key close the preview', function () { return __awaiter(void 0, void 0, void 0, function () {
220
- var onClose, user;
221
- return __generator(this, function (_a) {
222
- switch (_a.label) {
223
- case 0:
224
- onClose = jest.fn();
225
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
226
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
227
- }).user;
228
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
229
- case 1:
230
- _a.sent();
231
- expect(react_2.screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
232
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
233
- case 2:
234
- _a.sent();
235
- expect(onClose).toHaveBeenCalled();
236
- return [2 /*return*/];
237
- }
238
- });
239
- }); });
240
- test('Close action calls onClose if no click action is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
241
- var onClose, closeAction, user, closeActionElement;
242
- return __generator(this, function (_a) {
243
- switch (_a.label) {
244
- case 0:
245
- onClose = jest.fn(function (e) {
246
- e.preventDefault();
247
- });
248
- closeAction = {
249
- id: 'closeAction',
250
- icon: 'Activity',
251
- tooltipLabel: 'Custom close action'
252
- };
253
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, closeAction: closeAction }), {
254
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
255
- }).user;
256
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
257
- case 1:
258
- _a.sent();
259
- expect(react_2.screen.queryByText(/Loading document preview…/i)).not.toBeInTheDocument();
260
- closeActionElement = react_2.screen.getByTestId('icon: Activity');
261
- expect(closeActionElement).toBeVisible();
262
- return [4 /*yield*/, user.hover(closeActionElement)];
263
- case 2:
264
- _a.sent();
265
- return [4 /*yield*/, react_2.screen.findByText(/custom close action/i)];
266
- case 3:
267
- _a.sent();
268
- return [4 /*yield*/, user.click(closeActionElement)];
269
- case 4:
270
- _a.sent();
271
- expect(onClose).toHaveBeenCalledTimes(1);
272
- return [2 /*return*/];
273
- }
274
- });
275
- }); });
276
- test('Click on actions calls onClose if event is not stopped by the action itself, instead if is disabled it is not propagated anyway ', function () { return __awaiter(void 0, void 0, void 0, function () {
277
- var onClose, actions, closeAction, user, action1Item, action2Item, closeActionItem;
278
- return __generator(this, function (_a) {
279
- switch (_a.label) {
280
- case 0:
281
- onClose = jest.fn();
282
- actions = [
283
- {
284
- id: 'action1',
285
- icon: 'Activity',
286
- onClick: jest.fn()
287
- },
288
- {
289
- id: 'action2',
290
- icon: 'People',
291
- onClick: jest.fn(function (ev) {
292
- ev.preventDefault();
293
- }),
294
- disabled: true
295
- }
296
- ];
297
- closeAction = {
298
- id: 'closeAction',
299
- icon: 'Close',
300
- onClick: jest.fn(function (ev) {
301
- ev.preventDefault();
302
- })
303
- };
304
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, actions: actions, filename: "pdf name", closeAction: closeAction }), {
305
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
306
- }).user;
307
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
308
- case 1:
309
- _a.sent();
310
- return [4 /*yield*/, (0, react_2.waitFor)(function () {
311
- // eslint-disable-next-line testing-library/no-node-access
312
- return expect(document.querySelector(test_1.SELECTORS.pdfPage(1))).toBeInTheDocument();
313
- })];
314
- case 2:
315
- _a.sent();
316
- action1Item = react_2.screen.getByTestId('icon: Activity');
317
- action2Item = react_2.screen.getByTestId('icon: People');
318
- closeActionItem = react_2.screen.getByTestId('icon: Close');
319
- expect(action1Item).toBeVisible();
320
- expect(action2Item).toBeVisible();
321
- // eslint-disable-next-line testing-library/no-node-access
322
- expect(action2Item.parentElement).toHaveAttribute('disabled');
323
- expect(closeActionItem).toBeVisible();
324
- // click on action 1 is propagated and calls onClose
325
- return [4 /*yield*/, user.click(action1Item)];
326
- case 3:
327
- // click on action 1 is propagated and calls onClose
328
- _a.sent();
329
- expect(actions[0].onClick).toHaveBeenCalled();
330
- expect(onClose).toHaveBeenCalledTimes(1);
331
- // click on action 2 skips the handler of the action since it is disabled and does not call onClose
332
- return [4 /*yield*/, user.click(action2Item)];
333
- case 4:
334
- // click on action 2 skips the handler of the action since it is disabled and does not call onClose
335
- _a.sent();
336
- expect(actions[1].onClick).not.toHaveBeenCalled();
337
- expect(onClose).toHaveBeenCalledTimes(1);
338
- // click on close action is stopped by the action, event is not propagated and onClose is not called
339
- return [4 /*yield*/, user.click(closeActionItem)];
340
- case 5:
341
- // click on close action is stopped by the action, event is not propagated and onClose is not called
342
- _a.sent();
343
- // FIXME
344
- // expect(closeAction.onClick).toHaveBeenCalled();
345
- expect(onClose).toHaveBeenCalledTimes(3);
346
- // click on filename is equivalent to a click on the overlay, so onClose is called
347
- return [4 /*yield*/, user.click(react_2.screen.getByText(/pdf name/i))];
348
- case 6:
349
- // click on filename is equivalent to a click on the overlay, so onClose is called
350
- _a.sent();
351
- expect(onClose).toHaveBeenCalledTimes(4);
352
- return [2 /*return*/];
353
- }
354
- });
355
- }); });
356
- test('Zoom starts at lowest step', function () { return __awaiter(void 0, void 0, void 0, function () {
357
- var onClose, canvas;
358
- return __generator(this, function (_a) {
359
- switch (_a.label) {
360
- case 0:
361
- onClose = jest.fn();
362
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
363
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
364
- });
365
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
366
- case 1:
367
- _a.sent();
368
- canvas = document.querySelector('canvas');
369
- expect(canvas).toBeVisible();
370
- expect(canvas).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[0]));
371
- return [2 /*return*/];
372
- }
373
- });
374
- }); });
375
- test('Decrease zoom is disabled when zoom is at lowest point', function () { return __awaiter(void 0, void 0, void 0, function () {
376
- var onClose, user, canvas;
377
- return __generator(this, function (_a) {
378
- switch (_a.label) {
379
- case 0:
380
- onClose = jest.fn();
381
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
382
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
383
- }).user;
384
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
385
- case 1:
386
- _a.sent();
387
- canvas = document.querySelector('canvas');
388
- expect(canvas).toBeVisible();
389
- expect(canvas).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[0]));
390
- expect(react_2.screen.getByTestId(zoomOutIcon)).toBeVisible();
391
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
392
- expect(react_2.screen.getByTestId(zoomOutIcon).parentElement).toHaveAttribute('disabled', '');
393
- expect(react_2.screen.getByTestId(zoomInIcon)).toBeVisible();
394
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomInIcon))];
395
- case 2:
396
- _a.sent();
397
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
398
- expect(react_2.screen.getByTestId(zoomOutIcon).parentElement).not.toHaveAttribute('disabled', '');
399
- return [4 /*yield*/, user_event_1.default.click(react_2.screen.getByTestId(zoomOutIcon))];
400
- case 3:
401
- _a.sent();
402
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
403
- expect(react_2.screen.getByTestId(zoomOutIcon).parentElement).toHaveAttribute('disabled', '');
404
- return [2 /*return*/];
405
- }
406
- });
407
- }); });
408
- test('Increase and decrease zoom change zoom by 1 step per time', function () { return __awaiter(void 0, void 0, void 0, function () {
409
- var onClose, user, step, step;
410
- return __generator(this, function (_a) {
411
- switch (_a.label) {
412
- case 0:
413
- onClose = jest.fn();
414
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
415
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
416
- }).user;
417
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
418
- case 1:
419
- _a.sent();
420
- // eslint-disable-next-line testing-library/no-node-access
421
- expect(document.querySelector('canvas')).toBeVisible();
422
- expect(react_2.screen.getByTestId(zoomOutIcon)).toBeVisible();
423
- expect(react_2.screen.getByTestId(zoomInIcon)).toBeVisible();
424
- // eslint-disable-next-line testing-library/no-node-access
425
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[0]));
426
- step = 0;
427
- _a.label = 2;
428
- case 2:
429
- if (!(step < constants_1.ZOOM_STEPS.length - 1)) return [3 /*break*/, 5];
430
- // eslint-disable-next-line no-await-in-loop
431
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomInIcon))];
432
- case 3:
433
- // eslint-disable-next-line no-await-in-loop
434
- _a.sent();
435
- // eslint-disable-next-line testing-library/no-node-access
436
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[step + 1]));
437
- _a.label = 4;
438
- case 4:
439
- step += 1;
440
- return [3 /*break*/, 2];
441
- case 5:
442
- step = constants_1.ZOOM_STEPS.length - 1;
443
- _a.label = 6;
444
- case 6:
445
- if (!(step > 0)) return [3 /*break*/, 9];
446
- // eslint-disable-next-line no-await-in-loop
447
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomOutIcon))];
448
- case 7:
449
- // eslint-disable-next-line no-await-in-loop
450
- _a.sent();
451
- // eslint-disable-next-line testing-library/no-node-access
452
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[step - 1]));
453
- _a.label = 8;
454
- case 8:
455
- step -= 1;
456
- return [3 /*break*/, 6];
457
- case 9: return [2 /*return*/];
458
- }
459
- });
460
- }); });
461
- test('Increase zoom is disabled when zoom is at greatest point', function () { return __awaiter(void 0, void 0, void 0, function () {
462
- var onClose, user, step;
463
- return __generator(this, function (_a) {
464
- switch (_a.label) {
465
- case 0:
466
- onClose = jest.fn();
467
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
468
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
469
- }).user;
470
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
471
- case 1:
472
- _a.sent();
473
- // eslint-disable-next-line testing-library/no-node-access
474
- expect(document.querySelector('canvas')).toBeVisible();
475
- expect(react_2.screen.getByTestId(zoomInIcon)).toBeVisible();
476
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
477
- expect(react_2.screen.getByTestId(zoomInIcon).parentElement).not.toHaveAttribute('disabled', '');
478
- step = 0;
479
- _a.label = 2;
480
- case 2:
481
- if (!(step < constants_1.ZOOM_STEPS.length - 1)) return [3 /*break*/, 5];
482
- // eslint-disable-next-line no-await-in-loop
483
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomInIcon))];
484
- case 3:
485
- // eslint-disable-next-line no-await-in-loop
486
- _a.sent();
487
- _a.label = 4;
488
- case 4:
489
- step += 1;
490
- return [3 /*break*/, 2];
491
- case 5:
492
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
493
- expect(react_2.screen.getByTestId(zoomInIcon).parentElement).toHaveAttribute('disabled', '');
494
- return [2 /*return*/];
495
- }
496
- });
497
- }); });
498
- test('Fit to width zoom set width of pdf to width of the window', function () { return __awaiter(void 0, void 0, void 0, function () {
499
- var onClose, ref, mockPdfWidth, user;
500
- return __generator(this, function (_a) {
501
- switch (_a.label) {
502
- case 0:
503
- onClose = jest.fn();
504
- ref = react_1.default.createRef();
505
- mockPdfWidth = 1000;
506
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
507
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
508
- }).user;
509
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
510
- case 1:
511
- _a.sent();
512
- // eslint-disable-next-line testing-library/no-node-access
513
- expect(document.querySelector('canvas')).toBeVisible();
514
- expect(react_2.screen.getByTestId(zoomFitToWidthIcon)).toBeVisible();
515
- expect(react_2.screen.queryByTestId(zoomResetWidthIcon)).not.toBeInTheDocument();
516
- expect(ref.current).not.toBeNull();
517
- jest.spyOn(ref.current, 'clientWidth', 'get').mockReturnValue(mockPdfWidth);
518
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomFitToWidthIcon))];
519
- case 2:
520
- _a.sent();
521
- // eslint-disable-next-line testing-library/no-node-access
522
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(mockPdfWidth));
523
- expect(react_2.screen.getByTestId(zoomResetWidthIcon)).toBeVisible();
524
- expect(react_2.screen.queryByTestId(zoomFitToWidthIcon)).not.toBeInTheDocument();
525
- return [2 /*return*/];
526
- }
527
- });
528
- }); });
529
- test('Reset zoom set width to lowest step', function () { return __awaiter(void 0, void 0, void 0, function () {
530
- var onClose, ref, mockPdfWidth, user;
531
- return __generator(this, function (_a) {
532
- switch (_a.label) {
533
- case 0:
534
- onClose = jest.fn();
535
- ref = react_1.default.createRef();
536
- mockPdfWidth = 1000;
537
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
538
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
539
- }).user;
540
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
541
- case 1:
542
- _a.sent();
543
- // eslint-disable-next-line testing-library/no-node-access
544
- expect(document.querySelector('canvas')).toBeVisible();
545
- expect(react_2.screen.getByTestId(zoomFitToWidthIcon)).toBeVisible();
546
- expect(react_2.screen.queryByTestId(zoomResetWidthIcon)).not.toBeInTheDocument();
547
- expect(ref.current).not.toBeNull();
548
- jest.spyOn(ref.current, 'clientWidth', 'get').mockReturnValue(mockPdfWidth);
549
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomFitToWidthIcon))];
550
- case 2:
551
- _a.sent();
552
- // eslint-disable-next-line testing-library/no-node-access
553
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(mockPdfWidth));
554
- expect(react_2.screen.getByTestId(zoomResetWidthIcon)).toBeVisible();
555
- expect(react_2.screen.queryByTestId(zoomFitToWidthIcon)).not.toBeInTheDocument();
556
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomResetWidthIcon))];
557
- case 3:
558
- _a.sent();
559
- // eslint-disable-next-line testing-library/no-node-access
560
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[0]));
561
- expect(react_2.screen.getByTestId(zoomFitToWidthIcon)).toBeVisible();
562
- expect(react_2.screen.queryByTestId(zoomResetWidthIcon)).not.toBeInTheDocument();
563
- return [2 /*return*/];
564
- }
565
- });
566
- }); });
567
- test('When client width is lower than lowest zoom step and zoom is set to fit to width, decrease zoom is disabled and increase is enabled', function () { return __awaiter(void 0, void 0, void 0, function () {
568
- var onClose, ref, mockPdfWidth, user;
569
- return __generator(this, function (_a) {
570
- switch (_a.label) {
571
- case 0:
572
- onClose = jest.fn();
573
- ref = react_1.default.createRef();
574
- mockPdfWidth = constants_1.ZOOM_STEPS[0] - 1;
575
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
576
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
577
- }).user;
578
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
579
- case 1:
580
- _a.sent();
581
- // eslint-disable-next-line testing-library/no-node-access
582
- expect(document.querySelector('canvas')).toBeVisible();
583
- expect(react_2.screen.getByTestId(zoomFitToWidthIcon)).toBeVisible();
584
- jest.spyOn(ref.current, 'clientWidth', 'get').mockReturnValue(mockPdfWidth);
585
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomFitToWidthIcon))];
586
- case 2:
587
- _a.sent();
588
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
589
- expect(react_2.screen.getByTestId(zoomOutIcon).parentElement).toHaveAttribute('disabled', '');
590
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
591
- expect(react_2.screen.getByTestId(zoomInIcon).parentElement).not.toHaveAttribute('disabled', '');
592
- return [2 /*return*/];
593
- }
594
- });
595
- }); });
596
- test('When client width is greater than greatest zoom step and zoom is set to fit to width, decrease zoom is enabled and increase is disabled', function () { return __awaiter(void 0, void 0, void 0, function () {
597
- var onClose, ref, mockPdfWidth, user;
598
- return __generator(this, function (_a) {
599
- switch (_a.label) {
600
- case 0:
601
- onClose = jest.fn();
602
- ref = react_1.default.createRef();
603
- mockPdfWidth = constants_1.ZOOM_STEPS[constants_1.ZOOM_STEPS.length - 1] + 1;
604
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
605
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
606
- }).user;
607
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
608
- case 1:
609
- _a.sent();
610
- // eslint-disable-next-line testing-library/no-node-access
611
- expect(document.querySelector('canvas')).toBeVisible();
612
- expect(react_2.screen.getByTestId(zoomFitToWidthIcon)).toBeVisible();
613
- jest.spyOn(ref.current, 'clientWidth', 'get').mockReturnValue(mockPdfWidth);
614
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomFitToWidthIcon))];
615
- case 2:
616
- _a.sent();
617
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
618
- expect(react_2.screen.getByTestId(zoomInIcon).parentElement).toHaveAttribute('disabled', '');
619
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
620
- expect(react_2.screen.getByTestId(zoomOutIcon).parentElement).not.toHaveAttribute('disabled', '');
621
- return [2 /*return*/];
622
- }
623
- });
624
- }); });
625
- test('After fit to width, decrease zoom set zoom to nearest lower zoom step', function () { return __awaiter(void 0, void 0, void 0, function () {
626
- var onClose, ref, stepToReach, mockPdfWidth, user;
627
- return __generator(this, function (_a) {
628
- switch (_a.label) {
629
- case 0:
630
- onClose = jest.fn();
631
- ref = react_1.default.createRef();
632
- stepToReach = 1;
633
- mockPdfWidth = constants_1.ZOOM_STEPS[stepToReach + 1] - 1;
634
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
635
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
636
- }).user;
637
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
638
- case 1:
639
- _a.sent();
640
- // eslint-disable-next-line testing-library/no-node-access
641
- expect(document.querySelector('canvas')).toBeVisible();
642
- expect(react_2.screen.getByTestId(zoomFitToWidthIcon)).toBeVisible();
643
- jest.spyOn(ref.current, 'clientWidth', 'get').mockReturnValue(mockPdfWidth);
644
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomFitToWidthIcon))];
645
- case 2:
646
- _a.sent();
647
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
648
- expect(react_2.screen.getByTestId(zoomOutIcon).parentElement).not.toHaveAttribute('disabled', '');
649
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomOutIcon))];
650
- case 3:
651
- _a.sent();
652
- // eslint-disable-next-line testing-library/no-node-access
653
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[stepToReach]));
654
- return [2 /*return*/];
655
- }
656
- });
657
- }); });
658
- test('After fit to width, increase zoom set zoom to nearest greater zoom step', function () { return __awaiter(void 0, void 0, void 0, function () {
659
- var onClose, ref, stepToReach, mockPdfWidth, user;
660
- return __generator(this, function (_a) {
661
- switch (_a.label) {
662
- case 0:
663
- onClose = jest.fn();
664
- ref = react_1.default.createRef();
665
- stepToReach = 2;
666
- mockPdfWidth = constants_1.ZOOM_STEPS[stepToReach - 1] + 1;
667
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
668
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
669
- }).user;
670
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
671
- case 1:
672
- _a.sent();
673
- // eslint-disable-next-line testing-library/no-node-access
674
- expect(document.querySelector('canvas')).toBeVisible();
675
- expect(react_2.screen.getByTestId(zoomFitToWidthIcon)).toBeVisible();
676
- jest.spyOn(ref.current, 'clientWidth', 'get').mockReturnValue(mockPdfWidth);
677
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomFitToWidthIcon))];
678
- case 2:
679
- _a.sent();
680
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
681
- expect(react_2.screen.getByTestId(zoomInIcon).parentElement).not.toHaveAttribute('disabled', '');
682
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomInIcon))];
683
- case 3:
684
- _a.sent();
685
- // eslint-disable-next-line testing-library/no-node-access
686
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[stepToReach]));
687
- return [2 /*return*/];
688
- }
689
- });
690
- }); });
691
- test('When fit to width is active, resize of the window update width of the pdf', function () { return __awaiter(void 0, void 0, void 0, function () {
692
- var onClose, ref, mockPdfWidth, user, getPreviewClientWidthMock;
693
- return __generator(this, function (_a) {
694
- switch (_a.label) {
695
- case 0:
696
- onClose = jest.fn();
697
- ref = react_1.default.createRef();
698
- mockPdfWidth = [1001, 1501, 2001];
699
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
700
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
701
- }).user;
702
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
703
- case 1:
704
- _a.sent();
705
- // eslint-disable-next-line testing-library/no-node-access
706
- expect(document.querySelector('canvas')).toBeVisible();
707
- expect(react_2.screen.getByTestId(zoomFitToWidthIcon)).toBeVisible();
708
- getPreviewClientWidthMock = jest.spyOn(ref.current, 'clientWidth', 'get');
709
- getPreviewClientWidthMock.mockReturnValueOnce(mockPdfWidth[0]);
710
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomFitToWidthIcon))];
711
- case 2:
712
- _a.sent();
713
- // eslint-disable-next-line testing-library/no-node-access
714
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(mockPdfWidth[0]));
715
- getPreviewClientWidthMock.mockReturnValueOnce(mockPdfWidth[1]);
716
- // resize window to trigger listener
717
- (0, react_2.act)(function () {
718
- window.resizeTo(mockPdfWidth[1], mockPdfWidth[1]);
719
- });
720
- // eslint-disable-next-line testing-library/no-node-access
721
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(mockPdfWidth[1]));
722
- return [2 /*return*/];
723
- }
724
- });
725
- }); });
726
- test('Click on disabled decrease/increase zoom actions does not change step and does not close preview', function () { return __awaiter(void 0, void 0, void 0, function () {
727
- var onClose, ref, user;
728
- return __generator(this, function (_a) {
729
- switch (_a.label) {
730
- case 0:
731
- onClose = jest.fn();
732
- ref = react_1.default.createRef();
733
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose, ref: ref }), {
734
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
735
- }).user;
736
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
737
- case 1:
738
- _a.sent();
739
- // eslint-disable-next-line testing-library/no-node-access
740
- expect(document.querySelector('canvas')).toBeVisible();
741
- // eslint-disable-next-line jest-dom/prefer-enabled-disabled,testing-library/no-node-access
742
- expect(react_2.screen.getByTestId(zoomOutIcon).parentElement).toHaveAttribute('disabled', '');
743
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomOutIcon))];
744
- case 2:
745
- _a.sent();
746
- // eslint-disable-next-line testing-library/no-node-access
747
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[0]));
748
- expect(onClose).not.toHaveBeenCalled();
749
- jest
750
- .spyOn(ref.current, 'clientWidth', 'get')
751
- .mockReturnValue(constants_1.ZOOM_STEPS[constants_1.ZOOM_STEPS.length - 1]);
752
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomFitToWidthIcon))];
753
- case 3:
754
- _a.sent();
755
- // eslint-disable-next-line testing-library/no-node-access
756
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[constants_1.ZOOM_STEPS.length - 1]));
757
- // eslint-disable-next-line testing-library/no-node-access,jest-dom/prefer-enabled-disabled
758
- expect(react_2.screen.getByTestId(zoomInIcon).parentElement).toHaveAttribute('disabled', '');
759
- return [4 /*yield*/, user.click(react_2.screen.getByTestId(zoomInIcon))];
760
- case 4:
761
- _a.sent();
762
- // eslint-disable-next-line testing-library/no-node-access
763
- expect(document.querySelector('canvas')).toHaveAttribute('width', "".concat(constants_1.ZOOM_STEPS[constants_1.ZOOM_STEPS.length - 1]));
764
- expect(onClose).not.toHaveBeenCalled();
765
- return [2 /*return*/];
766
- }
767
- });
768
- }); });
769
- describe('Page selector', function () {
770
- test('shows page controller', function () { return __awaiter(void 0, void 0, void 0, function () {
771
- var onClose;
772
- return __generator(this, function (_a) {
773
- switch (_a.label) {
774
- case 0:
775
- onClose = jest.fn();
776
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
777
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
778
- });
779
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
780
- case 1:
781
- _a.sent();
782
- // eslint-disable-next-line testing-library/no-node-access
783
- expect(document.querySelector('canvas')).toBeVisible();
784
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
785
- expect(react_2.screen.getByRole('textbox', { name: /current page/i })).toBeVisible();
786
- // mock pdf has 4 pages
787
- expect(react_2.screen.getByText('4')).toBeVisible();
788
- return [2 /*return*/];
789
- }
790
- });
791
- }); });
792
- test('blur is a confirmation event on page input', function () { return __awaiter(void 0, void 0, void 0, function () {
793
- var onClose, user, pageInput;
794
- return __generator(this, function (_a) {
795
- switch (_a.label) {
796
- case 0:
797
- onClose = jest.fn();
798
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
799
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
800
- }).user;
801
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
802
- case 1:
803
- _a.sent();
804
- // eslint-disable-next-line testing-library/no-node-access
805
- expect(document.querySelector('canvas')).toBeVisible();
806
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
807
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
808
- expect(pageInput).toHaveDisplayValue('1');
809
- return [4 /*yield*/, user.clear(pageInput)];
810
- case 2:
811
- _a.sent();
812
- return [4 /*yield*/, user.type(pageInput, '2')];
813
- case 3:
814
- _a.sent();
815
- return [4 /*yield*/, user.tab()];
816
- case 4:
817
- _a.sent();
818
- expect(pageInput).not.toHaveFocus();
819
- expect(pageInput).toHaveDisplayValue('2');
820
- return [2 /*return*/];
821
- }
822
- });
823
- }); });
824
- test('enter key is a confirmation event on page input', function () { return __awaiter(void 0, void 0, void 0, function () {
825
- var onClose, user, pageInput;
826
- return __generator(this, function (_a) {
827
- switch (_a.label) {
828
- case 0:
829
- onClose = jest.fn();
830
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
831
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
832
- }).user;
833
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
834
- case 1:
835
- _a.sent();
836
- // eslint-disable-next-line testing-library/no-node-access
837
- expect(document.querySelector('canvas')).toBeVisible();
838
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
839
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
840
- expect(pageInput).toHaveDisplayValue('1');
841
- return [4 /*yield*/, user.clear(pageInput)];
842
- case 2:
843
- _a.sent();
844
- return [4 /*yield*/, user.type(pageInput, '2')];
845
- case 3:
846
- _a.sent();
847
- return [4 /*yield*/, user.type(pageInput, test_1.KEYBOARD_KEY.ENTER)];
848
- case 4:
849
- _a.sent();
850
- expect(pageInput).not.toHaveFocus();
851
- expect(pageInput).toHaveDisplayValue('2');
852
- return [2 /*return*/];
853
- }
854
- });
855
- }); });
856
- 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 () {
857
- var onClose, scrollIntoViewFn, user, pageInput;
858
- return __generator(this, function (_a) {
859
- switch (_a.label) {
860
- case 0:
861
- onClose = jest.fn();
862
- scrollIntoViewFn = jest.fn();
863
- window.HTMLElement.prototype.scrollIntoView = scrollIntoViewFn;
864
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
865
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
866
- }).user;
867
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
868
- case 1:
869
- _a.sent();
870
- // eslint-disable-next-line testing-library/no-node-access
871
- expect(document.querySelector('canvas')).toBeVisible();
872
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
873
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
874
- expect(pageInput).toHaveDisplayValue('1');
875
- return [4 /*yield*/, user.clear(pageInput)];
876
- case 2:
877
- _a.sent();
878
- return [4 /*yield*/, user.type(pageInput, '2')];
879
- case 3:
880
- _a.sent();
881
- return [4 /*yield*/, user.click(react_2.screen.getByText(/page/i))];
882
- case 4:
883
- _a.sent();
884
- expect(pageInput).not.toHaveFocus();
885
- expect(pageInput).toHaveDisplayValue('2');
886
- expect(scrollIntoViewFn).toHaveBeenCalledTimes(1);
887
- expect(scrollIntoViewFn.mock.instances[0]).toHaveAttribute('data-page-number', '2');
888
- return [2 /*return*/];
889
- }
890
- });
891
- }); });
892
- 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 () {
893
- var onClose, scrollIntoViewFn, user, pageInput;
894
- return __generator(this, function (_a) {
895
- switch (_a.label) {
896
- case 0:
897
- onClose = jest.fn();
898
- scrollIntoViewFn = jest.fn();
899
- window.HTMLElement.prototype.scrollIntoView = scrollIntoViewFn;
900
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
901
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
902
- }).user;
903
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
904
- case 1:
905
- _a.sent();
906
- // eslint-disable-next-line testing-library/no-node-access
907
- expect(document.querySelector('canvas')).toBeVisible();
908
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
909
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
910
- expect(pageInput).toHaveDisplayValue('1');
911
- return [4 /*yield*/, user.clear(pageInput)];
912
- case 2:
913
- _a.sent();
914
- return [4 /*yield*/, user.type(pageInput, 'invalid')];
915
- case 3:
916
- _a.sent();
917
- return [4 /*yield*/, user.click(react_2.screen.getByText(/page/i))];
918
- case 4:
919
- _a.sent();
920
- expect(pageInput).not.toHaveFocus();
921
- expect(pageInput).toHaveDisplayValue('1');
922
- expect(scrollIntoViewFn).not.toHaveBeenCalled();
923
- return [2 /*return*/];
924
- }
925
- });
926
- }); });
927
- 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 () {
928
- var onClose, pageInput, page2Element;
929
- return __generator(this, function (_a) {
930
- switch (_a.label) {
931
- case 0:
932
- onClose = jest.fn();
933
- (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
934
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
935
- });
936
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
937
- case 1:
938
- _a.sent();
939
- // eslint-disable-next-line testing-library/no-node-access
940
- expect(document.querySelector('canvas')).toBeVisible();
941
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
942
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
943
- expect(pageInput).toHaveDisplayValue('1');
944
- page2Element = document.querySelector(test_1.SELECTORS.pdfPage(2));
945
- expect(page2Element).not.toBeNull();
946
- return [4 /*yield*/, (0, test_utils_1.triggerObserver)(page2Element)];
947
- case 2:
948
- _a.sent();
949
- expect(pageInput).toHaveDisplayValue('2');
950
- return [2 /*return*/];
951
- }
952
- });
953
- }); });
954
- test('on scroll, if focus is on input, value is updated with current page', function () { return __awaiter(void 0, void 0, void 0, function () {
955
- var onClose, user, pageInput, page2Element;
956
- return __generator(this, function (_a) {
957
- switch (_a.label) {
958
- case 0:
959
- onClose = jest.fn();
960
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
961
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
962
- }).user;
963
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
964
- case 1:
965
- _a.sent();
966
- // eslint-disable-next-line testing-library/no-node-access
967
- expect(document.querySelector('canvas')).toBeVisible();
968
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
969
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
970
- expect(pageInput).toHaveDisplayValue('1');
971
- return [4 /*yield*/, user.clear(pageInput)];
972
- case 2:
973
- _a.sent();
974
- return [4 /*yield*/, user.type(pageInput, '4')];
975
- case 3:
976
- _a.sent();
977
- expect(pageInput).toHaveFocus();
978
- page2Element = document.querySelector(test_1.SELECTORS.pdfPage(2));
979
- expect(page2Element).not.toBeNull();
980
- return [4 /*yield*/, (0, test_utils_1.triggerObserver)(page2Element)];
981
- case 4:
982
- _a.sent();
983
- expect(pageInput).toHaveDisplayValue('2');
984
- expect(pageInput).toHaveFocus();
985
- return [2 /*return*/];
986
- }
987
- });
988
- }); });
989
- 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 () {
990
- var onClose, user, pageInput;
991
- return __generator(this, function (_a) {
992
- switch (_a.label) {
993
- case 0:
994
- onClose = jest.fn();
995
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
996
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
997
- }).user;
998
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
999
- case 1:
1000
- _a.sent();
1001
- // eslint-disable-next-line testing-library/no-node-access
1002
- expect(document.querySelector('canvas')).toBeVisible();
1003
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
1004
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
1005
- expect(pageInput).toHaveDisplayValue('1');
1006
- return [4 /*yield*/, user.clear(pageInput)];
1007
- case 2:
1008
- _a.sent();
1009
- return [4 /*yield*/, user.type(pageInput, '4')];
1010
- case 3:
1011
- _a.sent();
1012
- expect(pageInput).toHaveFocus();
1013
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
1014
- case 4:
1015
- _a.sent();
1016
- expect(onClose).not.toHaveBeenCalled();
1017
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
1018
- case 5:
1019
- _a.sent();
1020
- expect(onClose).toHaveBeenCalledTimes(1);
1021
- return [2 /*return*/];
1022
- }
1023
- });
1024
- }); });
1025
- });
1026
- describe('keyboard shortcuts', function () {
1027
- describe('Home and End', function () {
1028
- test('click End go to last page and Home return to the first page', function () { return __awaiter(void 0, void 0, void 0, function () {
1029
- var onClose, user, pageInput;
1030
- return __generator(this, function (_a) {
1031
- switch (_a.label) {
1032
- case 0:
1033
- onClose = jest.fn();
1034
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
1035
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
1036
- }).user;
1037
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
1038
- case 1:
1039
- _a.sent();
1040
- // eslint-disable-next-line testing-library/no-node-access
1041
- expect(document.querySelector('canvas')).toBeVisible();
1042
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
1043
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
1044
- expect(pageInput).toHaveDisplayValue('1');
1045
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.END)];
1046
- case 2:
1047
- _a.sent();
1048
- expect(pageInput).toHaveDisplayValue('4');
1049
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.HOME)];
1050
- case 3:
1051
- _a.sent();
1052
- expect(pageInput).toHaveDisplayValue('1');
1053
- return [2 /*return*/];
1054
- }
1055
- });
1056
- }); });
1057
- 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 () {
1058
- var onClose, user, pageInput;
1059
- return __generator(this, function (_a) {
1060
- switch (_a.label) {
1061
- case 0:
1062
- onClose = jest.fn();
1063
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
1064
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
1065
- }).user;
1066
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
1067
- case 1:
1068
- _a.sent();
1069
- // eslint-disable-next-line testing-library/no-node-access
1070
- expect(document.querySelector('canvas')).toBeVisible();
1071
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
1072
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
1073
- expect(pageInput).toHaveDisplayValue('1');
1074
- return [4 /*yield*/, user.click(pageInput)];
1075
- case 2:
1076
- _a.sent();
1077
- expect(pageInput).toHaveFocus();
1078
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.END)];
1079
- case 3:
1080
- _a.sent();
1081
- expect(pageInput).not.toHaveDisplayValue('4');
1082
- expect(pageInput).toHaveDisplayValue('1');
1083
- // remove focus
1084
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
1085
- case 4:
1086
- // remove focus
1087
- _a.sent();
1088
- expect(pageInput).not.toHaveFocus();
1089
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.END)];
1090
- case 5:
1091
- _a.sent();
1092
- expect(pageInput).toHaveDisplayValue('4');
1093
- // focus input again
1094
- return [4 /*yield*/, user.click(pageInput)];
1095
- case 6:
1096
- // focus input again
1097
- _a.sent();
1098
- expect(pageInput).toHaveFocus();
1099
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.HOME)];
1100
- case 7:
1101
- _a.sent();
1102
- expect(pageInput).not.toHaveDisplayValue('1');
1103
- expect(pageInput).toHaveDisplayValue('4');
1104
- // remove focus
1105
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
1106
- case 8:
1107
- // remove focus
1108
- _a.sent();
1109
- expect(pageInput).not.toHaveFocus();
1110
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.HOME)];
1111
- case 9:
1112
- _a.sent();
1113
- expect(pageInput).toHaveDisplayValue('1');
1114
- return [2 /*return*/];
1115
- }
1116
- });
1117
- }); });
1118
- });
1119
- describe('PageUp and PageDown', function () {
1120
- 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 () {
1121
- var onClose, user, pageInput;
1122
- return __generator(this, function (_a) {
1123
- switch (_a.label) {
1124
- case 0:
1125
- onClose = jest.fn();
1126
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
1127
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
1128
- }).user;
1129
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
1130
- case 1:
1131
- _a.sent();
1132
- // eslint-disable-next-line testing-library/no-node-access
1133
- expect(document.querySelector('canvas')).toBeVisible();
1134
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
1135
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
1136
- expect(pageInput).toHaveDisplayValue('1');
1137
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_DOWN)];
1138
- case 2:
1139
- _a.sent();
1140
- expect(pageInput).toHaveDisplayValue('2');
1141
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_DOWN)];
1142
- case 3:
1143
- _a.sent();
1144
- expect(pageInput).toHaveDisplayValue('3');
1145
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_DOWN)];
1146
- case 4:
1147
- _a.sent();
1148
- expect(pageInput).toHaveDisplayValue('4');
1149
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_DOWN)];
1150
- case 5:
1151
- _a.sent();
1152
- expect(pageInput).toHaveDisplayValue('4');
1153
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_UP)];
1154
- case 6:
1155
- _a.sent();
1156
- expect(pageInput).toHaveDisplayValue('3');
1157
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_UP)];
1158
- case 7:
1159
- _a.sent();
1160
- expect(pageInput).toHaveDisplayValue('2');
1161
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_UP)];
1162
- case 8:
1163
- _a.sent();
1164
- expect(pageInput).toHaveDisplayValue('1');
1165
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_UP)];
1166
- case 9:
1167
- _a.sent();
1168
- expect(pageInput).toHaveDisplayValue('1');
1169
- return [2 /*return*/];
1170
- }
1171
- });
1172
- }); });
1173
- 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 () {
1174
- var onClose, user, pageInput;
1175
- return __generator(this, function (_a) {
1176
- switch (_a.label) {
1177
- case 0:
1178
- onClose = jest.fn();
1179
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
1180
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
1181
- }).user;
1182
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
1183
- case 1:
1184
- _a.sent();
1185
- // eslint-disable-next-line testing-library/no-node-access
1186
- expect(document.querySelector('canvas')).toBeVisible();
1187
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
1188
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
1189
- expect(pageInput).toHaveDisplayValue('1');
1190
- return [4 /*yield*/, user.click(pageInput)];
1191
- case 2:
1192
- _a.sent();
1193
- expect(pageInput).toHaveFocus();
1194
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_DOWN)];
1195
- case 3:
1196
- _a.sent();
1197
- expect(pageInput).not.toHaveDisplayValue('2');
1198
- expect(pageInput).toHaveDisplayValue('1');
1199
- // remove focus
1200
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
1201
- case 4:
1202
- // remove focus
1203
- _a.sent();
1204
- expect(pageInput).not.toHaveFocus();
1205
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_DOWN)];
1206
- case 5:
1207
- _a.sent();
1208
- expect(pageInput).toHaveDisplayValue('2');
1209
- // focus input again
1210
- return [4 /*yield*/, user.click(pageInput)];
1211
- case 6:
1212
- // focus input again
1213
- _a.sent();
1214
- expect(pageInput).toHaveFocus();
1215
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_UP)];
1216
- case 7:
1217
- _a.sent();
1218
- expect(pageInput).not.toHaveDisplayValue('1');
1219
- expect(pageInput).toHaveDisplayValue('2');
1220
- // remove focus
1221
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
1222
- case 8:
1223
- // remove focus
1224
- _a.sent();
1225
- expect(pageInput).not.toHaveFocus();
1226
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.PAGE_UP)];
1227
- case 9:
1228
- _a.sent();
1229
- expect(pageInput).toHaveDisplayValue('1');
1230
- return [2 /*return*/];
1231
- }
1232
- });
1233
- }); });
1234
- });
1235
- test('ArrowUp and ArrowDown', function () { return __awaiter(void 0, void 0, void 0, function () {
1236
- var onClose, scrollByFn, user, pageInput;
1237
- return __generator(this, function (_a) {
1238
- switch (_a.label) {
1239
- case 0:
1240
- onClose = jest.fn();
1241
- scrollByFn = jest.fn();
1242
- window.HTMLElement.prototype.scrollBy = scrollByFn;
1243
- user = (0, test_utils_1.setup)(react_1.default.createElement(PdfPreview_1.PdfPreview, { show: true, src: pdfFile.dataURI, onClose: onClose }), {
1244
- setupOptions: { advanceTimers: function () { return Promise.resolve(); } }
1245
- }).user;
1246
- return [4 /*yield*/, react_2.screen.findByText(/Loading document preview…/i)];
1247
- case 1:
1248
- _a.sent();
1249
- // eslint-disable-next-line testing-library/no-node-access
1250
- expect(document.querySelector('canvas')).toBeVisible();
1251
- expect(react_2.screen.getByText(/page/i)).toBeVisible();
1252
- pageInput = react_2.screen.getByRole('textbox', { name: /current page/i });
1253
- expect(pageInput).toHaveDisplayValue('1');
1254
- return [4 /*yield*/, user.click(pageInput)];
1255
- case 2:
1256
- _a.sent();
1257
- expect(pageInput).toHaveFocus();
1258
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ARROW_DOWN)];
1259
- case 3:
1260
- _a.sent();
1261
- expect(scrollByFn).not.toHaveBeenCalled();
1262
- // remove focus
1263
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
1264
- case 4:
1265
- // remove focus
1266
- _a.sent();
1267
- expect(pageInput).not.toHaveFocus();
1268
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ARROW_DOWN)];
1269
- case 5:
1270
- _a.sent();
1271
- expect(scrollByFn).toHaveBeenCalledTimes(1);
1272
- expect(scrollByFn).toHaveBeenCalledWith(0, 40);
1273
- return [4 /*yield*/, user.click(pageInput)];
1274
- case 6:
1275
- _a.sent();
1276
- expect(pageInput).toHaveFocus();
1277
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ARROW_UP)];
1278
- case 7:
1279
- _a.sent();
1280
- expect(scrollByFn).toHaveBeenCalledTimes(1);
1281
- // remove focus
1282
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ESC)];
1283
- case 8:
1284
- // remove focus
1285
- _a.sent();
1286
- expect(pageInput).not.toHaveFocus();
1287
- return [4 /*yield*/, user.keyboard(test_1.KEYBOARD_KEY.ARROW_UP)];
1288
- case 9:
1289
- _a.sent();
1290
- expect(scrollByFn).toHaveBeenCalledTimes(2);
1291
- expect(scrollByFn).toHaveBeenCalledWith(0, -40);
1292
- return [2 /*return*/];
1293
- }
1294
- });
1295
- }); });
1296
- });
1297
- });
1298
- //# sourceMappingURL=PdfPreview.test.js.map