@pie-lib/editable-html-tip-tap 2.1.11 → 2.2.0-beta.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 (99) hide show
  1. package/CHANGELOG.md +0 -84
  2. package/lib/__tests__/EditableHtml.test.js +831 -0
  3. package/lib/__tests__/EditableHtml.test.js.map +1 -0
  4. package/lib/__tests__/constants.test.js +21 -0
  5. package/lib/__tests__/constants.test.js.map +1 -0
  6. package/lib/__tests__/div-to-paragraph-conversion.test.js +213 -0
  7. package/lib/__tests__/div-to-paragraph-conversion.test.js.map +1 -0
  8. package/lib/__tests__/extensions.test.js +209 -0
  9. package/lib/__tests__/extensions.test.js.map +1 -0
  10. package/lib/__tests__/index.test.js +250 -0
  11. package/lib/__tests__/index.test.js.map +1 -0
  12. package/lib/__tests__/size-utils.test.js +57 -0
  13. package/lib/__tests__/size-utils.test.js.map +1 -0
  14. package/lib/__tests__/theme.test.js +17 -0
  15. package/lib/__tests__/theme.test.js.map +1 -0
  16. package/lib/components/__tests__/AltDialog.test.js +201 -0
  17. package/lib/components/__tests__/AltDialog.test.js.map +1 -0
  18. package/lib/components/__tests__/CharacterPicker.test.js +455 -0
  19. package/lib/components/__tests__/CharacterPicker.test.js.map +1 -0
  20. package/lib/components/__tests__/CssIcon.test.js +58 -0
  21. package/lib/components/__tests__/CssIcon.test.js.map +1 -0
  22. package/lib/components/__tests__/DragInTheBlank.test.js +295 -0
  23. package/lib/components/__tests__/DragInTheBlank.test.js.map +1 -0
  24. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +345 -0
  25. package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +1 -0
  26. package/lib/components/__tests__/ImageToolbar.test.js +185 -0
  27. package/lib/components/__tests__/ImageToolbar.test.js.map +1 -0
  28. package/lib/components/__tests__/InlineDropdown.test.js +839 -0
  29. package/lib/components/__tests__/InlineDropdown.test.js.map +1 -0
  30. package/lib/components/__tests__/InsertImageHandler.test.js +171 -0
  31. package/lib/components/__tests__/InsertImageHandler.test.js.map +1 -0
  32. package/lib/components/__tests__/MediaDialog.test.js +433 -0
  33. package/lib/components/__tests__/MediaDialog.test.js.map +1 -0
  34. package/lib/components/__tests__/MediaToolbar.test.js +126 -0
  35. package/lib/components/__tests__/MediaToolbar.test.js.map +1 -0
  36. package/lib/components/__tests__/MediaWrapper.test.js +96 -0
  37. package/lib/components/__tests__/MediaWrapper.test.js.map +1 -0
  38. package/lib/components/__tests__/MenuBar.test.js +502 -0
  39. package/lib/components/__tests__/MenuBar.test.js.map +1 -0
  40. package/lib/components/__tests__/RespArea.test.js +171 -0
  41. package/lib/components/__tests__/RespArea.test.js.map +1 -0
  42. package/lib/components/__tests__/TableIcons.test.js +153 -0
  43. package/lib/components/__tests__/TableIcons.test.js.map +1 -0
  44. package/lib/components/__tests__/TextAlign.test.js +209 -0
  45. package/lib/components/__tests__/TextAlign.test.js.map +1 -0
  46. package/lib/components/__tests__/TiptapContainer.test.js +196 -0
  47. package/lib/components/__tests__/TiptapContainer.test.js.map +1 -0
  48. package/lib/components/__tests__/characterUtils.test.js +178 -0
  49. package/lib/components/__tests__/characterUtils.test.js.map +1 -0
  50. package/lib/components/__tests__/choice.test.js +213 -0
  51. package/lib/components/__tests__/choice.test.js.map +1 -0
  52. package/lib/components/__tests__/custom-popper.test.js +108 -0
  53. package/lib/components/__tests__/custom-popper.test.js.map +1 -0
  54. package/lib/components/__tests__/done-button.test.js +72 -0
  55. package/lib/components/__tests__/done-button.test.js.map +1 -0
  56. package/lib/components/__tests__/toolbar-buttons.test.js +277 -0
  57. package/lib/components/__tests__/toolbar-buttons.test.js.map +1 -0
  58. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +90 -0
  59. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +1 -0
  60. package/lib/components/respArea/MathTemplated.js +2 -2
  61. package/lib/components/respArea/MathTemplated.js.map +1 -1
  62. package/lib/components/respArea/__tests__/MathTemplated.test.js +217 -0
  63. package/lib/components/respArea/__tests__/MathTemplated.test.js.map +1 -0
  64. package/lib/extensions/__tests__/css.test.js +214 -0
  65. package/lib/extensions/__tests__/css.test.js.map +1 -0
  66. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +175 -0
  67. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +1 -0
  68. package/lib/extensions/__tests__/divNode.test.js +108 -0
  69. package/lib/extensions/__tests__/divNode.test.js.map +1 -0
  70. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +50 -0
  71. package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +1 -0
  72. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +60 -0
  73. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +1 -0
  74. package/lib/extensions/__tests__/extended-list-item.test.js +13 -0
  75. package/lib/extensions/__tests__/extended-list-item.test.js.map +1 -0
  76. package/lib/extensions/__tests__/extended-table-cell.test.js +15 -0
  77. package/lib/extensions/__tests__/extended-table-cell.test.js.map +1 -0
  78. package/lib/extensions/__tests__/extended-table.test.js +200 -0
  79. package/lib/extensions/__tests__/extended-table.test.js.map +1 -0
  80. package/lib/extensions/__tests__/image-component.test.js +432 -0
  81. package/lib/extensions/__tests__/image-component.test.js.map +1 -0
  82. package/lib/extensions/__tests__/image.test.js +313 -0
  83. package/lib/extensions/__tests__/image.test.js.map +1 -0
  84. package/lib/extensions/__tests__/math.test.js +1399 -0
  85. package/lib/extensions/__tests__/math.test.js.map +1 -0
  86. package/lib/extensions/__tests__/media-node-view.test.js +307 -0
  87. package/lib/extensions/__tests__/media-node-view.test.js.map +1 -0
  88. package/lib/extensions/__tests__/media.test.js +292 -0
  89. package/lib/extensions/__tests__/media.test.js.map +1 -0
  90. package/lib/extensions/__tests__/responseArea.test.js +736 -0
  91. package/lib/extensions/__tests__/responseArea.test.js.map +1 -0
  92. package/lib/utils/__tests__/helper.test.js +107 -0
  93. package/lib/utils/__tests__/helper.test.js.map +1 -0
  94. package/lib/utils/__tests__/toolbar.test.js +38 -0
  95. package/lib/utils/__tests__/toolbar.test.js.map +1 -0
  96. package/package.json +7 -7
  97. package/src/components/respArea/MathTemplated.jsx +1 -1
  98. package/src/components/respArea/__tests__/MathTemplated.test.jsx +1 -1
  99. package/LICENSE.md +0 -5
@@ -0,0 +1,433 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _react2 = require("@testing-library/react");
9
+ var _MediaDialog = require("../media/MediaDialog");
10
+ global.fetch = jest.fn();
11
+ jest.mock('@mui/material/Dialog', function () {
12
+ return {
13
+ __esModule: true,
14
+ "default": function _default(_ref) {
15
+ var children = _ref.children,
16
+ open = _ref.open;
17
+ return open && /*#__PURE__*/_react["default"].createElement("div", {
18
+ "data-testid": "dialog"
19
+ }, children);
20
+ }
21
+ };
22
+ });
23
+ jest.mock('@mui/material/DialogTitle', function () {
24
+ return {
25
+ __esModule: true,
26
+ "default": function _default(_ref2) {
27
+ var children = _ref2.children;
28
+ return /*#__PURE__*/_react["default"].createElement("div", {
29
+ "data-testid": "dialog-title"
30
+ }, children);
31
+ }
32
+ };
33
+ });
34
+ jest.mock('@mui/material/DialogContent', function () {
35
+ return {
36
+ __esModule: true,
37
+ "default": function _default(_ref3) {
38
+ var children = _ref3.children;
39
+ return /*#__PURE__*/_react["default"].createElement("div", {
40
+ "data-testid": "dialog-content"
41
+ }, children);
42
+ }
43
+ };
44
+ });
45
+ jest.mock('@mui/material/DialogContentText', function () {
46
+ return {
47
+ __esModule: true,
48
+ "default": function _default(_ref4) {
49
+ var children = _ref4.children;
50
+ return /*#__PURE__*/_react["default"].createElement("div", null, children);
51
+ }
52
+ };
53
+ });
54
+ jest.mock('@mui/material/DialogActions', function () {
55
+ return {
56
+ __esModule: true,
57
+ "default": function _default(_ref5) {
58
+ var children = _ref5.children;
59
+ return /*#__PURE__*/_react["default"].createElement("div", {
60
+ "data-testid": "dialog-actions"
61
+ }, children);
62
+ }
63
+ };
64
+ });
65
+ jest.mock('@mui/material/Button', function () {
66
+ return {
67
+ __esModule: true,
68
+ "default": function _default(_ref6) {
69
+ var children = _ref6.children,
70
+ onClick = _ref6.onClick,
71
+ disabled = _ref6.disabled;
72
+ return /*#__PURE__*/_react["default"].createElement("button", {
73
+ onClick: onClick,
74
+ disabled: disabled
75
+ }, children);
76
+ }
77
+ };
78
+ });
79
+ jest.mock('@mui/material/TextField', function () {
80
+ return {
81
+ __esModule: true,
82
+ "default": function _default(_ref7) {
83
+ var value = _ref7.value,
84
+ onChange = _ref7.onChange,
85
+ label = _ref7.label,
86
+ placeholder = _ref7.placeholder,
87
+ inputProps = _ref7.inputProps;
88
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", null, label), /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
89
+ value: value === undefined ? '' : value,
90
+ onChange: onChange,
91
+ placeholder: placeholder,
92
+ "aria-label": label
93
+ }, inputProps)));
94
+ }
95
+ };
96
+ });
97
+ jest.mock('@mui/material/Tabs', function () {
98
+ return {
99
+ __esModule: true,
100
+ "default": function _default(_ref8) {
101
+ var children = _ref8.children,
102
+ value = _ref8.value,
103
+ onChange = _ref8.onChange;
104
+ return /*#__PURE__*/_react["default"].createElement("div", {
105
+ "data-testid": "tabs",
106
+ "data-value": value
107
+ }, children);
108
+ }
109
+ };
110
+ });
111
+ jest.mock('@mui/material/Tab', function () {
112
+ return {
113
+ __esModule: true,
114
+ "default": function _default(_ref9) {
115
+ var label = _ref9.label,
116
+ onClick = _ref9.onClick;
117
+ return /*#__PURE__*/_react["default"].createElement("button", {
118
+ onClick: onClick,
119
+ "data-testid": "tab"
120
+ }, label);
121
+ }
122
+ };
123
+ });
124
+ jest.mock('@mui/material/Typography', function () {
125
+ return {
126
+ __esModule: true,
127
+ "default": function _default(_ref0) {
128
+ var children = _ref0.children;
129
+ return /*#__PURE__*/_react["default"].createElement("div", null, children);
130
+ }
131
+ };
132
+ });
133
+ jest.mock('@mui/material/IconButton', function () {
134
+ return {
135
+ __esModule: true,
136
+ "default": function _default(_ref1) {
137
+ var children = _ref1.children,
138
+ onClick = _ref1.onClick;
139
+ return /*#__PURE__*/_react["default"].createElement("button", {
140
+ onClick: onClick
141
+ }, children);
142
+ }
143
+ };
144
+ });
145
+ jest.mock('@mui/icons-material/Delete', function () {
146
+ return {
147
+ __esModule: true,
148
+ "default": function _default() {
149
+ return /*#__PURE__*/_react["default"].createElement("svg", {
150
+ "data-testid": "delete-icon"
151
+ });
152
+ }
153
+ };
154
+ });
155
+ describe('MediaDialog', function () {
156
+ var defaultProps = {
157
+ open: true,
158
+ handleClose: jest.fn(),
159
+ type: 'video'
160
+ };
161
+ beforeEach(function () {
162
+ jest.clearAllMocks();
163
+ global.fetch.mockClear();
164
+ });
165
+ it('renders without crashing', function () {
166
+ var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, defaultProps)),
167
+ container = _render.container;
168
+ expect(container).toBeInTheDocument();
169
+ });
170
+ it('renders dialog title for video', function () {
171
+ var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
172
+ type: "video"
173
+ }))),
174
+ getByText = _render2.getByText;
175
+ expect(getByText('Insert Video')).toBeInTheDocument();
176
+ });
177
+ it('renders dialog title for audio', function () {
178
+ var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
179
+ type: "audio"
180
+ }))),
181
+ getByText = _render3.getByText;
182
+ expect(getByText('Insert Audio')).toBeInTheDocument();
183
+ });
184
+ it('renders URL input field', function () {
185
+ var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, defaultProps)),
186
+ getByLabelText = _render4.getByLabelText;
187
+ expect(getByLabelText('URL')).toBeInTheDocument();
188
+ });
189
+ it('renders Cancel button', function () {
190
+ var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, defaultProps)),
191
+ getByText = _render5.getByText;
192
+ expect(getByText('Cancel')).toBeInTheDocument();
193
+ });
194
+ it('renders Insert button', function () {
195
+ var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, defaultProps)),
196
+ getByText = _render6.getByText;
197
+ expect(getByText('Insert')).toBeInTheDocument();
198
+ });
199
+ it('calls handleClose with false when Cancel is clicked', function () {
200
+ var handleClose = jest.fn();
201
+ var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
202
+ handleClose: handleClose
203
+ }))),
204
+ getByText = _render7.getByText;
205
+ _react2.fireEvent.click(getByText('Cancel'));
206
+ expect(handleClose).toHaveBeenCalledWith(false);
207
+ });
208
+ it('disables Insert button when URL is invalid', function () {
209
+ var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, defaultProps)),
210
+ getByText = _render8.getByText;
211
+ var insertButton = getByText('Insert');
212
+ expect(insertButton).toBeDisabled();
213
+ });
214
+ it('shows video properties fields for video type', function () {
215
+ var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
216
+ type: "video"
217
+ }))),
218
+ getByLabelText = _render9.getByLabelText;
219
+ expect(getByLabelText('Width')).toBeInTheDocument();
220
+ expect(getByLabelText('Height')).toBeInTheDocument();
221
+ });
222
+ it('shows starts and ends fields for video', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
223
+ var _render0, getByLabelText, getByPlaceholderText;
224
+ return _regenerator["default"].wrap(function (_context) {
225
+ while (1) switch (_context.prev = _context.next) {
226
+ case 0:
227
+ _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
228
+ type: "video",
229
+ url: "https://youtube.com/watch?v=abc"
230
+ }))), getByLabelText = _render0.getByLabelText, getByPlaceholderText = _render0.getByPlaceholderText;
231
+ _context.next = 1;
232
+ return (0, _react2.waitFor)(function () {
233
+ var urlInput = getByPlaceholderText('Paste URL of video...');
234
+ _react2.fireEvent.change(urlInput, {
235
+ target: {
236
+ value: 'https://youtube.com/watch?v=abc123'
237
+ }
238
+ });
239
+ });
240
+ case 1:
241
+ case "end":
242
+ return _context.stop();
243
+ }
244
+ }, _callee);
245
+ })));
246
+ it('updates width on change', function () {
247
+ var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
248
+ type: "video"
249
+ }))),
250
+ getByLabelText = _render1.getByLabelText;
251
+ var widthInput = getByLabelText('Width');
252
+ _react2.fireEvent.change(widthInput, {
253
+ target: {
254
+ value: '800'
255
+ }
256
+ });
257
+ expect(widthInput.value).toBe('800');
258
+ });
259
+ it('updates height on change', function () {
260
+ var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
261
+ type: "video"
262
+ }))),
263
+ getByLabelText = _render10.getByLabelText;
264
+ var heightInput = getByLabelText('Height');
265
+ _react2.fireEvent.change(heightInput, {
266
+ target: {
267
+ value: '600'
268
+ }
269
+ });
270
+ expect(heightInput.value).toBe('600');
271
+ });
272
+ it('has default width of 560', function () {
273
+ var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
274
+ type: "video"
275
+ }))),
276
+ getByLabelText = _render11.getByLabelText;
277
+ var widthInput = getByLabelText('Width');
278
+ expect(widthInput.value).toBe('560');
279
+ });
280
+ it('has default height of 315', function () {
281
+ var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
282
+ type: "video"
283
+ }))),
284
+ getByLabelText = _render12.getByLabelText;
285
+ var heightInput = getByLabelText('Height');
286
+ expect(heightInput.value).toBe('315');
287
+ });
288
+ it('shows Insert URL tab', function () {
289
+ var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
290
+ type: "video"
291
+ }))),
292
+ getByText = _render13.getByText;
293
+ expect(getByText('Insert YouTube, Vimeo, or Google Drive URL')).toBeInTheDocument();
294
+ });
295
+ it('shows Insert URL tab for audio', function () {
296
+ var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
297
+ type: "audio"
298
+ }))),
299
+ getByText = _render14.getByText;
300
+ expect(getByText('Insert SoundCloud URL')).toBeInTheDocument();
301
+ });
302
+ it('shows Upload file tab when uploadSoundSupport is provided', function () {
303
+ var uploadSoundSupport = {
304
+ add: jest.fn(),
305
+ "delete": jest.fn()
306
+ };
307
+ var _render15 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
308
+ type: "audio",
309
+ uploadSoundSupport: uploadSoundSupport
310
+ }))),
311
+ getByText = _render15.getByText;
312
+ expect(getByText('Upload file')).toBeInTheDocument();
313
+ });
314
+ it('does not show Upload file tab for video', function () {
315
+ var uploadSoundSupport = {
316
+ add: jest.fn(),
317
+ "delete": jest.fn()
318
+ };
319
+ var _render16 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
320
+ type: "video",
321
+ uploadSoundSupport: uploadSoundSupport
322
+ }))),
323
+ queryByText = _render16.queryByText;
324
+ expect(queryByText('Upload file')).not.toBeInTheDocument();
325
+ });
326
+ it('changes tab on tab click', function () {
327
+ var uploadSoundSupport = {
328
+ add: jest.fn(),
329
+ "delete": jest.fn()
330
+ };
331
+ var _render17 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
332
+ type: "audio",
333
+ uploadSoundSupport: uploadSoundSupport
334
+ }))),
335
+ getByText = _render17.getByText;
336
+ var insertUrlTab = getByText('Insert SoundCloud URL');
337
+ _react2.fireEvent.click(insertUrlTab);
338
+ expect(insertUrlTab).toBeInTheDocument();
339
+ });
340
+ it('shows Insert button text when not editing', function () {
341
+ var _render18 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
342
+ edit: false
343
+ }))),
344
+ getByText = _render18.getByText;
345
+ expect(getByText('Insert')).toBeInTheDocument();
346
+ });
347
+ it('shows Update button text when editing', function () {
348
+ var _render19 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
349
+ edit: true
350
+ }))),
351
+ getByText = _render19.getByText;
352
+ expect(getByText('Update')).toBeInTheDocument();
353
+ });
354
+ it('accepts custom src prop', function () {
355
+ var _render20 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
356
+ src: "https://example.com/video"
357
+ }))),
358
+ container = _render20.container;
359
+ expect(container).toBeInTheDocument();
360
+ });
361
+ it('accepts custom url prop', function () {
362
+ var _render21 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
363
+ url: "https://youtube.com/watch?v=test"
364
+ }))),
365
+ getByPlaceholderText = _render21.getByPlaceholderText;
366
+ var urlInput = getByPlaceholderText('Paste URL of video...');
367
+ expect(urlInput.value).toBe('https://youtube.com/watch?v=test');
368
+ });
369
+ it('accepts custom starts prop', function () {
370
+ var _render22 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
371
+ starts: 10,
372
+ type: "video",
373
+ url: "https://youtube.com/watch?v=test"
374
+ }))),
375
+ container = _render22.container;
376
+ expect(container).toBeInTheDocument();
377
+ });
378
+ it('accepts custom ends prop', function () {
379
+ var _render23 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
380
+ ends: 60,
381
+ type: "video",
382
+ url: "https://youtube.com/watch?v=test"
383
+ }))),
384
+ container = _render23.container;
385
+ expect(container).toBeInTheDocument();
386
+ });
387
+ it('disables portal when disablePortal is true', function () {
388
+ var _render24 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
389
+ disablePortal: true
390
+ }))),
391
+ container = _render24.container;
392
+ expect(container).toBeInTheDocument();
393
+ });
394
+ it('handles URL change for YouTube', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
395
+ var _render25, getByPlaceholderText, container, urlInput;
396
+ return _regenerator["default"].wrap(function (_context2) {
397
+ while (1) switch (_context2.prev = _context2.next) {
398
+ case 0:
399
+ _render25 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
400
+ type: "video"
401
+ }))), getByPlaceholderText = _render25.getByPlaceholderText, container = _render25.container;
402
+ urlInput = getByPlaceholderText('Paste URL of video...');
403
+ _react2.fireEvent.change(urlInput, {
404
+ target: {
405
+ value: 'https://youtube.com/watch?v=abc123'
406
+ }
407
+ });
408
+ // Just verify the input rendered and change event didn't throw
409
+ expect(container).toBeInTheDocument();
410
+ case 1:
411
+ case "end":
412
+ return _context2.stop();
413
+ }
414
+ }, _callee2);
415
+ })));
416
+ it('renders file upload input when on upload file tab', function () {
417
+ var uploadSoundSupport = {
418
+ add: jest.fn(),
419
+ "delete": jest.fn()
420
+ };
421
+ var _render26 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaDialog.MediaDialog, (0, _extends2["default"])({}, defaultProps, {
422
+ type: "audio",
423
+ uploadSoundSupport: uploadSoundSupport
424
+ }))),
425
+ getByText = _render26.getByText,
426
+ container = _render26.container;
427
+ var uploadTab = getByText('Upload file');
428
+ _react2.fireEvent.click(uploadTab);
429
+ var fileInput = container.querySelector('input[type="file"]');
430
+ expect(fileInput).toBeInTheDocument();
431
+ });
432
+ });
433
+ //# sourceMappingURL=MediaDialog.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaDialog.test.js","names":["_react","_interopRequireDefault","require","_react2","_MediaDialog","global","fetch","jest","fn","mock","__esModule","default","_ref","children","open","createElement","_ref2","_ref3","_ref4","_ref5","_ref6","onClick","disabled","_ref7","value","onChange","label","placeholder","inputProps","_extends2","undefined","_ref8","_ref9","_ref0","_ref1","describe","defaultProps","handleClose","type","beforeEach","clearAllMocks","mockClear","it","_render","render","MediaDialog","container","expect","toBeInTheDocument","_render2","getByText","_render3","_render4","getByLabelText","_render5","_render6","_render7","fireEvent","click","toHaveBeenCalledWith","_render8","insertButton","toBeDisabled","_render9","_asyncToGenerator2","_regenerator","mark","_callee","_render0","getByPlaceholderText","wrap","_context","prev","next","url","waitFor","urlInput","change","target","stop","_render1","widthInput","toBe","_render10","heightInput","_render11","_render12","_render13","_render14","uploadSoundSupport","add","_render15","_render16","queryByText","not","_render17","insertUrlTab","_render18","edit","_render19","_render20","src","_render21","_render22","starts","_render23","ends","_render24","disablePortal","_callee2","_render25","_context2","_render26","uploadTab","fileInput","querySelector"],"sources":["../../../src/components/__tests__/MediaDialog.test.jsx"],"sourcesContent":["import React from 'react';\nimport { fireEvent, render, waitFor } from '@testing-library/react';\nimport { MediaDialog } from '../media/MediaDialog';\n\nglobal.fetch = jest.fn();\n\njest.mock('@mui/material/Dialog', () => ({\n __esModule: true,\n default: ({ children, open }) => open && <div data-testid=\"dialog\">{children}</div>,\n}));\n\njest.mock('@mui/material/DialogTitle', () => ({\n __esModule: true,\n default: ({ children }) => <div data-testid=\"dialog-title\">{children}</div>,\n}));\n\njest.mock('@mui/material/DialogContent', () => ({\n __esModule: true,\n default: ({ children }) => <div data-testid=\"dialog-content\">{children}</div>,\n}));\n\njest.mock('@mui/material/DialogContentText', () => ({\n __esModule: true,\n default: ({ children }) => <div>{children}</div>,\n}));\n\njest.mock('@mui/material/DialogActions', () => ({\n __esModule: true,\n default: ({ children }) => <div data-testid=\"dialog-actions\">{children}</div>,\n}));\n\njest.mock('@mui/material/Button', () => ({\n __esModule: true,\n default: ({ children, onClick, disabled }) => (\n <button onClick={onClick} disabled={disabled}>\n {children}\n </button>\n ),\n}));\n\njest.mock('@mui/material/TextField', () => ({\n __esModule: true,\n default: ({ value, onChange, label, placeholder, inputProps }) => (\n <div>\n <label>{label}</label>\n <input\n value={value === undefined ? '' : value}\n onChange={onChange}\n placeholder={placeholder}\n aria-label={label}\n {...inputProps}\n />\n </div>\n ),\n}));\n\njest.mock('@mui/material/Tabs', () => ({\n __esModule: true,\n default: ({ children, value, onChange }) => (\n <div data-testid=\"tabs\" data-value={value}>\n {children}\n </div>\n ),\n}));\n\njest.mock('@mui/material/Tab', () => ({\n __esModule: true,\n default: ({ label, onClick }) => (\n <button onClick={onClick} data-testid=\"tab\">\n {label}\n </button>\n ),\n}));\n\njest.mock('@mui/material/Typography', () => ({\n __esModule: true,\n default: ({ children }) => <div>{children}</div>,\n}));\n\njest.mock('@mui/material/IconButton', () => ({\n __esModule: true,\n default: ({ children, onClick }) => <button onClick={onClick}>{children}</button>,\n}));\n\njest.mock('@mui/icons-material/Delete', () => ({\n __esModule: true,\n default: () => <svg data-testid=\"delete-icon\" />,\n}));\n\ndescribe('MediaDialog', () => {\n const defaultProps = {\n open: true,\n handleClose: jest.fn(),\n type: 'video',\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n global.fetch.mockClear();\n });\n\n it('renders without crashing', () => {\n const { container } = render(<MediaDialog {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders dialog title for video', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} type=\"video\" />);\n expect(getByText('Insert Video')).toBeInTheDocument();\n });\n\n it('renders dialog title for audio', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} type=\"audio\" />);\n expect(getByText('Insert Audio')).toBeInTheDocument();\n });\n\n it('renders URL input field', () => {\n const { getByLabelText } = render(<MediaDialog {...defaultProps} />);\n expect(getByLabelText('URL')).toBeInTheDocument();\n });\n\n it('renders Cancel button', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} />);\n expect(getByText('Cancel')).toBeInTheDocument();\n });\n\n it('renders Insert button', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} />);\n expect(getByText('Insert')).toBeInTheDocument();\n });\n\n it('calls handleClose with false when Cancel is clicked', () => {\n const handleClose = jest.fn();\n const { getByText } = render(<MediaDialog {...defaultProps} handleClose={handleClose} />);\n fireEvent.click(getByText('Cancel'));\n expect(handleClose).toHaveBeenCalledWith(false);\n });\n\n it('disables Insert button when URL is invalid', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} />);\n const insertButton = getByText('Insert');\n expect(insertButton).toBeDisabled();\n });\n\n it('shows video properties fields for video type', () => {\n const { getByLabelText } = render(<MediaDialog {...defaultProps} type=\"video\" />);\n expect(getByLabelText('Width')).toBeInTheDocument();\n expect(getByLabelText('Height')).toBeInTheDocument();\n });\n\n it('shows starts and ends fields for video', async () => {\n const { getByLabelText, getByPlaceholderText } = render(\n <MediaDialog {...defaultProps} type=\"video\" url=\"https://youtube.com/watch?v=abc\" />,\n );\n await waitFor(() => {\n const urlInput = getByPlaceholderText('Paste URL of video...');\n fireEvent.change(urlInput, { target: { value: 'https://youtube.com/watch?v=abc123' } });\n });\n });\n\n it('updates width on change', () => {\n const { getByLabelText } = render(<MediaDialog {...defaultProps} type=\"video\" />);\n const widthInput = getByLabelText('Width');\n fireEvent.change(widthInput, { target: { value: '800' } });\n expect(widthInput.value).toBe('800');\n });\n\n it('updates height on change', () => {\n const { getByLabelText } = render(<MediaDialog {...defaultProps} type=\"video\" />);\n const heightInput = getByLabelText('Height');\n fireEvent.change(heightInput, { target: { value: '600' } });\n expect(heightInput.value).toBe('600');\n });\n\n it('has default width of 560', () => {\n const { getByLabelText } = render(<MediaDialog {...defaultProps} type=\"video\" />);\n const widthInput = getByLabelText('Width');\n expect(widthInput.value).toBe('560');\n });\n\n it('has default height of 315', () => {\n const { getByLabelText } = render(<MediaDialog {...defaultProps} type=\"video\" />);\n const heightInput = getByLabelText('Height');\n expect(heightInput.value).toBe('315');\n });\n\n it('shows Insert URL tab', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} type=\"video\" />);\n expect(getByText('Insert YouTube, Vimeo, or Google Drive URL')).toBeInTheDocument();\n });\n\n it('shows Insert URL tab for audio', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} type=\"audio\" />);\n expect(getByText('Insert SoundCloud URL')).toBeInTheDocument();\n });\n\n it('shows Upload file tab when uploadSoundSupport is provided', () => {\n const uploadSoundSupport = {\n add: jest.fn(),\n delete: jest.fn(),\n };\n const { getByText } = render(\n <MediaDialog {...defaultProps} type=\"audio\" uploadSoundSupport={uploadSoundSupport} />,\n );\n expect(getByText('Upload file')).toBeInTheDocument();\n });\n\n it('does not show Upload file tab for video', () => {\n const uploadSoundSupport = {\n add: jest.fn(),\n delete: jest.fn(),\n };\n const { queryByText } = render(\n <MediaDialog {...defaultProps} type=\"video\" uploadSoundSupport={uploadSoundSupport} />,\n );\n expect(queryByText('Upload file')).not.toBeInTheDocument();\n });\n\n it('changes tab on tab click', () => {\n const uploadSoundSupport = {\n add: jest.fn(),\n delete: jest.fn(),\n };\n const { getByText } = render(\n <MediaDialog {...defaultProps} type=\"audio\" uploadSoundSupport={uploadSoundSupport} />,\n );\n const insertUrlTab = getByText('Insert SoundCloud URL');\n fireEvent.click(insertUrlTab);\n expect(insertUrlTab).toBeInTheDocument();\n });\n\n it('shows Insert button text when not editing', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} edit={false} />);\n expect(getByText('Insert')).toBeInTheDocument();\n });\n\n it('shows Update button text when editing', () => {\n const { getByText } = render(<MediaDialog {...defaultProps} edit={true} />);\n expect(getByText('Update')).toBeInTheDocument();\n });\n\n it('accepts custom src prop', () => {\n const { container } = render(<MediaDialog {...defaultProps} src=\"https://example.com/video\" />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts custom url prop', () => {\n const { getByPlaceholderText } = render(<MediaDialog {...defaultProps} url=\"https://youtube.com/watch?v=test\" />);\n const urlInput = getByPlaceholderText('Paste URL of video...');\n expect(urlInput.value).toBe('https://youtube.com/watch?v=test');\n });\n\n it('accepts custom starts prop', () => {\n const { container } = render(\n <MediaDialog {...defaultProps} starts={10} type=\"video\" url=\"https://youtube.com/watch?v=test\" />,\n );\n expect(container).toBeInTheDocument();\n });\n\n it('accepts custom ends prop', () => {\n const { container } = render(\n <MediaDialog {...defaultProps} ends={60} type=\"video\" url=\"https://youtube.com/watch?v=test\" />,\n );\n expect(container).toBeInTheDocument();\n });\n\n it('disables portal when disablePortal is true', () => {\n const { container } = render(<MediaDialog {...defaultProps} disablePortal={true} />);\n expect(container).toBeInTheDocument();\n });\n\n it('handles URL change for YouTube', async () => {\n const { getByPlaceholderText, container } = render(<MediaDialog {...defaultProps} type=\"video\" />);\n const urlInput = getByPlaceholderText('Paste URL of video...');\n fireEvent.change(urlInput, { target: { value: 'https://youtube.com/watch?v=abc123' } });\n // Just verify the input rendered and change event didn't throw\n expect(container).toBeInTheDocument();\n });\n\n it('renders file upload input when on upload file tab', () => {\n const uploadSoundSupport = {\n add: jest.fn(),\n delete: jest.fn(),\n };\n const { getByText, container } = render(\n <MediaDialog {...defaultProps} type=\"audio\" uploadSoundSupport={uploadSoundSupport} />,\n );\n const uploadTab = getByText('Upload file');\n fireEvent.click(uploadTab);\n const fileInput = container.querySelector('input[type=\"file\"]');\n expect(fileInput).toBeInTheDocument();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,126 @@
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 _MediaToolbar = _interopRequireDefault(require("../media/MediaToolbar"));
7
+ describe('MediaToolbar', function () {
8
+ it('renders without crashing', function () {
9
+ var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
10
+ onEdit: jest.fn(),
11
+ onRemove: jest.fn()
12
+ })),
13
+ container = _render.container;
14
+ expect(container).toBeInTheDocument();
15
+ });
16
+ it('renders Edit Settings text', function () {
17
+ var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
18
+ onEdit: jest.fn(),
19
+ onRemove: jest.fn()
20
+ })),
21
+ getByText = _render2.getByText;
22
+ expect(getByText('Edit Settings')).toBeInTheDocument();
23
+ });
24
+ it('renders Remove text', function () {
25
+ var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
26
+ onEdit: jest.fn(),
27
+ onRemove: jest.fn()
28
+ })),
29
+ getByText = _render3.getByText;
30
+ expect(getByText('Remove')).toBeInTheDocument();
31
+ });
32
+ it('calls onEdit when Edit Settings is clicked', function () {
33
+ var onEdit = jest.fn();
34
+ var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
35
+ onEdit: onEdit,
36
+ onRemove: jest.fn()
37
+ })),
38
+ getByText = _render4.getByText;
39
+ _react2.fireEvent.click(getByText('Edit Settings'));
40
+ expect(onEdit).toHaveBeenCalled();
41
+ });
42
+ it('calls onRemove when Remove is clicked', function () {
43
+ var onRemove = jest.fn();
44
+ var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
45
+ onEdit: jest.fn(),
46
+ onRemove: onRemove
47
+ })),
48
+ getByText = _render5.getByText;
49
+ _react2.fireEvent.click(getByText('Remove'));
50
+ expect(onRemove).toHaveBeenCalled();
51
+ });
52
+ it('hides Edit Settings when hideEdit is true', function () {
53
+ var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
54
+ hideEdit: true,
55
+ onEdit: jest.fn(),
56
+ onRemove: jest.fn()
57
+ })),
58
+ queryByText = _render6.queryByText;
59
+ expect(queryByText('Edit Settings')).not.toBeInTheDocument();
60
+ });
61
+ it('shows Edit Settings when hideEdit is false', function () {
62
+ var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
63
+ hideEdit: false,
64
+ onEdit: jest.fn(),
65
+ onRemove: jest.fn()
66
+ })),
67
+ getByText = _render7.getByText;
68
+ expect(getByText('Edit Settings')).toBeInTheDocument();
69
+ });
70
+ it('applies cursor pointer style', function () {
71
+ var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
72
+ onEdit: jest.fn(),
73
+ onRemove: jest.fn()
74
+ })),
75
+ getByText = _render8.getByText;
76
+ var editButton = getByText('Edit Settings');
77
+ expect(editButton).toHaveStyle({
78
+ cursor: 'pointer'
79
+ });
80
+ });
81
+ it('has border on Edit Settings container', function () {
82
+ var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
83
+ onEdit: jest.fn(),
84
+ onRemove: jest.fn()
85
+ })),
86
+ getByText = _render9.getByText;
87
+ var editButton = getByText('Edit Settings');
88
+ expect(editButton).toHaveStyle({
89
+ borderWidth: '0 2px 0 0'
90
+ });
91
+ });
92
+ it('applies white background', function () {
93
+ var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
94
+ onEdit: jest.fn(),
95
+ onRemove: jest.fn()
96
+ })),
97
+ container = _render0.container;
98
+ var root = container.firstChild;
99
+ expect(root).toHaveStyle({
100
+ background: '#fff'
101
+ });
102
+ });
103
+ it('applies box shadow', function () {
104
+ var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
105
+ onEdit: jest.fn(),
106
+ onRemove: jest.fn()
107
+ })),
108
+ container = _render1.container;
109
+ var root = container.firstChild;
110
+ expect(root).toHaveStyle({
111
+ boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.25)'
112
+ });
113
+ });
114
+ it('displays inline-flex', function () {
115
+ var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MediaToolbar["default"], {
116
+ onEdit: jest.fn(),
117
+ onRemove: jest.fn()
118
+ })),
119
+ container = _render10.container;
120
+ var root = container.firstChild;
121
+ expect(root).toHaveStyle({
122
+ display: 'inline-flex'
123
+ });
124
+ });
125
+ });
126
+ //# sourceMappingURL=MediaToolbar.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaToolbar.test.js","names":["_react","_interopRequireDefault","require","_react2","_MediaToolbar","describe","it","_render","render","createElement","onEdit","jest","fn","onRemove","container","expect","toBeInTheDocument","_render2","getByText","_render3","_render4","fireEvent","click","toHaveBeenCalled","_render5","_render6","hideEdit","queryByText","not","_render7","_render8","editButton","toHaveStyle","cursor","_render9","borderWidth","_render0","root","firstChild","background","_render1","boxShadow","_render10","display"],"sources":["../../../src/components/__tests__/MediaToolbar.test.jsx"],"sourcesContent":["import React from 'react';\nimport { fireEvent, render } from '@testing-library/react';\nimport MediaToolbar from '../media/MediaToolbar';\n\ndescribe('MediaToolbar', () => {\n it('renders without crashing', () => {\n const { container } = render(<MediaToolbar onEdit={jest.fn()} onRemove={jest.fn()} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders Edit Settings text', () => {\n const { getByText } = render(<MediaToolbar onEdit={jest.fn()} onRemove={jest.fn()} />);\n expect(getByText('Edit Settings')).toBeInTheDocument();\n });\n\n it('renders Remove text', () => {\n const { getByText } = render(<MediaToolbar onEdit={jest.fn()} onRemove={jest.fn()} />);\n expect(getByText('Remove')).toBeInTheDocument();\n });\n\n it('calls onEdit when Edit Settings is clicked', () => {\n const onEdit = jest.fn();\n const { getByText } = render(<MediaToolbar onEdit={onEdit} onRemove={jest.fn()} />);\n fireEvent.click(getByText('Edit Settings'));\n expect(onEdit).toHaveBeenCalled();\n });\n\n it('calls onRemove when Remove is clicked', () => {\n const onRemove = jest.fn();\n const { getByText } = render(<MediaToolbar onEdit={jest.fn()} onRemove={onRemove} />);\n fireEvent.click(getByText('Remove'));\n expect(onRemove).toHaveBeenCalled();\n });\n\n it('hides Edit Settings when hideEdit is true', () => {\n const { queryByText } = render(<MediaToolbar hideEdit={true} onEdit={jest.fn()} onRemove={jest.fn()} />);\n expect(queryByText('Edit Settings')).not.toBeInTheDocument();\n });\n\n it('shows Edit Settings when hideEdit is false', () => {\n const { getByText } = render(<MediaToolbar hideEdit={false} onEdit={jest.fn()} onRemove={jest.fn()} />);\n expect(getByText('Edit Settings')).toBeInTheDocument();\n });\n\n it('applies cursor pointer style', () => {\n const { getByText } = render(<MediaToolbar onEdit={jest.fn()} onRemove={jest.fn()} />);\n const editButton = getByText('Edit Settings');\n expect(editButton).toHaveStyle({ cursor: 'pointer' });\n });\n\n it('has border on Edit Settings container', () => {\n const { getByText } = render(<MediaToolbar onEdit={jest.fn()} onRemove={jest.fn()} />);\n const editButton = getByText('Edit Settings');\n expect(editButton).toHaveStyle({ borderWidth: '0 2px 0 0' });\n });\n\n it('applies white background', () => {\n const { container } = render(<MediaToolbar onEdit={jest.fn()} onRemove={jest.fn()} />);\n const root = container.firstChild;\n expect(root).toHaveStyle({ background: '#fff' });\n });\n\n it('applies box shadow', () => {\n const { container } = render(<MediaToolbar onEdit={jest.fn()} onRemove={jest.fn()} />);\n const root = container.firstChild;\n expect(root).toHaveStyle({ boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.25)' });\n });\n\n it('displays inline-flex', () => {\n const { container } = render(<MediaToolbar onEdit={jest.fn()} onRemove={jest.fn()} />);\n const root = container.firstChild;\n expect(root).toHaveStyle({ display: 'inline-flex' });\n });\n});\n"],"mappings":"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","ignoreList":[]}