@pie-lib/editable-html-tip-tap 2.2.0-beta.7 → 2.2.0-beta.9

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 (139) hide show
  1. package/package.json +3 -3
  2. package/lib/__tests__/EditableHtml.test.js +0 -831
  3. package/lib/__tests__/EditableHtml.test.js.map +0 -1
  4. package/lib/__tests__/constants.test.js +0 -21
  5. package/lib/__tests__/constants.test.js.map +0 -1
  6. package/lib/__tests__/div-to-paragraph-conversion.test.js +0 -213
  7. package/lib/__tests__/div-to-paragraph-conversion.test.js.map +0 -1
  8. package/lib/__tests__/extensions.test.js +0 -209
  9. package/lib/__tests__/extensions.test.js.map +0 -1
  10. package/lib/__tests__/index.test.js +0 -250
  11. package/lib/__tests__/index.test.js.map +0 -1
  12. package/lib/__tests__/size-utils.test.js +0 -57
  13. package/lib/__tests__/size-utils.test.js.map +0 -1
  14. package/lib/__tests__/theme.test.js +0 -17
  15. package/lib/__tests__/theme.test.js.map +0 -1
  16. package/lib/components/__tests__/AltDialog.test.js +0 -201
  17. package/lib/components/__tests__/AltDialog.test.js.map +0 -1
  18. package/lib/components/__tests__/CharacterPicker.test.js +0 -455
  19. package/lib/components/__tests__/CharacterPicker.test.js.map +0 -1
  20. package/lib/components/__tests__/CssIcon.test.js +0 -58
  21. package/lib/components/__tests__/CssIcon.test.js.map +0 -1
  22. package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
  23. package/lib/components/__tests__/DragInTheBlank.test.js.map +0 -1
  24. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -345
  25. package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +0 -1
  26. package/lib/components/__tests__/ImageToolbar.test.js +0 -185
  27. package/lib/components/__tests__/ImageToolbar.test.js.map +0 -1
  28. package/lib/components/__tests__/InlineDropdown.test.js +0 -839
  29. package/lib/components/__tests__/InlineDropdown.test.js.map +0 -1
  30. package/lib/components/__tests__/InsertImageHandler.test.js +0 -171
  31. package/lib/components/__tests__/InsertImageHandler.test.js.map +0 -1
  32. package/lib/components/__tests__/MediaDialog.test.js +0 -433
  33. package/lib/components/__tests__/MediaDialog.test.js.map +0 -1
  34. package/lib/components/__tests__/MediaToolbar.test.js +0 -126
  35. package/lib/components/__tests__/MediaToolbar.test.js.map +0 -1
  36. package/lib/components/__tests__/MediaWrapper.test.js +0 -96
  37. package/lib/components/__tests__/MediaWrapper.test.js.map +0 -1
  38. package/lib/components/__tests__/MenuBar.test.js +0 -502
  39. package/lib/components/__tests__/MenuBar.test.js.map +0 -1
  40. package/lib/components/__tests__/RespArea.test.js +0 -171
  41. package/lib/components/__tests__/RespArea.test.js.map +0 -1
  42. package/lib/components/__tests__/TableIcons.test.js +0 -153
  43. package/lib/components/__tests__/TableIcons.test.js.map +0 -1
  44. package/lib/components/__tests__/TextAlign.test.js +0 -209
  45. package/lib/components/__tests__/TextAlign.test.js.map +0 -1
  46. package/lib/components/__tests__/TiptapContainer.test.js +0 -196
  47. package/lib/components/__tests__/TiptapContainer.test.js.map +0 -1
  48. package/lib/components/__tests__/characterUtils.test.js +0 -178
  49. package/lib/components/__tests__/characterUtils.test.js.map +0 -1
  50. package/lib/components/__tests__/choice.test.js +0 -213
  51. package/lib/components/__tests__/choice.test.js.map +0 -1
  52. package/lib/components/__tests__/custom-popper.test.js +0 -108
  53. package/lib/components/__tests__/custom-popper.test.js.map +0 -1
  54. package/lib/components/__tests__/done-button.test.js +0 -72
  55. package/lib/components/__tests__/done-button.test.js.map +0 -1
  56. package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
  57. package/lib/components/__tests__/toolbar-buttons.test.js.map +0 -1
  58. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +0 -90
  59. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +0 -1
  60. package/lib/components/respArea/__tests__/MathTemplated.test.js +0 -217
  61. package/lib/components/respArea/__tests__/MathTemplated.test.js.map +0 -1
  62. package/lib/extensions/__tests__/css.test.js +0 -214
  63. package/lib/extensions/__tests__/css.test.js.map +0 -1
  64. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
  65. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +0 -1
  66. package/lib/extensions/__tests__/divNode.test.js +0 -108
  67. package/lib/extensions/__tests__/divNode.test.js.map +0 -1
  68. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +0 -50
  69. package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +0 -1
  70. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -60
  71. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +0 -1
  72. package/lib/extensions/__tests__/extended-list-item.test.js +0 -13
  73. package/lib/extensions/__tests__/extended-list-item.test.js.map +0 -1
  74. package/lib/extensions/__tests__/extended-table-cell.test.js +0 -15
  75. package/lib/extensions/__tests__/extended-table-cell.test.js.map +0 -1
  76. package/lib/extensions/__tests__/extended-table.test.js +0 -200
  77. package/lib/extensions/__tests__/extended-table.test.js.map +0 -1
  78. package/lib/extensions/__tests__/image-component.test.js +0 -432
  79. package/lib/extensions/__tests__/image-component.test.js.map +0 -1
  80. package/lib/extensions/__tests__/image.test.js +0 -313
  81. package/lib/extensions/__tests__/image.test.js.map +0 -1
  82. package/lib/extensions/__tests__/math.test.js +0 -1411
  83. package/lib/extensions/__tests__/math.test.js.map +0 -1
  84. package/lib/extensions/__tests__/media-node-view.test.js +0 -307
  85. package/lib/extensions/__tests__/media-node-view.test.js.map +0 -1
  86. package/lib/extensions/__tests__/media.test.js +0 -292
  87. package/lib/extensions/__tests__/media.test.js.map +0 -1
  88. package/lib/extensions/__tests__/responseArea.test.js +0 -736
  89. package/lib/extensions/__tests__/responseArea.test.js.map +0 -1
  90. package/lib/utils/__tests__/helper.test.js +0 -107
  91. package/lib/utils/__tests__/helper.test.js.map +0 -1
  92. package/lib/utils/__tests__/toolbar.test.js +0 -38
  93. package/lib/utils/__tests__/toolbar.test.js.map +0 -1
  94. package/src/__tests__/EditableHtml.test.jsx +0 -588
  95. package/src/__tests__/constants.test.js +0 -19
  96. package/src/__tests__/div-to-paragraph-conversion.test.jsx +0 -125
  97. package/src/__tests__/extensions.test.js +0 -208
  98. package/src/__tests__/index.test.jsx +0 -154
  99. package/src/__tests__/size-utils.test.js +0 -64
  100. package/src/__tests__/theme.test.js +0 -17
  101. package/src/components/__tests__/AltDialog.test.jsx +0 -147
  102. package/src/components/__tests__/CharacterPicker.test.jsx +0 -270
  103. package/src/components/__tests__/CssIcon.test.jsx +0 -46
  104. package/src/components/__tests__/DragInTheBlank.test.jsx +0 -255
  105. package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +0 -209
  106. package/src/components/__tests__/ImageToolbar.test.jsx +0 -128
  107. package/src/components/__tests__/InlineDropdown.test.jsx +0 -557
  108. package/src/components/__tests__/InsertImageHandler.test.js +0 -161
  109. package/src/components/__tests__/MediaDialog.test.jsx +0 -293
  110. package/src/components/__tests__/MediaToolbar.test.jsx +0 -74
  111. package/src/components/__tests__/MediaWrapper.test.jsx +0 -81
  112. package/src/components/__tests__/MenuBar.test.jsx +0 -250
  113. package/src/components/__tests__/RespArea.test.jsx +0 -122
  114. package/src/components/__tests__/TableIcons.test.jsx +0 -149
  115. package/src/components/__tests__/TextAlign.test.jsx +0 -167
  116. package/src/components/__tests__/TiptapContainer.test.jsx +0 -138
  117. package/src/components/__tests__/characterUtils.test.js +0 -166
  118. package/src/components/__tests__/choice.test.jsx +0 -171
  119. package/src/components/__tests__/custom-popper.test.jsx +0 -82
  120. package/src/components/__tests__/done-button.test.jsx +0 -54
  121. package/src/components/__tests__/toolbar-buttons.test.jsx +0 -234
  122. package/src/components/respArea/DragInTheBlank/__tests__/choice.test.jsx +0 -72
  123. package/src/components/respArea/__tests__/MathTemplated.test.jsx +0 -210
  124. package/src/extensions/__tests__/css.test.js +0 -196
  125. package/src/extensions/__tests__/custom-toolbar-wrapper.test.jsx +0 -180
  126. package/src/extensions/__tests__/divNode.test.js +0 -87
  127. package/src/extensions/__tests__/ensure-empty-root-div.test.js +0 -57
  128. package/src/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -44
  129. package/src/extensions/__tests__/extended-list-item.test.js +0 -13
  130. package/src/extensions/__tests__/extended-table-cell.test.js +0 -22
  131. package/src/extensions/__tests__/extended-table.test.js +0 -183
  132. package/src/extensions/__tests__/image-component.test.jsx +0 -346
  133. package/src/extensions/__tests__/image.test.js +0 -237
  134. package/src/extensions/__tests__/math.test.js +0 -900
  135. package/src/extensions/__tests__/media-node-view.test.jsx +0 -298
  136. package/src/extensions/__tests__/media.test.js +0 -271
  137. package/src/extensions/__tests__/responseArea.test.js +0 -655
  138. package/src/utils/__tests__/helper.test.js +0 -126
  139. package/src/utils/__tests__/toolbar.test.js +0 -43
@@ -1,831 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _react2 = require("@testing-library/react");
11
- var _react3 = require("@tiptap/react");
12
- var _EditableHtml = require("../components/EditableHtml");
13
- var _responseArea = require("../extensions/responseArea");
14
- var _excluded = ["editor"];
15
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
- // Mock TipTap dependencies
18
- jest.mock('@tiptap/react', function () {
19
- return {
20
- EditorContent: function EditorContent(_ref) {
21
- var editor = _ref.editor,
22
- props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
23
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
24
- "data-testid": "editor-content"
25
- }, props));
26
- },
27
- useEditor: jest.fn(function (config) {
28
- var mockEditor = {
29
- getHTML: jest.fn(function () {
30
- return '<p>test content</p>';
31
- }),
32
- setEditable: jest.fn(),
33
- commands: {
34
- setContent: jest.fn()
35
- },
36
- isActive: jest.fn(function () {
37
- return false;
38
- }),
39
- isFocused: false
40
- };
41
- return mockEditor;
42
- }),
43
- useEditorState: jest.fn(function () {
44
- return {
45
- isFocused: false
46
- };
47
- })
48
- };
49
- });
50
- jest.mock('@tiptap/starter-kit', function () {
51
- return {
52
- __esModule: true,
53
- "default": {
54
- configure: jest.fn(function () {
55
- return {};
56
- })
57
- }
58
- };
59
- });
60
- jest.mock('@tiptap/extension-text-style', function () {
61
- return {
62
- TextStyleKit: {}
63
- };
64
- });
65
- jest.mock('@tiptap/extension-character-count', function () {
66
- return {
67
- CharacterCount: {
68
- configure: jest.fn(function () {
69
- return {};
70
- })
71
- }
72
- };
73
- });
74
- jest.mock('@tiptap/extension-superscript', function () {
75
- return {
76
- __esModule: true,
77
- "default": {}
78
- };
79
- });
80
- jest.mock('@tiptap/extension-subscript', function () {
81
- return {
82
- __esModule: true,
83
- "default": {}
84
- };
85
- });
86
- jest.mock('@tiptap/extension-text-align', function () {
87
- return {
88
- __esModule: true,
89
- "default": {
90
- configure: jest.fn(function () {
91
- return {};
92
- })
93
- }
94
- };
95
- });
96
- jest.mock('@tiptap/extension-image', function () {
97
- return {
98
- __esModule: true,
99
- "default": {}
100
- };
101
- });
102
- jest.mock('@tiptap/extension-table', function () {
103
- return {
104
- __esModule: true,
105
- "default": {}
106
- };
107
- });
108
- jest.mock('@tiptap/extension-table-row', function () {
109
- return {
110
- TableRow: {}
111
- };
112
- });
113
- jest.mock('../extensions/extended-table-cell', function () {
114
- return {
115
- ExtendedTableCell: {},
116
- ExtendedTableHeader: {}
117
- };
118
- });
119
- jest.mock('../extensions/extended-table', function () {
120
- return {
121
- __esModule: true,
122
- "default": {}
123
- };
124
- });
125
- jest.mock('../extensions/ensure-empty-root-div', function () {
126
- return {
127
- EnsureEmptyRootIsDiv: {}
128
- };
129
- });
130
- jest.mock('../extensions/extended-list-item', function () {
131
- return {
132
- ExtendedListItem: {}
133
- };
134
- });
135
- jest.mock('../extensions/ensure-list-item-content-is-div', function () {
136
- return {
137
- EnsureListItemContentIsDiv: {}
138
- };
139
- });
140
- jest.mock('../extensions/responseArea', function () {
141
- return {
142
- ExplicitConstructedResponseNode: {
143
- configure: jest.fn(function () {
144
- return {};
145
- })
146
- },
147
- DragInTheBlankNode: {
148
- configure: jest.fn(function () {
149
- return {};
150
- })
151
- },
152
- InlineDropdownNode: {
153
- configure: jest.fn(function () {
154
- return {};
155
- })
156
- },
157
- MathTemplatedNode: {
158
- configure: jest.fn(function () {
159
- return {};
160
- })
161
- },
162
- ResponseAreaExtension: {
163
- configure: jest.fn(function () {
164
- return {};
165
- })
166
- }
167
- };
168
- });
169
- jest.mock('../extensions/math', function () {
170
- return {
171
- MathNode: {
172
- configure: jest.fn(function () {
173
- return {};
174
- })
175
- }
176
- };
177
- });
178
- jest.mock('../extensions/image', function () {
179
- return {
180
- ImageUploadNode: {
181
- configure: jest.fn(function () {
182
- return {};
183
- })
184
- }
185
- };
186
- });
187
- jest.mock('../extensions/media', function () {
188
- return {
189
- Media: {
190
- configure: jest.fn(function () {
191
- return {};
192
- })
193
- }
194
- };
195
- });
196
- jest.mock('../extensions/css', function () {
197
- return {
198
- CSSMark: {
199
- configure: jest.fn(function () {
200
- return {};
201
- })
202
- }
203
- };
204
- });
205
- jest.mock('../components/TiptapContainer', function () {
206
- return {
207
- __esModule: true,
208
- "default": function _default(_ref2) {
209
- var children = _ref2.children;
210
- return /*#__PURE__*/_react["default"].createElement("div", {
211
- "data-testid": "editor-container"
212
- }, children);
213
- }
214
- };
215
- });
216
- jest.mock('../extensions', function () {
217
- return _objectSpread(_objectSpread({}, jest.requireActual('../extensions')), {}, {
218
- buildExtensions: jest.fn(function () {
219
- return [];
220
- })
221
- });
222
- });
223
- describe('EditableHtml', function () {
224
- var defaultProps = {
225
- markup: '<p>Hello World</p>',
226
- onChange: jest.fn(),
227
- onDone: jest.fn(),
228
- disabled: false
229
- };
230
- beforeEach(function () {
231
- jest.clearAllMocks();
232
- });
233
- it('renders without crashing', function () {
234
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, defaultProps)),
235
- container = _render.container;
236
- expect(container).toBeInTheDocument();
237
- });
238
- it('renders editor container', function () {
239
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, defaultProps)),
240
- getByTestId = _render2.getByTestId;
241
- expect(getByTestId('editor-container')).toBeInTheDocument();
242
- });
243
- it('renders editor content when editor is initialized', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
244
- var _render3, getByTestId;
245
- return _regenerator["default"].wrap(function (_context) {
246
- while (1) switch (_context.prev = _context.next) {
247
- case 0:
248
- _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, defaultProps)), getByTestId = _render3.getByTestId;
249
- _context.next = 1;
250
- return (0, _react2.waitFor)(function () {
251
- expect(getByTestId('editor-content')).toBeInTheDocument();
252
- });
253
- case 1:
254
- case "end":
255
- return _context.stop();
256
- }
257
- }, _callee);
258
- })));
259
- it('accepts custom toolbar options', function () {
260
- var toolbarOpts = {
261
- position: 'top',
262
- alignment: 'center',
263
- alwaysVisible: true,
264
- showDone: false,
265
- doneOn: 'change'
266
- };
267
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
268
- toolbarOpts: toolbarOpts
269
- }))),
270
- container = _render4.container;
271
- expect(container).toBeInTheDocument();
272
- });
273
- it('accepts custom active plugins', function () {
274
- var activePlugins = ['bold', 'italic', 'underline'];
275
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
276
- activePlugins: activePlugins
277
- }))),
278
- container = _render5.container;
279
- expect(container).toBeInTheDocument();
280
- });
281
- it('accepts plugin props', function () {
282
- var pluginProps = {
283
- showParagraphs: {
284
- disabled: false
285
- },
286
- separateParagraphs: {
287
- disabled: false
288
- }
289
- };
290
- var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
291
- pluginProps: pluginProps
292
- }))),
293
- container = _render6.container;
294
- expect(container).toBeInTheDocument();
295
- });
296
- it('accepts response area props', function () {
297
- var responseAreaProps = {
298
- type: 'explicit-constructed-response',
299
- options: {}
300
- };
301
- var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
302
- responseAreaProps: responseAreaProps
303
- }))),
304
- container = _render7.container;
305
- expect(container).toBeInTheDocument();
306
- });
307
- it('passes blur done behavior to inline dropdown toolbar close', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
308
- var onChange, onDone, html, configureCall, inlineDropdownOptions, editor;
309
- return _regenerator["default"].wrap(function (_context2) {
310
- while (1) switch (_context2.prev = _context2.next) {
311
- case 0:
312
- onChange = jest.fn();
313
- onDone = jest.fn();
314
- html = '<p>from inline dropdown close</p>';
315
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
316
- markup: "<p>Hello World</p>",
317
- onChange: onChange,
318
- onDone: onDone,
319
- toolbarOpts: {
320
- doneOn: 'blur'
321
- },
322
- responseAreaProps: {
323
- type: 'inline-dropdown'
324
- }
325
- })));
326
- _context2.next = 1;
327
- return (0, _react2.waitFor)(function () {
328
- expect(_responseArea.InlineDropdownNode.configure).toHaveBeenCalled();
329
- });
330
- case 1:
331
- configureCall = _responseArea.InlineDropdownNode.configure.mock.calls[_responseArea.InlineDropdownNode.configure.mock.calls.length - 1];
332
- inlineDropdownOptions = configureCall[0];
333
- editor = {
334
- getHTML: jest.fn(function () {
335
- return html;
336
- })
337
- };
338
- inlineDropdownOptions.onInlineDropdownToolbarClose(editor);
339
- expect(editor.getHTML).toHaveBeenCalledTimes(1);
340
- expect(onChange).toHaveBeenCalledWith(html);
341
- expect(onDone).toHaveBeenCalledWith(html);
342
- case 2:
343
- case "end":
344
- return _context2.stop();
345
- }
346
- }, _callee2);
347
- })));
348
- it('accepts size props', function () {
349
- var sizeProps = {
350
- width: 500,
351
- height: 300,
352
- minHeight: 200,
353
- maxHeight: 400,
354
- minWidth: 300,
355
- maxWidth: 600
356
- };
357
- var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, sizeProps))),
358
- container = _render8.container;
359
- expect(container).toBeInTheDocument();
360
- });
361
- it('accepts character limit', function () {
362
- var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
363
- charactersLimit: 500
364
- }))),
365
- container = _render9.container;
366
- expect(container).toBeInTheDocument();
367
- });
368
- it('accepts image support props', function () {
369
- var imageSupport = {
370
- add: jest.fn(),
371
- "delete": jest.fn()
372
- };
373
- var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
374
- imageSupport: imageSupport
375
- }))),
376
- container = _render0.container;
377
- expect(container).toBeInTheDocument();
378
- });
379
- it('accepts max image dimensions', function () {
380
- var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
381
- maxImageWidth: 800,
382
- maxImageHeight: 600
383
- }))),
384
- container = _render1.container;
385
- expect(container).toBeInTheDocument();
386
- });
387
- it('accepts language characters props', function () {
388
- var languageCharactersProps = [{
389
- label: 'Greek',
390
- value: 'greek'
391
- }, {
392
- label: 'Cyrillic',
393
- value: 'cyrillic'
394
- }];
395
- var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
396
- languageCharactersProps: languageCharactersProps
397
- }))),
398
- container = _render10.container;
399
- expect(container).toBeInTheDocument();
400
- });
401
- it('accepts extra CSS rules', function () {
402
- var extraCSSRules = {
403
- '.custom-class': {
404
- color: 'red'
405
- }
406
- };
407
- var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
408
- extraCSSRules: extraCSSRules
409
- }))),
410
- container = _render11.container;
411
- expect(container).toBeInTheDocument();
412
- });
413
- it('accepts upload sound support', function () {
414
- var uploadSoundSupport = {
415
- add: jest.fn(),
416
- "delete": jest.fn()
417
- };
418
- var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
419
- uploadSoundSupport: uploadSoundSupport
420
- }))),
421
- container = _render12.container;
422
- expect(container).toBeInTheDocument();
423
- });
424
- it('accepts onKeyDown handler', function () {
425
- var onKeyDown = jest.fn();
426
- var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
427
- onKeyDown: onKeyDown
428
- }))),
429
- container = _render13.container;
430
- expect(container).toBeInTheDocument();
431
- });
432
- it('accepts disableImageAlignmentButtons prop', function () {
433
- var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
434
- disableImageAlignmentButtons: true
435
- }))),
436
- container = _render14.container;
437
- expect(container).toBeInTheDocument();
438
- });
439
- it('calls editorRef callback when editor is initialized', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
440
- var editorRef;
441
- return _regenerator["default"].wrap(function (_context3) {
442
- while (1) switch (_context3.prev = _context3.next) {
443
- case 0:
444
- editorRef = jest.fn();
445
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
446
- editorRef: editorRef
447
- })));
448
- _context3.next = 1;
449
- return (0, _react2.waitFor)(function () {
450
- expect(editorRef).toHaveBeenCalled();
451
- });
452
- case 1:
453
- case "end":
454
- return _context3.stop();
455
- }
456
- }, _callee3);
457
- })));
458
- it('calls editorRef with the editor instance', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
459
- var editorRef;
460
- return _regenerator["default"].wrap(function (_context4) {
461
- while (1) switch (_context4.prev = _context4.next) {
462
- case 0:
463
- editorRef = jest.fn();
464
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
465
- editorRef: editorRef
466
- })));
467
- _context4.next = 1;
468
- return (0, _react2.waitFor)(function () {
469
- expect(editorRef).toHaveBeenCalled();
470
- // Verify it was called with an object that has editor-like properties
471
- var callArg = editorRef.mock.calls[0][0];
472
- expect(callArg).toHaveProperty('getHTML');
473
- expect(callArg).toHaveProperty('commands');
474
- });
475
- case 1:
476
- case "end":
477
- return _context4.stop();
478
- }
479
- }, _callee4);
480
- })));
481
- it('handles editorRef being undefined', function () {
482
- var _render15 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
483
- editorRef: undefined
484
- }))),
485
- container = _render15.container;
486
- expect(container).toBeInTheDocument();
487
- });
488
- it('applies flex display to StyledEditorContent', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
489
- var _render16, getByTestId;
490
- return _regenerator["default"].wrap(function (_context5) {
491
- while (1) switch (_context5.prev = _context5.next) {
492
- case 0:
493
- _render16 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, defaultProps)), getByTestId = _render16.getByTestId;
494
- _context5.next = 1;
495
- return (0, _react2.waitFor)(function () {
496
- var editorContent = getByTestId('editor-content');
497
- expect(editorContent).toBeInTheDocument();
498
- });
499
- case 1:
500
- case "end":
501
- return _context5.stop();
502
- }
503
- }, _callee5);
504
- })));
505
- it('does not run blur onChange/onDone while an image insert flow is active', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
506
- var onChange, onDone, editorConfig, blurEditor;
507
- return _regenerator["default"].wrap(function (_context6) {
508
- while (1) switch (_context6.prev = _context6.next) {
509
- case 0:
510
- jest.useFakeTimers();
511
- onChange = jest.fn();
512
- onDone = jest.fn();
513
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
514
- markup: "<p>Hello World</p>",
515
- onChange: onChange,
516
- onDone: onDone,
517
- toolbarOpts: _objectSpread(_objectSpread({}, defaultProps.toolbarOpts), {}, {
518
- doneOn: 'blur'
519
- })
520
- })));
521
- _context6.next = 1;
522
- return (0, _react2.waitFor)(function () {
523
- expect(_react3.useEditor).toHaveBeenCalled();
524
- });
525
- case 1:
526
- editorConfig = _react3.useEditor.mock.calls[_react3.useEditor.mock.calls.length - 1][0];
527
- blurEditor = {
528
- getHTML: jest.fn(function () {
529
- return '<p>changed</p>';
530
- }),
531
- schema: {},
532
- _insertingImage: true,
533
- _toolbarOpened: false,
534
- isActive: jest.fn(function () {
535
- return false;
536
- })
537
- };
538
- editorConfig.onBlur({
539
- editor: blurEditor
540
- });
541
- jest.advanceTimersByTime(200);
542
- expect(onChange).not.toHaveBeenCalled();
543
- expect(onDone).not.toHaveBeenCalled();
544
- jest.useRealTimers();
545
- case 2:
546
- case "end":
547
- return _context6.stop();
548
- }
549
- }, _callee6);
550
- })));
551
- it('does not run blur onChange/onDone when editor has no schema', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
552
- var onChange, onDone, editorConfig, getHTML, blurEditor;
553
- return _regenerator["default"].wrap(function (_context7) {
554
- while (1) switch (_context7.prev = _context7.next) {
555
- case 0:
556
- jest.useFakeTimers();
557
- onChange = jest.fn();
558
- onDone = jest.fn();
559
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
560
- markup: "<p>Hello World</p>",
561
- onChange: onChange,
562
- onDone: onDone,
563
- toolbarOpts: {
564
- doneOn: 'blur'
565
- }
566
- })));
567
- _context7.next = 1;
568
- return (0, _react2.waitFor)(function () {
569
- expect(_react3.useEditor).toHaveBeenCalled();
570
- });
571
- case 1:
572
- editorConfig = _react3.useEditor.mock.calls[_react3.useEditor.mock.calls.length - 1][0];
573
- getHTML = jest.fn(function () {
574
- return '<p>changed</p>';
575
- });
576
- blurEditor = {
577
- getHTML: getHTML,
578
- schema: undefined,
579
- _insertingImage: false,
580
- _toolbarOpened: false,
581
- isActive: jest.fn(function () {
582
- return false;
583
- })
584
- };
585
- editorConfig.onBlur({
586
- editor: blurEditor
587
- });
588
- jest.advanceTimersByTime(200);
589
- expect(getHTML).not.toHaveBeenCalled();
590
- expect(onChange).not.toHaveBeenCalled();
591
- expect(onDone).not.toHaveBeenCalled();
592
- jest.useRealTimers();
593
- case 2:
594
- case "end":
595
- return _context7.stop();
596
- }
597
- }, _callee7);
598
- })));
599
- it('calls getHTML once on blur and passes the same html to onChange and onDone', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() {
600
- var onChange, onDone, html, editorConfig, getHTML, blurEditor;
601
- return _regenerator["default"].wrap(function (_context8) {
602
- while (1) switch (_context8.prev = _context8.next) {
603
- case 0:
604
- jest.useFakeTimers();
605
- onChange = jest.fn();
606
- onDone = jest.fn();
607
- html = '<p>from editor</p>';
608
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
609
- markup: "<p>Hello World</p>",
610
- onChange: onChange,
611
- onDone: onDone,
612
- toolbarOpts: {
613
- doneOn: 'blur'
614
- }
615
- })));
616
- _context8.next = 1;
617
- return (0, _react2.waitFor)(function () {
618
- expect(_react3.useEditor).toHaveBeenCalled();
619
- });
620
- case 1:
621
- editorConfig = _react3.useEditor.mock.calls[_react3.useEditor.mock.calls.length - 1][0];
622
- getHTML = jest.fn(function () {
623
- return html;
624
- });
625
- blurEditor = {
626
- getHTML: getHTML,
627
- schema: {},
628
- _insertingImage: false,
629
- _toolbarOpened: false,
630
- isActive: jest.fn(function () {
631
- return false;
632
- })
633
- };
634
- editorConfig.onBlur({
635
- editor: blurEditor
636
- });
637
- jest.advanceTimersByTime(200);
638
- expect(getHTML).toHaveBeenCalledTimes(1);
639
- expect(onChange).toHaveBeenCalledWith(html);
640
- expect(onDone).toHaveBeenCalledWith(html);
641
- jest.useRealTimers();
642
- case 2:
643
- case "end":
644
- return _context8.stop();
645
- }
646
- }, _callee8);
647
- })));
648
- describe('onUpdate callback', function () {
649
- it('calls onChange when transaction.isDone is true', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9() {
650
- var onChange, markup, editorConfig, mockEditor, mockTransaction;
651
- return _regenerator["default"].wrap(function (_context9) {
652
- while (1) switch (_context9.prev = _context9.next) {
653
- case 0:
654
- onChange = jest.fn();
655
- markup = '<p>Initial content</p>';
656
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
657
- markup: markup,
658
- onChange: onChange
659
- })));
660
- _context9.next = 1;
661
- return (0, _react2.waitFor)(function () {
662
- expect(_react3.useEditor).toHaveBeenCalled();
663
- });
664
- case 1:
665
- editorConfig = _react3.useEditor.mock.calls[_react3.useEditor.mock.calls.length - 1][0];
666
- mockEditor = {
667
- getHTML: jest.fn(function () {
668
- return '<p>Updated content</p>';
669
- })
670
- };
671
- mockTransaction = {
672
- isDone: true
673
- };
674
- editorConfig.onUpdate({
675
- editor: mockEditor,
676
- transaction: mockTransaction
677
- });
678
- expect(onChange).toHaveBeenCalledWith('<p>Updated content</p>');
679
- case 2:
680
- case "end":
681
- return _context9.stop();
682
- }
683
- }, _callee9);
684
- })));
685
- it('does not call onChange when transaction.isDone is false even if markup differs from editor HTML', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() {
686
- var onChange, markup, editorConfig, mockEditor, mockTransaction;
687
- return _regenerator["default"].wrap(function (_context0) {
688
- while (1) switch (_context0.prev = _context0.next) {
689
- case 0:
690
- onChange = jest.fn();
691
- markup = '<p>Initial content</p>';
692
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
693
- markup: markup,
694
- onChange: onChange
695
- })));
696
- _context0.next = 1;
697
- return (0, _react2.waitFor)(function () {
698
- expect(_react3.useEditor).toHaveBeenCalled();
699
- });
700
- case 1:
701
- editorConfig = _react3.useEditor.mock.calls[_react3.useEditor.mock.calls.length - 1][0];
702
- mockEditor = {
703
- getHTML: jest.fn(function () {
704
- return '<p>Different content</p>';
705
- })
706
- };
707
- mockTransaction = {
708
- isDone: false
709
- };
710
- editorConfig.onUpdate({
711
- editor: mockEditor,
712
- transaction: mockTransaction
713
- });
714
- expect(onChange).not.toHaveBeenCalled();
715
- case 2:
716
- case "end":
717
- return _context0.stop();
718
- }
719
- }, _callee0);
720
- })));
721
- it('does not call onChange when transaction.isDone is false and markup matches editor HTML', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() {
722
- var onChange, markup, editorConfig, mockEditor, mockTransaction;
723
- return _regenerator["default"].wrap(function (_context1) {
724
- while (1) switch (_context1.prev = _context1.next) {
725
- case 0:
726
- onChange = jest.fn();
727
- markup = '<p>Same content</p>';
728
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
729
- markup: markup,
730
- onChange: onChange
731
- })));
732
- _context1.next = 1;
733
- return (0, _react2.waitFor)(function () {
734
- expect(_react3.useEditor).toHaveBeenCalled();
735
- });
736
- case 1:
737
- editorConfig = _react3.useEditor.mock.calls[_react3.useEditor.mock.calls.length - 1][0];
738
- mockEditor = {
739
- getHTML: jest.fn(function () {
740
- return '<p>Same content</p>';
741
- })
742
- };
743
- mockTransaction = {
744
- isDone: false
745
- };
746
- editorConfig.onUpdate({
747
- editor: mockEditor,
748
- transaction: mockTransaction
749
- });
750
- expect(onChange).not.toHaveBeenCalled();
751
- case 2:
752
- case "end":
753
- return _context1.stop();
754
- }
755
- }, _callee1);
756
- })));
757
- it('calls onChange when transaction.isDone is true even if markup matches', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10() {
758
- var onChange, markup, editorConfig, mockEditor, mockTransaction;
759
- return _regenerator["default"].wrap(function (_context10) {
760
- while (1) switch (_context10.prev = _context10.next) {
761
- case 0:
762
- onChange = jest.fn();
763
- markup = '<p>Same content</p>';
764
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
765
- markup: markup,
766
- onChange: onChange
767
- })));
768
- _context10.next = 1;
769
- return (0, _react2.waitFor)(function () {
770
- expect(_react3.useEditor).toHaveBeenCalled();
771
- });
772
- case 1:
773
- editorConfig = _react3.useEditor.mock.calls[_react3.useEditor.mock.calls.length - 1][0];
774
- mockEditor = {
775
- getHTML: jest.fn(function () {
776
- return '<p>Same content</p>';
777
- })
778
- };
779
- mockTransaction = {
780
- isDone: true
781
- };
782
- editorConfig.onUpdate({
783
- editor: mockEditor,
784
- transaction: mockTransaction
785
- });
786
- expect(onChange).toHaveBeenCalledWith('<p>Same content</p>');
787
- case 2:
788
- case "end":
789
- return _context10.stop();
790
- }
791
- }, _callee10);
792
- })));
793
- it('does not call onChange when onChange is not provided', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11() {
794
- var markup, editorConfig, mockEditor, mockTransaction;
795
- return _regenerator["default"].wrap(function (_context11) {
796
- while (1) switch (_context11.prev = _context11.next) {
797
- case 0:
798
- markup = '<p>Content</p>';
799
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
800
- markup: markup,
801
- onChange: undefined
802
- })));
803
- _context11.next = 1;
804
- return (0, _react2.waitFor)(function () {
805
- expect(_react3.useEditor).toHaveBeenCalled();
806
- });
807
- case 1:
808
- editorConfig = _react3.useEditor.mock.calls[_react3.useEditor.mock.calls.length - 1][0];
809
- mockEditor = {
810
- getHTML: jest.fn(function () {
811
- return '<p>Updated content</p>';
812
- })
813
- };
814
- mockTransaction = {
815
- isDone: true
816
- }; // Should not throw error when onChange is undefined
817
- expect(function () {
818
- editorConfig.onUpdate({
819
- editor: mockEditor,
820
- transaction: mockTransaction
821
- });
822
- }).not.toThrow();
823
- case 2:
824
- case "end":
825
- return _context11.stop();
826
- }
827
- }, _callee11);
828
- })));
829
- });
830
- });
831
- //# sourceMappingURL=EditableHtml.test.js.map