@pie-lib/editable-html-tip-tap 2.2.0-beta.7 → 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.
- package/package.json +3 -3
- package/lib/__tests__/EditableHtml.test.js +0 -831
- package/lib/__tests__/EditableHtml.test.js.map +0 -1
- package/lib/__tests__/constants.test.js +0 -21
- package/lib/__tests__/constants.test.js.map +0 -1
- package/lib/__tests__/div-to-paragraph-conversion.test.js +0 -213
- package/lib/__tests__/div-to-paragraph-conversion.test.js.map +0 -1
- package/lib/__tests__/extensions.test.js +0 -209
- package/lib/__tests__/extensions.test.js.map +0 -1
- package/lib/__tests__/index.test.js +0 -250
- package/lib/__tests__/index.test.js.map +0 -1
- package/lib/__tests__/size-utils.test.js +0 -57
- package/lib/__tests__/size-utils.test.js.map +0 -1
- package/lib/__tests__/theme.test.js +0 -17
- package/lib/__tests__/theme.test.js.map +0 -1
- package/lib/components/__tests__/AltDialog.test.js +0 -201
- package/lib/components/__tests__/AltDialog.test.js.map +0 -1
- package/lib/components/__tests__/CharacterPicker.test.js +0 -455
- package/lib/components/__tests__/CharacterPicker.test.js.map +0 -1
- package/lib/components/__tests__/CssIcon.test.js +0 -58
- package/lib/components/__tests__/CssIcon.test.js.map +0 -1
- package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
- package/lib/components/__tests__/DragInTheBlank.test.js.map +0 -1
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -345
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +0 -1
- package/lib/components/__tests__/ImageToolbar.test.js +0 -185
- package/lib/components/__tests__/ImageToolbar.test.js.map +0 -1
- package/lib/components/__tests__/InlineDropdown.test.js +0 -839
- package/lib/components/__tests__/InlineDropdown.test.js.map +0 -1
- package/lib/components/__tests__/InsertImageHandler.test.js +0 -171
- package/lib/components/__tests__/InsertImageHandler.test.js.map +0 -1
- package/lib/components/__tests__/MediaDialog.test.js +0 -433
- package/lib/components/__tests__/MediaDialog.test.js.map +0 -1
- package/lib/components/__tests__/MediaToolbar.test.js +0 -126
- package/lib/components/__tests__/MediaToolbar.test.js.map +0 -1
- package/lib/components/__tests__/MediaWrapper.test.js +0 -96
- package/lib/components/__tests__/MediaWrapper.test.js.map +0 -1
- package/lib/components/__tests__/MenuBar.test.js +0 -502
- package/lib/components/__tests__/MenuBar.test.js.map +0 -1
- package/lib/components/__tests__/RespArea.test.js +0 -171
- package/lib/components/__tests__/RespArea.test.js.map +0 -1
- package/lib/components/__tests__/TableIcons.test.js +0 -153
- package/lib/components/__tests__/TableIcons.test.js.map +0 -1
- package/lib/components/__tests__/TextAlign.test.js +0 -209
- package/lib/components/__tests__/TextAlign.test.js.map +0 -1
- package/lib/components/__tests__/TiptapContainer.test.js +0 -196
- package/lib/components/__tests__/TiptapContainer.test.js.map +0 -1
- package/lib/components/__tests__/characterUtils.test.js +0 -178
- package/lib/components/__tests__/characterUtils.test.js.map +0 -1
- package/lib/components/__tests__/choice.test.js +0 -213
- package/lib/components/__tests__/choice.test.js.map +0 -1
- package/lib/components/__tests__/custom-popper.test.js +0 -108
- package/lib/components/__tests__/custom-popper.test.js.map +0 -1
- package/lib/components/__tests__/done-button.test.js +0 -72
- package/lib/components/__tests__/done-button.test.js.map +0 -1
- package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
- package/lib/components/__tests__/toolbar-buttons.test.js.map +0 -1
- package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +0 -90
- package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +0 -1
- package/lib/components/respArea/__tests__/MathTemplated.test.js +0 -217
- package/lib/components/respArea/__tests__/MathTemplated.test.js.map +0 -1
- package/lib/extensions/__tests__/css.test.js +0 -214
- package/lib/extensions/__tests__/css.test.js.map +0 -1
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +0 -1
- package/lib/extensions/__tests__/divNode.test.js +0 -108
- package/lib/extensions/__tests__/divNode.test.js.map +0 -1
- package/lib/extensions/__tests__/ensure-empty-root-div.test.js +0 -50
- package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +0 -1
- package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -60
- package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +0 -1
- package/lib/extensions/__tests__/extended-list-item.test.js +0 -13
- package/lib/extensions/__tests__/extended-list-item.test.js.map +0 -1
- package/lib/extensions/__tests__/extended-table-cell.test.js +0 -15
- package/lib/extensions/__tests__/extended-table-cell.test.js.map +0 -1
- package/lib/extensions/__tests__/extended-table.test.js +0 -200
- package/lib/extensions/__tests__/extended-table.test.js.map +0 -1
- package/lib/extensions/__tests__/image-component.test.js +0 -432
- package/lib/extensions/__tests__/image-component.test.js.map +0 -1
- package/lib/extensions/__tests__/image.test.js +0 -313
- package/lib/extensions/__tests__/image.test.js.map +0 -1
- package/lib/extensions/__tests__/math.test.js +0 -1411
- package/lib/extensions/__tests__/math.test.js.map +0 -1
- package/lib/extensions/__tests__/media-node-view.test.js +0 -307
- package/lib/extensions/__tests__/media-node-view.test.js.map +0 -1
- package/lib/extensions/__tests__/media.test.js +0 -292
- package/lib/extensions/__tests__/media.test.js.map +0 -1
- package/lib/extensions/__tests__/responseArea.test.js +0 -736
- package/lib/extensions/__tests__/responseArea.test.js.map +0 -1
- package/lib/utils/__tests__/helper.test.js +0 -107
- package/lib/utils/__tests__/helper.test.js.map +0 -1
- package/lib/utils/__tests__/toolbar.test.js +0 -38
- package/lib/utils/__tests__/toolbar.test.js.map +0 -1
|
@@ -1,433 +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 _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
|
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|
|
@@ -1,126 +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 _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
|
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|