@pie-lib/editable-html-tip-tap 2.2.0-beta.6 → 2.2.0-beta.8

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 (96) hide show
  1. package/lib/extensions/math.js.map +1 -1
  2. package/package.json +3 -3
  3. package/src/extensions/__tests__/math.test.js +2 -6
  4. package/src/extensions/math.js +1 -5
  5. package/lib/__tests__/EditableHtml.test.js +0 -831
  6. package/lib/__tests__/EditableHtml.test.js.map +0 -1
  7. package/lib/__tests__/constants.test.js +0 -21
  8. package/lib/__tests__/constants.test.js.map +0 -1
  9. package/lib/__tests__/div-to-paragraph-conversion.test.js +0 -213
  10. package/lib/__tests__/div-to-paragraph-conversion.test.js.map +0 -1
  11. package/lib/__tests__/extensions.test.js +0 -209
  12. package/lib/__tests__/extensions.test.js.map +0 -1
  13. package/lib/__tests__/index.test.js +0 -250
  14. package/lib/__tests__/index.test.js.map +0 -1
  15. package/lib/__tests__/size-utils.test.js +0 -57
  16. package/lib/__tests__/size-utils.test.js.map +0 -1
  17. package/lib/__tests__/theme.test.js +0 -17
  18. package/lib/__tests__/theme.test.js.map +0 -1
  19. package/lib/components/__tests__/AltDialog.test.js +0 -201
  20. package/lib/components/__tests__/AltDialog.test.js.map +0 -1
  21. package/lib/components/__tests__/CharacterPicker.test.js +0 -455
  22. package/lib/components/__tests__/CharacterPicker.test.js.map +0 -1
  23. package/lib/components/__tests__/CssIcon.test.js +0 -58
  24. package/lib/components/__tests__/CssIcon.test.js.map +0 -1
  25. package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
  26. package/lib/components/__tests__/DragInTheBlank.test.js.map +0 -1
  27. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -345
  28. package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +0 -1
  29. package/lib/components/__tests__/ImageToolbar.test.js +0 -185
  30. package/lib/components/__tests__/ImageToolbar.test.js.map +0 -1
  31. package/lib/components/__tests__/InlineDropdown.test.js +0 -839
  32. package/lib/components/__tests__/InlineDropdown.test.js.map +0 -1
  33. package/lib/components/__tests__/InsertImageHandler.test.js +0 -171
  34. package/lib/components/__tests__/InsertImageHandler.test.js.map +0 -1
  35. package/lib/components/__tests__/MediaDialog.test.js +0 -433
  36. package/lib/components/__tests__/MediaDialog.test.js.map +0 -1
  37. package/lib/components/__tests__/MediaToolbar.test.js +0 -126
  38. package/lib/components/__tests__/MediaToolbar.test.js.map +0 -1
  39. package/lib/components/__tests__/MediaWrapper.test.js +0 -96
  40. package/lib/components/__tests__/MediaWrapper.test.js.map +0 -1
  41. package/lib/components/__tests__/MenuBar.test.js +0 -502
  42. package/lib/components/__tests__/MenuBar.test.js.map +0 -1
  43. package/lib/components/__tests__/RespArea.test.js +0 -171
  44. package/lib/components/__tests__/RespArea.test.js.map +0 -1
  45. package/lib/components/__tests__/TableIcons.test.js +0 -153
  46. package/lib/components/__tests__/TableIcons.test.js.map +0 -1
  47. package/lib/components/__tests__/TextAlign.test.js +0 -209
  48. package/lib/components/__tests__/TextAlign.test.js.map +0 -1
  49. package/lib/components/__tests__/TiptapContainer.test.js +0 -196
  50. package/lib/components/__tests__/TiptapContainer.test.js.map +0 -1
  51. package/lib/components/__tests__/characterUtils.test.js +0 -178
  52. package/lib/components/__tests__/characterUtils.test.js.map +0 -1
  53. package/lib/components/__tests__/choice.test.js +0 -213
  54. package/lib/components/__tests__/choice.test.js.map +0 -1
  55. package/lib/components/__tests__/custom-popper.test.js +0 -108
  56. package/lib/components/__tests__/custom-popper.test.js.map +0 -1
  57. package/lib/components/__tests__/done-button.test.js +0 -72
  58. package/lib/components/__tests__/done-button.test.js.map +0 -1
  59. package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
  60. package/lib/components/__tests__/toolbar-buttons.test.js.map +0 -1
  61. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +0 -90
  62. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +0 -1
  63. package/lib/components/respArea/__tests__/MathTemplated.test.js +0 -217
  64. package/lib/components/respArea/__tests__/MathTemplated.test.js.map +0 -1
  65. package/lib/extensions/__tests__/css.test.js +0 -214
  66. package/lib/extensions/__tests__/css.test.js.map +0 -1
  67. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
  68. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +0 -1
  69. package/lib/extensions/__tests__/divNode.test.js +0 -108
  70. package/lib/extensions/__tests__/divNode.test.js.map +0 -1
  71. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +0 -50
  72. package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +0 -1
  73. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -60
  74. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +0 -1
  75. package/lib/extensions/__tests__/extended-list-item.test.js +0 -13
  76. package/lib/extensions/__tests__/extended-list-item.test.js.map +0 -1
  77. package/lib/extensions/__tests__/extended-table-cell.test.js +0 -15
  78. package/lib/extensions/__tests__/extended-table-cell.test.js.map +0 -1
  79. package/lib/extensions/__tests__/extended-table.test.js +0 -200
  80. package/lib/extensions/__tests__/extended-table.test.js.map +0 -1
  81. package/lib/extensions/__tests__/image-component.test.js +0 -432
  82. package/lib/extensions/__tests__/image-component.test.js.map +0 -1
  83. package/lib/extensions/__tests__/image.test.js +0 -313
  84. package/lib/extensions/__tests__/image.test.js.map +0 -1
  85. package/lib/extensions/__tests__/math.test.js +0 -1411
  86. package/lib/extensions/__tests__/math.test.js.map +0 -1
  87. package/lib/extensions/__tests__/media-node-view.test.js +0 -307
  88. package/lib/extensions/__tests__/media-node-view.test.js.map +0 -1
  89. package/lib/extensions/__tests__/media.test.js +0 -292
  90. package/lib/extensions/__tests__/media.test.js.map +0 -1
  91. package/lib/extensions/__tests__/responseArea.test.js +0 -736
  92. package/lib/extensions/__tests__/responseArea.test.js.map +0 -1
  93. package/lib/utils/__tests__/helper.test.js +0 -107
  94. package/lib/utils/__tests__/helper.test.js.map +0 -1
  95. package/lib/utils/__tests__/toolbar.test.js +0 -38
  96. package/lib/utils/__tests__/toolbar.test.js.map +0 -1
@@ -1,96 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _react = _interopRequireDefault(require("react"));
5
- var _react2 = require("@testing-library/react");
6
- var _MediaWrapper = _interopRequireDefault(require("../media/MediaWrapper"));
7
- describe('MediaWrapper', function () {
8
- it('renders without crashing', function () {
9
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, "Content")),
10
- container = _render.container;
11
- expect(container).toBeInTheDocument();
12
- });
13
- it('renders children', function () {
14
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, /*#__PURE__*/_react["default"].createElement("div", null, "Test Content"))),
15
- getByText = _render2.getByText;
16
- expect(getByText('Test Content')).toBeInTheDocument();
17
- });
18
- it('applies default width of 300', function () {
19
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, "Content")),
20
- container = _render3.container;
21
- var wrapper = container.firstChild;
22
- expect(wrapper).toHaveStyle({
23
- width: '300px'
24
- });
25
- });
26
- it('applies custom width from props', function () {
27
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
28
- width: 500
29
- }, "Content")),
30
- container = _render4.container;
31
- var wrapper = container.firstChild;
32
- expect(wrapper).toHaveStyle({
33
- width: '500px'
34
- });
35
- });
36
- it('applies string width', function () {
37
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
38
- width: "50%"
39
- }, "Content")),
40
- container = _render5.container;
41
- var wrapper = container.firstChild;
42
- expect(wrapper).toHaveStyle({
43
- width: '50%'
44
- });
45
- });
46
- it('applies editor styles when editor prop is true', function () {
47
- var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
48
- editor: true
49
- }, "Content")),
50
- container = _render6.container;
51
- var wrapper = container.firstChild;
52
- expect(wrapper).toHaveStyle({
53
- display: 'inline-block',
54
- overflow: 'hidden'
55
- });
56
- });
57
- it('does not apply editor styles when editor prop is false', function () {
58
- var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
59
- editor: false
60
- }, "Content")),
61
- container = _render7.container;
62
- var wrapper = container.firstChild;
63
- expect(wrapper).not.toHaveStyle({
64
- display: 'inline-block'
65
- });
66
- });
67
- it('has relative positioning', function () {
68
- var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, "Content")),
69
- container = _render8.container;
70
- var wrapper = container.firstChild;
71
- expect(wrapper).toHaveStyle({
72
- position: 'relative'
73
- });
74
- });
75
- it('renders multiple children', function () {
76
- var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null, /*#__PURE__*/_react["default"].createElement("div", null, "First"), /*#__PURE__*/_react["default"].createElement("div", null, "Second"))),
77
- getByText = _render9.getByText;
78
- expect(getByText('First')).toBeInTheDocument();
79
- expect(getByText('Second')).toBeInTheDocument();
80
- });
81
- it('passes additional props through', function () {
82
- var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], {
83
- "data-testid": "custom",
84
- className: "custom-class"
85
- }, "Content")),
86
- container = _render0.container;
87
- var wrapper = container.firstChild;
88
- expect(wrapper).toHaveAttribute('data-testid', 'custom');
89
- });
90
- it('renders without children', function () {
91
- var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaWrapper["default"], null)),
92
- container = _render1.container;
93
- expect(container.firstChild).toBeInTheDocument();
94
- });
95
- });
96
- //# sourceMappingURL=MediaWrapper.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MediaWrapper.test.js","names":["_react","_interopRequireDefault","require","_react2","_MediaWrapper","describe","it","_render","render","createElement","container","expect","toBeInTheDocument","_render2","getByText","_render3","wrapper","firstChild","toHaveStyle","width","_render4","_render5","_render6","editor","display","overflow","_render7","not","_render8","position","_render9","_render0","className","toHaveAttribute","_render1"],"sources":["../../../src/components/__tests__/MediaWrapper.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@testing-library/react';\nimport MediaWrapper from '../media/MediaWrapper';\n\ndescribe('MediaWrapper', () => {\n it('renders without crashing', () => {\n const { container } = render(<MediaWrapper>Content</MediaWrapper>);\n expect(container).toBeInTheDocument();\n });\n\n it('renders children', () => {\n const { getByText } = render(\n <MediaWrapper>\n <div>Test Content</div>\n </MediaWrapper>,\n );\n expect(getByText('Test Content')).toBeInTheDocument();\n });\n\n it('applies default width of 300', () => {\n const { container } = render(<MediaWrapper>Content</MediaWrapper>);\n const wrapper = container.firstChild;\n expect(wrapper).toHaveStyle({ width: '300px' });\n });\n\n it('applies custom width from props', () => {\n const { container } = render(<MediaWrapper width={500}>Content</MediaWrapper>);\n const wrapper = container.firstChild;\n expect(wrapper).toHaveStyle({ width: '500px' });\n });\n\n it('applies string width', () => {\n const { container } = render(<MediaWrapper width=\"50%\">Content</MediaWrapper>);\n const wrapper = container.firstChild;\n expect(wrapper).toHaveStyle({ width: '50%' });\n });\n\n it('applies editor styles when editor prop is true', () => {\n const { container } = render(<MediaWrapper editor={true}>Content</MediaWrapper>);\n const wrapper = container.firstChild;\n expect(wrapper).toHaveStyle({ display: 'inline-block', overflow: 'hidden' });\n });\n\n it('does not apply editor styles when editor prop is false', () => {\n const { container } = render(<MediaWrapper editor={false}>Content</MediaWrapper>);\n const wrapper = container.firstChild;\n expect(wrapper).not.toHaveStyle({ display: 'inline-block' });\n });\n\n it('has relative positioning', () => {\n const { container } = render(<MediaWrapper>Content</MediaWrapper>);\n const wrapper = container.firstChild;\n expect(wrapper).toHaveStyle({ position: 'relative' });\n });\n\n it('renders multiple children', () => {\n const { getByText } = render(\n <MediaWrapper>\n <div>First</div>\n <div>Second</div>\n </MediaWrapper>,\n );\n expect(getByText('First')).toBeInTheDocument();\n expect(getByText('Second')).toBeInTheDocument();\n });\n\n it('passes additional props through', () => {\n const { container } = render(\n <MediaWrapper data-testid=\"custom\" className=\"custom-class\">\n Content\n </MediaWrapper>,\n );\n const wrapper = container.firstChild;\n expect(wrapper).toHaveAttribute('data-testid', 'custom');\n });\n\n it('renders without children', () => {\n const { container } = render(<MediaWrapper />);\n expect(container.firstChild).toBeInTheDocument();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,502 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
- var _react = _interopRequireDefault(require("react"));
6
- var _react2 = require("@testing-library/react");
7
- var _MenuBar = _interopRequireDefault(require("../MenuBar"));
8
- jest.mock('@tiptap/react', function () {
9
- return {
10
- EditorContent: function EditorContent(_ref) {
11
- var editor = _ref.editor;
12
- return /*#__PURE__*/_react["default"].createElement("div", {
13
- "data-testid": "editor-content"
14
- });
15
- },
16
- useEditorState: function useEditorState(_ref2) {
17
- var selector = _ref2.selector;
18
- var mockEditor = {
19
- isActive: jest.fn(function () {
20
- return false;
21
- }),
22
- can: jest.fn(function () {
23
- return {
24
- chain: jest.fn(function () {
25
- return {
26
- toggleBold: jest.fn(function () {
27
- return {
28
- run: jest.fn(function () {
29
- return true;
30
- })
31
- };
32
- }),
33
- insertTable: jest.fn(function () {
34
- return {
35
- run: jest.fn(function () {
36
- return true;
37
- })
38
- };
39
- }),
40
- toggleItalic: jest.fn(function () {
41
- return {
42
- run: jest.fn(function () {
43
- return true;
44
- })
45
- };
46
- }),
47
- toggleStrike: jest.fn(function () {
48
- return {
49
- run: jest.fn(function () {
50
- return true;
51
- })
52
- };
53
- }),
54
- toggleCode: jest.fn(function () {
55
- return {
56
- run: jest.fn(function () {
57
- return true;
58
- })
59
- };
60
- }),
61
- unsetAllMarks: jest.fn(function () {
62
- return {
63
- run: jest.fn(function () {
64
- return true;
65
- })
66
- };
67
- }),
68
- undo: jest.fn(function () {
69
- return {
70
- run: jest.fn(function () {
71
- return true;
72
- })
73
- };
74
- }),
75
- redo: jest.fn(function () {
76
- return {
77
- run: jest.fn(function () {
78
- return true;
79
- })
80
- };
81
- })
82
- };
83
- })
84
- };
85
- }),
86
- getAttributes: jest.fn(function () {
87
- return {
88
- border: '1'
89
- };
90
- }),
91
- commandManager: {},
92
- isFocused: true,
93
- state: {
94
- selection: {}
95
- }
96
- };
97
- return selector({
98
- editor: mockEditor
99
- });
100
- }
101
- };
102
- });
103
- jest.mock('prosemirror-state', function () {
104
- return {
105
- NodeSelection: jest.fn()
106
- };
107
- });
108
- jest.mock('../CharacterPicker', function () {
109
- return {
110
- CharacterIcon: function CharacterIcon(_ref3) {
111
- var letter = _ref3.letter;
112
- return /*#__PURE__*/_react["default"].createElement("div", {
113
- "data-testid": "character-icon"
114
- }, letter);
115
- },
116
- CharacterPicker: function CharacterPicker(_ref4) {
117
- var onClose = _ref4.onClose;
118
- return /*#__PURE__*/_react["default"].createElement("div", {
119
- "data-testid": "character-picker"
120
- }, /*#__PURE__*/_react["default"].createElement("button", {
121
- onClick: onClose,
122
- "data-testid": "close-picker"
123
- }, "Close"));
124
- }
125
- };
126
- });
127
- jest.mock('../common/done-button', function () {
128
- return {
129
- DoneButton: function DoneButton(_ref5) {
130
- var onClick = _ref5.onClick;
131
- return /*#__PURE__*/_react["default"].createElement("button", {
132
- onClick: onClick,
133
- "data-testid": "done-button"
134
- }, "Done");
135
- }
136
- };
137
- });
138
- describe('StyledMenuBar', function () {
139
- var mockEditor = {
140
- chain: jest.fn(function () {
141
- return {
142
- focus: jest.fn(function () {
143
- return {
144
- insertTable: jest.fn(function () {
145
- return {
146
- run: jest.fn()
147
- };
148
- }),
149
- toggleBold: jest.fn(function () {
150
- return {
151
- run: jest.fn()
152
- };
153
- }),
154
- toggleItalic: jest.fn(function () {
155
- return {
156
- run: jest.fn()
157
- };
158
- }),
159
- toggleStrike: jest.fn(function () {
160
- return {
161
- run: jest.fn()
162
- };
163
- }),
164
- toggleCode: jest.fn(function () {
165
- return {
166
- run: jest.fn()
167
- };
168
- }),
169
- toggleUnderline: jest.fn(function () {
170
- return {
171
- run: jest.fn()
172
- };
173
- }),
174
- toggleSubscript: jest.fn(function () {
175
- return {
176
- run: jest.fn()
177
- };
178
- }),
179
- toggleSuperscript: jest.fn(function () {
180
- return {
181
- run: jest.fn()
182
- };
183
- }),
184
- setImageUploadNode: jest.fn(function () {
185
- return {
186
- run: jest.fn()
187
- };
188
- }),
189
- insertMedia: jest.fn(function () {
190
- return {
191
- run: jest.fn()
192
- };
193
- }),
194
- toggleHeading: jest.fn(function () {
195
- return {
196
- run: jest.fn()
197
- };
198
- }),
199
- insertMath: jest.fn(function () {
200
- return {
201
- run: jest.fn()
202
- };
203
- }),
204
- toggleBulletList: jest.fn(function () {
205
- return {
206
- run: jest.fn()
207
- };
208
- }),
209
- toggleOrderedList: jest.fn(function () {
210
- return {
211
- run: jest.fn()
212
- };
213
- }),
214
- undo: jest.fn(function () {
215
- return {
216
- run: jest.fn()
217
- };
218
- }),
219
- redo: jest.fn(function () {
220
- return {
221
- run: jest.fn()
222
- };
223
- }),
224
- addRowAfter: jest.fn(function () {
225
- return {
226
- run: jest.fn()
227
- };
228
- }),
229
- deleteRow: jest.fn(function () {
230
- return {
231
- run: jest.fn()
232
- };
233
- }),
234
- addColumnAfter: jest.fn(function () {
235
- return {
236
- run: jest.fn()
237
- };
238
- }),
239
- deleteColumn: jest.fn(function () {
240
- return {
241
- run: jest.fn()
242
- };
243
- }),
244
- deleteTable: jest.fn(function () {
245
- return {
246
- run: jest.fn()
247
- };
248
- }),
249
- insertResponseArea: jest.fn(function () {
250
- return {
251
- run: jest.fn()
252
- };
253
- })
254
- };
255
- })
256
- };
257
- }),
258
- can: jest.fn(function () {
259
- return {
260
- chain: jest.fn(function () {
261
- return {
262
- toggleBold: jest.fn(function () {
263
- return {
264
- run: jest.fn(function () {
265
- return true;
266
- })
267
- };
268
- }),
269
- insertTable: jest.fn(function () {
270
- return {
271
- run: jest.fn(function () {
272
- return true;
273
- })
274
- };
275
- }),
276
- undo: jest.fn(function () {
277
- return {
278
- run: jest.fn(function () {
279
- return true;
280
- })
281
- };
282
- }),
283
- redo: jest.fn(function () {
284
- return {
285
- run: jest.fn(function () {
286
- return true;
287
- })
288
- };
289
- })
290
- };
291
- })
292
- };
293
- }),
294
- isActive: jest.fn(function (name) {
295
- if (name === 'bold') return true;
296
- if (name === 'italic') return false;
297
- return false;
298
- }),
299
- getAttributes: jest.fn(function () {
300
- return {
301
- border: '1'
302
- };
303
- }),
304
- getHTML: jest.fn(function () {
305
- return '<p>Test</p>';
306
- }),
307
- commands: {
308
- blur: jest.fn(),
309
- openCSSClassDialog: jest.fn(),
310
- updateAttributes: jest.fn()
311
- },
312
- isFocused: true,
313
- state: {
314
- selection: {}
315
- },
316
- _toolbarOpened: false
317
- };
318
- var defaultProps = {
319
- editor: mockEditor,
320
- activePlugins: ['bold', 'italic', 'underline', 'table'],
321
- toolbarOpts: {},
322
- responseAreaProps: {
323
- type: 'explicit-constructed-response'
324
- }
325
- };
326
- beforeEach(function () {
327
- jest.clearAllMocks();
328
- });
329
- it('renders without crashing', function () {
330
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
331
- container = _render.container;
332
- expect(container).toBeInTheDocument();
333
- });
334
- it('renders toolbar with buttons', function () {
335
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
336
- container = _render2.container;
337
- var buttons = container.querySelectorAll('button');
338
- expect(buttons.length).toBeGreaterThan(0);
339
- });
340
- it('shows bold button when bold plugin is active', function () {
341
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
342
- container = _render3.container;
343
- expect(container).toBeInTheDocument();
344
- });
345
- it('hides buttons when isTable is true', function () {
346
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
347
- activePlugins: ['table']
348
- }))),
349
- container = _render4.container;
350
- expect(container).toBeInTheDocument();
351
- });
352
- it('shows table buttons when in table context', function () {
353
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
354
- activePlugins: ['table']
355
- }))),
356
- container = _render5.container;
357
- expect(container).toBeInTheDocument();
358
- });
359
- it('handles button clicks', function () {
360
- var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
361
- container = _render6.container;
362
- var button = container.querySelector('button');
363
- if (button) {
364
- _react2.fireEvent.click(button);
365
- }
366
- expect(container).toBeInTheDocument();
367
- });
368
- it('shows done button when toolbarOpts.showDone is true', function () {
369
- var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
370
- toolbarOpts: {
371
- showDone: true
372
- },
373
- onChange: jest.fn()
374
- }))),
375
- getByTestId = _render7.getByTestId;
376
- expect(getByTestId('done-button')).toBeInTheDocument();
377
- });
378
- it('does not show done button when toolbarOpts.showDone is false', function () {
379
- var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
380
- toolbarOpts: {
381
- showDone: false
382
- }
383
- }))),
384
- queryByTestId = _render8.queryByTestId;
385
- expect(queryByTestId('done-button')).not.toBeInTheDocument();
386
- });
387
- it('handles done button click', function () {
388
- var onChange = jest.fn();
389
- var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
390
- toolbarOpts: {
391
- showDone: true
392
- },
393
- onChange: onChange
394
- }))),
395
- getByTestId = _render9.getByTestId;
396
- _react2.fireEvent.click(getByTestId('done-button'));
397
- expect(onChange).toHaveBeenCalledWith('<p>Test</p>');
398
- expect(mockEditor.commands.blur).toHaveBeenCalled();
399
- });
400
- it('applies custom minWidth from toolbarOpts', function () {
401
- var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
402
- toolbarOpts: {
403
- minWidth: 500
404
- }
405
- }))),
406
- container = _render0.container;
407
- var toolbar = container.querySelector('.toolbar');
408
- expect(toolbar).toHaveStyle({
409
- minWidth: '500px'
410
- });
411
- });
412
- it('applies hidden class when toolbarOpts.isHidden is true', function () {
413
- var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
414
- toolbarOpts: {
415
- isHidden: true
416
- }
417
- }))),
418
- container = _render1.container;
419
- var toolbar = container.querySelector('.toolbar');
420
- expect(toolbar).toHaveClass('hidden');
421
- });
422
- it('shows character picker when language character button is clicked', function () {
423
- var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
424
- activePlugins: ['languageCharacters']
425
- }))),
426
- container = _render10.container,
427
- queryByTestId = _render10.queryByTestId;
428
- expect(queryByTestId('character-picker')).not.toBeInTheDocument();
429
- });
430
- it('applies focused class when editor is focused', function () {
431
- var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
432
- toolbarOpts: {
433
- alwaysVisible: false
434
- }
435
- }))),
436
- container = _render11.container;
437
- var toolbar = container.querySelector('.toolbar');
438
- expect(toolbar).toHaveClass('focused');
439
- });
440
- it('shows response area button when responseArea plugin is active', function () {
441
- var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
442
- activePlugins: ['responseArea']
443
- }))),
444
- container = _render12.container;
445
- expect(container).toBeInTheDocument();
446
- });
447
- it('prevents default on mouse down', function () {
448
- var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], defaultProps)),
449
- container = _render13.container;
450
- var toolbar = container.querySelector('.toolbar');
451
- var event = new MouseEvent('mousedown', {
452
- bubbles: true,
453
- cancelable: true
454
- });
455
- var preventDefaultSpy = jest.spyOn(event, 'preventDefault');
456
- toolbar === null || toolbar === void 0 || toolbar.dispatchEvent(event);
457
- expect(preventDefaultSpy).toHaveBeenCalled();
458
- });
459
- it('calculates hasTextSelectionInTable correctly when selection is not empty in table', function () {
460
- // This test verifies the hasTextSelectionInTable state computation
461
- var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
462
- activePlugins: ['table', 'bold', 'italic']
463
- }))),
464
- container = _render14.container;
465
- expect(container).toBeInTheDocument();
466
- });
467
- it('hides table manipulation buttons when text is selected in table', function () {
468
- // When hasTextSelectionInTable is true, table row/column buttons should be hidden
469
- var _render15 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
470
- activePlugins: ['table']
471
- }))),
472
- container = _render15.container;
473
- // The component should render but table manipulation buttons should be conditional
474
- expect(container).toBeInTheDocument();
475
- });
476
- it('shows table manipulation buttons when no text is selected in table', function () {
477
- // When hasTextSelectionInTable is false, table row/column buttons should be visible
478
- var _render16 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
479
- activePlugins: ['table']
480
- }))),
481
- container = _render16.container;
482
- expect(container).toBeInTheDocument();
483
- });
484
- it('shows text formatting buttons regardless of table state', function () {
485
- // Bold, italic, etc. should always be visible when their plugin is active
486
- var _render17 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
487
- activePlugins: ['bold', 'italic', 'underline']
488
- }))),
489
- container = _render17.container;
490
- var buttons = container.querySelectorAll('button');
491
- expect(buttons.length).toBeGreaterThan(0);
492
- });
493
- it('does not hide text formatting buttons when in table', function () {
494
- // Verify that the removal of "|| state.isTable" condition works correctly
495
- var _render18 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
496
- activePlugins: ['table', 'bold', 'italic']
497
- }))),
498
- container = _render18.container;
499
- expect(container).toBeInTheDocument();
500
- });
501
- });
502
- //# sourceMappingURL=MenuBar.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MenuBar.test.js","names":["_react","_interopRequireDefault","require","_react2","_MenuBar","jest","mock","EditorContent","_ref","editor","createElement","useEditorState","_ref2","selector","mockEditor","isActive","fn","can","chain","toggleBold","run","insertTable","toggleItalic","toggleStrike","toggleCode","unsetAllMarks","undo","redo","getAttributes","border","commandManager","isFocused","state","selection","NodeSelection","CharacterIcon","_ref3","letter","CharacterPicker","_ref4","onClose","onClick","DoneButton","_ref5","describe","focus","toggleUnderline","toggleSubscript","toggleSuperscript","setImageUploadNode","insertMedia","toggleHeading","insertMath","toggleBulletList","toggleOrderedList","addRowAfter","deleteRow","addColumnAfter","deleteColumn","deleteTable","insertResponseArea","name","getHTML","commands","blur","openCSSClassDialog","updateAttributes","_toolbarOpened","defaultProps","activePlugins","toolbarOpts","responseAreaProps","type","beforeEach","clearAllMocks","it","_render","render","container","expect","toBeInTheDocument","_render2","buttons","querySelectorAll","length","toBeGreaterThan","_render3","_render4","_extends2","_render5","_render6","button","querySelector","fireEvent","click","_render7","showDone","onChange","getByTestId","_render8","queryByTestId","not","_render9","toHaveBeenCalledWith","toHaveBeenCalled","_render0","minWidth","toolbar","toHaveStyle","_render1","isHidden","toHaveClass","_render10","_render11","alwaysVisible","_render12","_render13","event","MouseEvent","bubbles","cancelable","preventDefaultSpy","spyOn","dispatchEvent","_render14","_render15","_render16","_render17","_render18"],"sources":["../../../src/components/__tests__/MenuBar.test.jsx"],"sourcesContent":["import React from 'react';\nimport { fireEvent, render } from '@testing-library/react';\nimport StyledMenuBar from '../MenuBar';\n\njest.mock('@tiptap/react', () => ({\n EditorContent: ({ editor }) => <div data-testid=\"editor-content\" />,\n useEditorState: ({ selector }) => {\n const mockEditor = {\n isActive: jest.fn(() => false),\n can: jest.fn(() => ({\n chain: jest.fn(() => ({\n toggleBold: jest.fn(() => ({ run: jest.fn(() => true) })),\n insertTable: jest.fn(() => ({ run: jest.fn(() => true) })),\n toggleItalic: jest.fn(() => ({ run: jest.fn(() => true) })),\n toggleStrike: jest.fn(() => ({ run: jest.fn(() => true) })),\n toggleCode: jest.fn(() => ({ run: jest.fn(() => true) })),\n unsetAllMarks: jest.fn(() => ({ run: jest.fn(() => true) })),\n undo: jest.fn(() => ({ run: jest.fn(() => true) })),\n redo: jest.fn(() => ({ run: jest.fn(() => true) })),\n })),\n })),\n getAttributes: jest.fn(() => ({ border: '1' })),\n commandManager: {},\n isFocused: true,\n state: {\n selection: {},\n },\n };\n\n return selector({ editor: mockEditor });\n },\n}));\n\njest.mock('prosemirror-state', () => ({\n NodeSelection: jest.fn(),\n}));\n\njest.mock('../CharacterPicker', () => ({\n CharacterIcon: ({ letter }) => <div data-testid=\"character-icon\">{letter}</div>,\n CharacterPicker: ({ onClose }) => (\n <div data-testid=\"character-picker\">\n <button onClick={onClose} data-testid=\"close-picker\">\n Close\n </button>\n </div>\n ),\n}));\n\njest.mock('../common/done-button', () => ({\n DoneButton: ({ onClick }) => (\n <button onClick={onClick} data-testid=\"done-button\">\n Done\n </button>\n ),\n}));\n\ndescribe('StyledMenuBar', () => {\n const mockEditor = {\n chain: jest.fn(() => ({\n focus: jest.fn(() => ({\n insertTable: jest.fn(() => ({ run: jest.fn() })),\n toggleBold: jest.fn(() => ({ run: jest.fn() })),\n toggleItalic: jest.fn(() => ({ run: jest.fn() })),\n toggleStrike: jest.fn(() => ({ run: jest.fn() })),\n toggleCode: jest.fn(() => ({ run: jest.fn() })),\n toggleUnderline: jest.fn(() => ({ run: jest.fn() })),\n toggleSubscript: jest.fn(() => ({ run: jest.fn() })),\n toggleSuperscript: jest.fn(() => ({ run: jest.fn() })),\n setImageUploadNode: jest.fn(() => ({ run: jest.fn() })),\n insertMedia: jest.fn(() => ({ run: jest.fn() })),\n toggleHeading: jest.fn(() => ({ run: jest.fn() })),\n insertMath: jest.fn(() => ({ run: jest.fn() })),\n toggleBulletList: jest.fn(() => ({ run: jest.fn() })),\n toggleOrderedList: jest.fn(() => ({ run: jest.fn() })),\n undo: jest.fn(() => ({ run: jest.fn() })),\n redo: jest.fn(() => ({ run: jest.fn() })),\n addRowAfter: jest.fn(() => ({ run: jest.fn() })),\n deleteRow: jest.fn(() => ({ run: jest.fn() })),\n addColumnAfter: jest.fn(() => ({ run: jest.fn() })),\n deleteColumn: jest.fn(() => ({ run: jest.fn() })),\n deleteTable: jest.fn(() => ({ run: jest.fn() })),\n insertResponseArea: jest.fn(() => ({ run: jest.fn() })),\n })),\n })),\n can: jest.fn(() => ({\n chain: jest.fn(() => ({\n toggleBold: jest.fn(() => ({ run: jest.fn(() => true) })),\n insertTable: jest.fn(() => ({ run: jest.fn(() => true) })),\n undo: jest.fn(() => ({ run: jest.fn(() => true) })),\n redo: jest.fn(() => ({ run: jest.fn(() => true) })),\n })),\n })),\n isActive: jest.fn((name) => {\n if (name === 'bold') return true;\n if (name === 'italic') return false;\n return false;\n }),\n getAttributes: jest.fn(() => ({ border: '1' })),\n getHTML: jest.fn(() => '<p>Test</p>'),\n commands: {\n blur: jest.fn(),\n openCSSClassDialog: jest.fn(),\n updateAttributes: jest.fn(),\n },\n isFocused: true,\n state: {\n selection: {},\n },\n _toolbarOpened: false,\n };\n\n const defaultProps = {\n editor: mockEditor,\n activePlugins: ['bold', 'italic', 'underline', 'table'],\n toolbarOpts: {},\n responseAreaProps: { type: 'explicit-constructed-response' },\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it('renders without crashing', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders toolbar with buttons', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} />);\n const buttons = container.querySelectorAll('button');\n expect(buttons.length).toBeGreaterThan(0);\n });\n\n it('shows bold button when bold plugin is active', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('hides buttons when isTable is true', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} activePlugins={['table']} />);\n expect(container).toBeInTheDocument();\n });\n\n it('shows table buttons when in table context', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} activePlugins={['table']} />);\n expect(container).toBeInTheDocument();\n });\n\n it('handles button clicks', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} />);\n const button = container.querySelector('button');\n if (button) {\n fireEvent.click(button);\n }\n expect(container).toBeInTheDocument();\n });\n\n it('shows done button when toolbarOpts.showDone is true', () => {\n const { getByTestId } = render(\n <StyledMenuBar {...defaultProps} toolbarOpts={{ showDone: true }} onChange={jest.fn()} />,\n );\n expect(getByTestId('done-button')).toBeInTheDocument();\n });\n\n it('does not show done button when toolbarOpts.showDone is false', () => {\n const { queryByTestId } = render(<StyledMenuBar {...defaultProps} toolbarOpts={{ showDone: false }} />);\n expect(queryByTestId('done-button')).not.toBeInTheDocument();\n });\n\n it('handles done button click', () => {\n const onChange = jest.fn();\n const { getByTestId } = render(\n <StyledMenuBar {...defaultProps} toolbarOpts={{ showDone: true }} onChange={onChange} />,\n );\n fireEvent.click(getByTestId('done-button'));\n expect(onChange).toHaveBeenCalledWith('<p>Test</p>');\n expect(mockEditor.commands.blur).toHaveBeenCalled();\n });\n\n it('applies custom minWidth from toolbarOpts', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} toolbarOpts={{ minWidth: 500 }} />);\n const toolbar = container.querySelector('.toolbar');\n expect(toolbar).toHaveStyle({ minWidth: '500px' });\n });\n\n it('applies hidden class when toolbarOpts.isHidden is true', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} toolbarOpts={{ isHidden: true }} />);\n const toolbar = container.querySelector('.toolbar');\n expect(toolbar).toHaveClass('hidden');\n });\n\n it('shows character picker when language character button is clicked', () => {\n const { container, queryByTestId } = render(\n <StyledMenuBar {...defaultProps} activePlugins={['languageCharacters']} />,\n );\n expect(queryByTestId('character-picker')).not.toBeInTheDocument();\n });\n\n it('applies focused class when editor is focused', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} toolbarOpts={{ alwaysVisible: false }} />);\n const toolbar = container.querySelector('.toolbar');\n expect(toolbar).toHaveClass('focused');\n });\n\n it('shows response area button when responseArea plugin is active', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} activePlugins={['responseArea']} />);\n expect(container).toBeInTheDocument();\n });\n\n it('prevents default on mouse down', () => {\n const { container } = render(<StyledMenuBar {...defaultProps} />);\n const toolbar = container.querySelector('.toolbar');\n const event = new MouseEvent('mousedown', { bubbles: true, cancelable: true });\n const preventDefaultSpy = jest.spyOn(event, 'preventDefault');\n toolbar?.dispatchEvent(event);\n expect(preventDefaultSpy).toHaveBeenCalled();\n });\n\n it('calculates hasTextSelectionInTable correctly when selection is not empty in table', () => {\n // This test verifies the hasTextSelectionInTable state computation\n const { container } = render(<StyledMenuBar {...defaultProps} activePlugins={['table', 'bold', 'italic']} />);\n expect(container).toBeInTheDocument();\n });\n\n it('hides table manipulation buttons when text is selected in table', () => {\n // When hasTextSelectionInTable is true, table row/column buttons should be hidden\n const { container } = render(<StyledMenuBar {...defaultProps} activePlugins={['table']} />);\n // The component should render but table manipulation buttons should be conditional\n expect(container).toBeInTheDocument();\n });\n\n it('shows table manipulation buttons when no text is selected in table', () => {\n // When hasTextSelectionInTable is false, table row/column buttons should be visible\n const { container } = render(<StyledMenuBar {...defaultProps} activePlugins={['table']} />);\n expect(container).toBeInTheDocument();\n });\n\n it('shows text formatting buttons regardless of table state', () => {\n // Bold, italic, etc. should always be visible when their plugin is active\n const { container } = render(<StyledMenuBar {...defaultProps} activePlugins={['bold', 'italic', 'underline']} />);\n const buttons = container.querySelectorAll('button');\n expect(buttons.length).toBeGreaterThan(0);\n });\n\n it('does not hide text formatting buttons when in table', () => {\n // Verify that the removal of \"|| state.isTable\" condition works correctly\n const { container } = render(<StyledMenuBar {...defaultProps} activePlugins={['table', 'bold', 'italic']} />);\n expect(container).toBeInTheDocument();\n });\n});\n"],"mappings":"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","ignoreList":[]}