@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,839 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
6
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
-
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
var _react2 = require("@testing-library/react");
|
|
12
|
-
var _mathRendering = require("@pie-lib/math-rendering");
|
|
13
|
-
var _InlineDropdown = _interopRequireDefault(require("../respArea/InlineDropdown"));
|
|
14
|
-
var _excluded = ["children"];
|
|
15
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
-
jest.mock('@pie-lib/math-rendering', function () {
|
|
18
|
-
return {
|
|
19
|
-
renderMath: jest.fn()
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
jest.mock('@tiptap/react', function () {
|
|
23
|
-
return {
|
|
24
|
-
NodeViewWrapper: function NodeViewWrapper(_ref) {
|
|
25
|
-
var children = _ref.children,
|
|
26
|
-
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
27
|
-
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
|
|
28
|
-
"data-testid": "node-view-wrapper"
|
|
29
|
-
}, props), children);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
});
|
|
33
|
-
var mockCreatePortal = jest.fn(function (node) {
|
|
34
|
-
return node;
|
|
35
|
-
});
|
|
36
|
-
jest.mock('react-dom', function () {
|
|
37
|
-
return _objectSpread(_objectSpread({}, jest.requireActual('react-dom')), {}, {
|
|
38
|
-
createPortal: function createPortal() {
|
|
39
|
-
return mockCreatePortal.apply(void 0, arguments);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
describe('InlineDropdown', function () {
|
|
44
|
-
var buildMockEditor = function buildMockEditor() {
|
|
45
|
-
var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
46
|
-
var mockNodeAt = jest.fn(function (pos) {
|
|
47
|
-
return pos === 5 ? {
|
|
48
|
-
nodeSize: 1
|
|
49
|
-
} : null;
|
|
50
|
-
});
|
|
51
|
-
var mockDoc = {
|
|
52
|
-
descendants: jest.fn(),
|
|
53
|
-
nodeAt: mockNodeAt
|
|
54
|
-
};
|
|
55
|
-
var mockTr = {
|
|
56
|
-
"delete": jest.fn(),
|
|
57
|
-
doc: {
|
|
58
|
-
nodeAt: mockNodeAt
|
|
59
|
-
},
|
|
60
|
-
setSelection: jest.fn(),
|
|
61
|
-
setMeta: jest.fn(function setMeta() {
|
|
62
|
-
return mockTr;
|
|
63
|
-
})
|
|
64
|
-
};
|
|
65
|
-
return _objectSpread({
|
|
66
|
-
state: {
|
|
67
|
-
selection: {
|
|
68
|
-
from: 0,
|
|
69
|
-
to: 1
|
|
70
|
-
},
|
|
71
|
-
tr: mockTr,
|
|
72
|
-
doc: mockDoc
|
|
73
|
-
},
|
|
74
|
-
view: {
|
|
75
|
-
coordsAtPos: jest.fn(function () {
|
|
76
|
-
return {
|
|
77
|
-
top: 100,
|
|
78
|
-
left: 50
|
|
79
|
-
};
|
|
80
|
-
}),
|
|
81
|
-
dispatch: jest.fn()
|
|
82
|
-
},
|
|
83
|
-
commands: {
|
|
84
|
-
focus: jest.fn()
|
|
85
|
-
},
|
|
86
|
-
_tiptapContainerEl: document.createElement('div'),
|
|
87
|
-
_toolbarOpened: false
|
|
88
|
-
}, overrides);
|
|
89
|
-
};
|
|
90
|
-
var mockEditor;
|
|
91
|
-
var mockNode = {
|
|
92
|
-
attrs: {
|
|
93
|
-
index: '0',
|
|
94
|
-
value: 'Selected Option',
|
|
95
|
-
error: false
|
|
96
|
-
},
|
|
97
|
-
nodeSize: 1
|
|
98
|
-
};
|
|
99
|
-
var mockOptions = {
|
|
100
|
-
respAreaToolbar: jest.fn(function () {
|
|
101
|
-
return function () {
|
|
102
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
103
|
-
"data-testid": "inline-dropdown-toolbar"
|
|
104
|
-
}, "Toolbar");
|
|
105
|
-
};
|
|
106
|
-
})
|
|
107
|
-
};
|
|
108
|
-
var defaultProps = {
|
|
109
|
-
editor: mockEditor,
|
|
110
|
-
node: mockNode,
|
|
111
|
-
getPos: function getPos() {
|
|
112
|
-
return 5;
|
|
113
|
-
},
|
|
114
|
-
options: mockOptions,
|
|
115
|
-
selected: false
|
|
116
|
-
};
|
|
117
|
-
beforeEach(function () {
|
|
118
|
-
jest.clearAllMocks();
|
|
119
|
-
mockCreatePortal.mockClear();
|
|
120
|
-
mockEditor = buildMockEditor();
|
|
121
|
-
defaultProps.editor = mockEditor;
|
|
122
|
-
Object.defineProperty(document.body, 'getBoundingClientRect', {
|
|
123
|
-
value: jest.fn(function () {
|
|
124
|
-
return {
|
|
125
|
-
top: 0,
|
|
126
|
-
left: 0
|
|
127
|
-
};
|
|
128
|
-
}),
|
|
129
|
-
configurable: true
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
it('renders without crashing', function () {
|
|
133
|
-
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
134
|
-
container = _render.container;
|
|
135
|
-
expect(container).toBeInTheDocument();
|
|
136
|
-
});
|
|
137
|
-
it('renders NodeViewWrapper', function () {
|
|
138
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
139
|
-
getByTestId = _render2.getByTestId;
|
|
140
|
-
expect(getByTestId('node-view-wrapper')).toBeInTheDocument();
|
|
141
|
-
});
|
|
142
|
-
it('displays selected value', function () {
|
|
143
|
-
var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
144
|
-
container = _render3.container;
|
|
145
|
-
var valueDiv = container.querySelector('div[style*="border"]');
|
|
146
|
-
expect(valueDiv).toBeInTheDocument();
|
|
147
|
-
});
|
|
148
|
-
it('renders math inside the value control on mount', function () {
|
|
149
|
-
var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
150
|
-
container = _render4.container;
|
|
151
|
-
var valueDiv = container.querySelector('div[style*="border"]');
|
|
152
|
-
expect(_mathRendering.renderMath).toHaveBeenCalledWith(valueDiv);
|
|
153
|
-
});
|
|
154
|
-
it('re-renders math when the value changes', function () {
|
|
155
|
-
var updatedNode = _objectSpread(_objectSpread({}, mockNode), {}, {
|
|
156
|
-
attrs: _objectSpread(_objectSpread({}, mockNode.attrs), {}, {
|
|
157
|
-
value: '<span>Updated math</span>'
|
|
158
|
-
})
|
|
159
|
-
});
|
|
160
|
-
var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
161
|
-
container = _render5.container,
|
|
162
|
-
rerender = _render5.rerender;
|
|
163
|
-
_mathRendering.renderMath.mockClear();
|
|
164
|
-
rerender(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
165
|
-
node: updatedNode
|
|
166
|
-
})));
|
|
167
|
-
var valueDiv = container.querySelector('div[style*="border"]');
|
|
168
|
-
expect(_mathRendering.renderMath).toHaveBeenCalledWith(valueDiv);
|
|
169
|
-
});
|
|
170
|
-
it('uses 2px horizontal margin on the value control and no horizontal margin on the wrapper', function () {
|
|
171
|
-
var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
172
|
-
container = _render6.container,
|
|
173
|
-
getByTestId = _render6.getByTestId;
|
|
174
|
-
var valueDiv = container.querySelector('div[style*="border"]');
|
|
175
|
-
expect(valueDiv).toHaveStyle({
|
|
176
|
-
margin: '0 2px'
|
|
177
|
-
});
|
|
178
|
-
var wrapper = getByTestId('node-view-wrapper');
|
|
179
|
-
expect(wrapper.getAttribute('style') || '').not.toMatch(/margin/);
|
|
180
|
-
});
|
|
181
|
-
it('renders chevron icon', function () {
|
|
182
|
-
var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
183
|
-
container = _render7.container;
|
|
184
|
-
var chevron = container.querySelector('svg');
|
|
185
|
-
expect(chevron).toBeInTheDocument();
|
|
186
|
-
});
|
|
187
|
-
it('shows toolbar when selected and only this node is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
188
|
-
var _render8, queryByTestId;
|
|
189
|
-
return _regenerator["default"].wrap(function (_context) {
|
|
190
|
-
while (1) switch (_context.prev = _context.next) {
|
|
191
|
-
case 0:
|
|
192
|
-
_render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
193
|
-
selected: true
|
|
194
|
-
}))), queryByTestId = _render8.queryByTestId;
|
|
195
|
-
_context.next = 1;
|
|
196
|
-
return (0, _react2.waitFor)(function () {
|
|
197
|
-
// Toolbar is shown via portal
|
|
198
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
199
|
-
});
|
|
200
|
-
case 1:
|
|
201
|
-
case "end":
|
|
202
|
-
return _context.stop();
|
|
203
|
-
}
|
|
204
|
-
}, _callee);
|
|
205
|
-
})));
|
|
206
|
-
it('does not show toolbar when not selected', function () {
|
|
207
|
-
var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
208
|
-
selected: false
|
|
209
|
-
}))),
|
|
210
|
-
queryByTestId = _render9.queryByTestId;
|
|
211
|
-
expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();
|
|
212
|
-
});
|
|
213
|
-
it('shows toolbar on click', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
214
|
-
var _render0, container, queryByTestId, dropdown;
|
|
215
|
-
return _regenerator["default"].wrap(function (_context2) {
|
|
216
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
217
|
-
case 0:
|
|
218
|
-
_render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)), container = _render0.container, queryByTestId = _render0.queryByTestId;
|
|
219
|
-
dropdown = container.querySelector('div[style*="border"]');
|
|
220
|
-
if (!dropdown) {
|
|
221
|
-
_context2.next = 2;
|
|
222
|
-
break;
|
|
223
|
-
}
|
|
224
|
-
_react2.fireEvent.click(dropdown);
|
|
225
|
-
_context2.next = 1;
|
|
226
|
-
return (0, _react2.waitFor)(function () {
|
|
227
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
228
|
-
});
|
|
229
|
-
case 1:
|
|
230
|
-
_context2.next = 3;
|
|
231
|
-
break;
|
|
232
|
-
case 2:
|
|
233
|
-
// If dropdown is not found, just verify the component rendered
|
|
234
|
-
expect(container).toBeInTheDocument();
|
|
235
|
-
case 3:
|
|
236
|
-
case "end":
|
|
237
|
-
return _context2.stop();
|
|
238
|
-
}
|
|
239
|
-
}, _callee2);
|
|
240
|
-
})));
|
|
241
|
-
it('has correct minimum dimensions', function () {
|
|
242
|
-
var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
243
|
-
container = _render1.container;
|
|
244
|
-
var wrapper = container.querySelector('[data-testid="node-view-wrapper"]');
|
|
245
|
-
expect(wrapper).toHaveStyle({
|
|
246
|
-
height: '50px'
|
|
247
|
-
});
|
|
248
|
-
});
|
|
249
|
-
it('has inline-flex display', function () {
|
|
250
|
-
var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
251
|
-
container = _render10.container;
|
|
252
|
-
var wrapper = container.querySelector('[data-testid="node-view-wrapper"]');
|
|
253
|
-
expect(wrapper).toHaveStyle({
|
|
254
|
-
display: 'inline-flex'
|
|
255
|
-
});
|
|
256
|
-
});
|
|
257
|
-
it('has cursor pointer style', function () {
|
|
258
|
-
var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
259
|
-
container = _render11.container;
|
|
260
|
-
var wrapper = container.querySelector('[data-testid="node-view-wrapper"]');
|
|
261
|
-
expect(wrapper).toHaveStyle({
|
|
262
|
-
cursor: 'pointer'
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
it('renders with empty value as nbsp', function () {
|
|
266
|
-
var emptyNode = _objectSpread(_objectSpread({}, mockNode), {}, {
|
|
267
|
-
attrs: _objectSpread(_objectSpread({}, mockNode.attrs), {}, {
|
|
268
|
-
value: ''
|
|
269
|
-
})
|
|
270
|
-
});
|
|
271
|
-
var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
272
|
-
node: emptyNode
|
|
273
|
-
}))),
|
|
274
|
-
container = _render12.container;
|
|
275
|
-
expect(container).toBeInTheDocument();
|
|
276
|
-
});
|
|
277
|
-
it('calls respAreaToolbar with correct params', function () {
|
|
278
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps));
|
|
279
|
-
expect(mockOptions.respAreaToolbar).toHaveBeenCalledWith([mockNode, 5], mockEditor, expect.any(Function));
|
|
280
|
-
});
|
|
281
|
-
it('closes toolbar on outside click', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
282
|
-
var _render13, container, queryByTestId;
|
|
283
|
-
return _regenerator["default"].wrap(function (_context3) {
|
|
284
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
285
|
-
case 0:
|
|
286
|
-
_render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
287
|
-
selected: true
|
|
288
|
-
}))), container = _render13.container, queryByTestId = _render13.queryByTestId;
|
|
289
|
-
_context3.next = 1;
|
|
290
|
-
return (0, _react2.waitFor)(function () {
|
|
291
|
-
_react2.fireEvent.mouseDown(document.body);
|
|
292
|
-
});
|
|
293
|
-
case 1:
|
|
294
|
-
_context3.next = 2;
|
|
295
|
-
return (0, _react2.waitFor)(function () {
|
|
296
|
-
expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();
|
|
297
|
-
});
|
|
298
|
-
case 2:
|
|
299
|
-
case "end":
|
|
300
|
-
return _context3.stop();
|
|
301
|
-
}
|
|
302
|
-
}, _callee3);
|
|
303
|
-
})));
|
|
304
|
-
it('calls close callback when toolbar closes on outside click', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
305
|
-
var onInlineDropdownToolbarClose, options, _render14, queryByTestId;
|
|
306
|
-
return _regenerator["default"].wrap(function (_context4) {
|
|
307
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
308
|
-
case 0:
|
|
309
|
-
onInlineDropdownToolbarClose = jest.fn();
|
|
310
|
-
options = _objectSpread(_objectSpread({}, mockOptions), {}, {
|
|
311
|
-
onInlineDropdownToolbarClose: onInlineDropdownToolbarClose
|
|
312
|
-
});
|
|
313
|
-
_render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
314
|
-
options: options,
|
|
315
|
-
selected: true
|
|
316
|
-
}))), queryByTestId = _render14.queryByTestId;
|
|
317
|
-
_context4.next = 1;
|
|
318
|
-
return (0, _react2.waitFor)(function () {
|
|
319
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
320
|
-
});
|
|
321
|
-
case 1:
|
|
322
|
-
_react2.fireEvent.mouseDown(document.body);
|
|
323
|
-
_context4.next = 2;
|
|
324
|
-
return (0, _react2.waitFor)(function () {
|
|
325
|
-
expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();
|
|
326
|
-
});
|
|
327
|
-
case 2:
|
|
328
|
-
expect(onInlineDropdownToolbarClose).toHaveBeenCalledWith(mockEditor);
|
|
329
|
-
case 3:
|
|
330
|
-
case "end":
|
|
331
|
-
return _context4.stop();
|
|
332
|
-
}
|
|
333
|
-
}, _callee4);
|
|
334
|
-
})));
|
|
335
|
-
it('uses the current node when closing on outside click after the node prop changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
336
|
-
var onToolbarCloseRequest, options, updatedNode, _render15, queryByTestId, rerender;
|
|
337
|
-
return _regenerator["default"].wrap(function (_context5) {
|
|
338
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
339
|
-
case 0:
|
|
340
|
-
onToolbarCloseRequest = jest.fn(function (_tuple, _editor, onConfirm) {
|
|
341
|
-
return onConfirm();
|
|
342
|
-
});
|
|
343
|
-
options = _objectSpread(_objectSpread({}, mockOptions), {}, {
|
|
344
|
-
onToolbarCloseRequest: onToolbarCloseRequest
|
|
345
|
-
});
|
|
346
|
-
updatedNode = {
|
|
347
|
-
attrs: {
|
|
348
|
-
index: '1',
|
|
349
|
-
value: 'Updated Option',
|
|
350
|
-
error: false
|
|
351
|
-
},
|
|
352
|
-
nodeSize: 1
|
|
353
|
-
};
|
|
354
|
-
_render15 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
355
|
-
options: options,
|
|
356
|
-
selected: true
|
|
357
|
-
}))), queryByTestId = _render15.queryByTestId, rerender = _render15.rerender;
|
|
358
|
-
_context5.next = 1;
|
|
359
|
-
return (0, _react2.waitFor)(function () {
|
|
360
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
361
|
-
});
|
|
362
|
-
case 1:
|
|
363
|
-
rerender(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
364
|
-
options: options,
|
|
365
|
-
node: updatedNode,
|
|
366
|
-
selected: true
|
|
367
|
-
})));
|
|
368
|
-
_react2.fireEvent.mouseDown(document.body);
|
|
369
|
-
_context5.next = 2;
|
|
370
|
-
return (0, _react2.waitFor)(function () {
|
|
371
|
-
expect(onToolbarCloseRequest).toHaveBeenCalledWith([updatedNode, 5], expect.anything(), expect.any(Function), expect.any(Function));
|
|
372
|
-
});
|
|
373
|
-
case 2:
|
|
374
|
-
case "end":
|
|
375
|
-
return _context5.stop();
|
|
376
|
-
}
|
|
377
|
-
}, _callee5);
|
|
378
|
-
})));
|
|
379
|
-
it('respects hold state for the current node after the node prop changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
380
|
-
var updatedNode, _render16, queryByTestId, rerender;
|
|
381
|
-
return _regenerator["default"].wrap(function (_context6) {
|
|
382
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
383
|
-
case 0:
|
|
384
|
-
updatedNode = {
|
|
385
|
-
attrs: {
|
|
386
|
-
index: '1',
|
|
387
|
-
value: 'Updated Option',
|
|
388
|
-
error: false
|
|
389
|
-
},
|
|
390
|
-
nodeSize: 1
|
|
391
|
-
};
|
|
392
|
-
mockEditor._holdInlineDropdownToolbarIndex = '1';
|
|
393
|
-
_render16 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
394
|
-
selected: true
|
|
395
|
-
}))), queryByTestId = _render16.queryByTestId, rerender = _render16.rerender;
|
|
396
|
-
_context6.next = 1;
|
|
397
|
-
return (0, _react2.waitFor)(function () {
|
|
398
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
399
|
-
});
|
|
400
|
-
case 1:
|
|
401
|
-
rerender(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
402
|
-
node: updatedNode,
|
|
403
|
-
selected: true
|
|
404
|
-
})));
|
|
405
|
-
_react2.fireEvent.mouseDown(document.body);
|
|
406
|
-
_context6.next = 2;
|
|
407
|
-
return (0, _react2.waitFor)(function () {
|
|
408
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
409
|
-
});
|
|
410
|
-
case 2:
|
|
411
|
-
case "end":
|
|
412
|
-
return _context6.stop();
|
|
413
|
-
}
|
|
414
|
-
}, _callee6);
|
|
415
|
-
})));
|
|
416
|
-
it('rebinds the outside-click listener when the node prop changes while the toolbar is open', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
417
|
-
var addSpy, removeSpy, updatedNode, _render17, rerender, removeCallsBeforeRerender;
|
|
418
|
-
return _regenerator["default"].wrap(function (_context7) {
|
|
419
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
420
|
-
case 0:
|
|
421
|
-
addSpy = jest.spyOn(document, 'addEventListener');
|
|
422
|
-
removeSpy = jest.spyOn(document, 'removeEventListener');
|
|
423
|
-
updatedNode = _objectSpread(_objectSpread({}, mockNode), {}, {
|
|
424
|
-
attrs: _objectSpread(_objectSpread({}, mockNode.attrs), {}, {
|
|
425
|
-
value: 'Updated Option'
|
|
426
|
-
})
|
|
427
|
-
});
|
|
428
|
-
_render17 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
429
|
-
selected: true
|
|
430
|
-
}))), rerender = _render17.rerender;
|
|
431
|
-
_context7.next = 1;
|
|
432
|
-
return (0, _react2.waitFor)(function () {
|
|
433
|
-
expect(addSpy).toHaveBeenCalledWith('mousedown', expect.any(Function));
|
|
434
|
-
});
|
|
435
|
-
case 1:
|
|
436
|
-
removeCallsBeforeRerender = removeSpy.mock.calls.filter(function (_ref9) {
|
|
437
|
-
var _ref0 = (0, _slicedToArray2["default"])(_ref9, 1),
|
|
438
|
-
type = _ref0[0];
|
|
439
|
-
return type === 'mousedown';
|
|
440
|
-
}).length;
|
|
441
|
-
rerender(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
442
|
-
node: updatedNode,
|
|
443
|
-
selected: true
|
|
444
|
-
})));
|
|
445
|
-
_context7.next = 2;
|
|
446
|
-
return (0, _react2.waitFor)(function () {
|
|
447
|
-
var removeCallsAfterRerender = removeSpy.mock.calls.filter(function (_ref1) {
|
|
448
|
-
var _ref10 = (0, _slicedToArray2["default"])(_ref1, 1),
|
|
449
|
-
type = _ref10[0];
|
|
450
|
-
return type === 'mousedown';
|
|
451
|
-
}).length;
|
|
452
|
-
expect(removeCallsAfterRerender).toBeGreaterThan(removeCallsBeforeRerender);
|
|
453
|
-
expect(addSpy).toHaveBeenCalledWith('mousedown', expect.any(Function));
|
|
454
|
-
});
|
|
455
|
-
case 2:
|
|
456
|
-
addSpy.mockRestore();
|
|
457
|
-
removeSpy.mockRestore();
|
|
458
|
-
case 3:
|
|
459
|
-
case "end":
|
|
460
|
-
return _context7.stop();
|
|
461
|
-
}
|
|
462
|
-
}, _callee7);
|
|
463
|
-
})));
|
|
464
|
-
it('has correct border styling', function () {
|
|
465
|
-
var _render18 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
466
|
-
container = _render18.container;
|
|
467
|
-
var dropdownDiv = container.querySelector('div[style*="border"]');
|
|
468
|
-
expect(dropdownDiv).toHaveStyle({
|
|
469
|
-
border: '1px solid #C0C3CF'
|
|
470
|
-
});
|
|
471
|
-
});
|
|
472
|
-
it('has correct min width', function () {
|
|
473
|
-
var _render19 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
474
|
-
container = _render19.container;
|
|
475
|
-
var dropdownDiv = container.querySelector('div[style*="border"]');
|
|
476
|
-
expect(dropdownDiv).toHaveStyle({
|
|
477
|
-
minWidth: '178px'
|
|
478
|
-
});
|
|
479
|
-
});
|
|
480
|
-
it('positions chevron correctly', function () {
|
|
481
|
-
var _render20 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
482
|
-
container = _render20.container;
|
|
483
|
-
var chevron = container.querySelector('svg');
|
|
484
|
-
// Chevron styling is applied inline, just verify it rendered
|
|
485
|
-
if (chevron) {
|
|
486
|
-
expect(chevron).toBeInTheDocument();
|
|
487
|
-
} else {
|
|
488
|
-
expect(container).toBeInTheDocument();
|
|
489
|
-
}
|
|
490
|
-
});
|
|
491
|
-
it('has ellipsis for overflow text', function () {
|
|
492
|
-
var _render21 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
|
|
493
|
-
container = _render21.container;
|
|
494
|
-
var textContainer = container.querySelector('div[style*="overflow"]');
|
|
495
|
-
expect(textContainer).toHaveStyle({
|
|
496
|
-
textOverflow: 'ellipsis',
|
|
497
|
-
whiteSpace: 'nowrap'
|
|
498
|
-
});
|
|
499
|
-
});
|
|
500
|
-
it('portals toolbar into editor container when _tiptapContainerEl is set', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
501
|
-
var containerEl, editor;
|
|
502
|
-
return _regenerator["default"].wrap(function (_context8) {
|
|
503
|
-
while (1) switch (_context8.prev = _context8.next) {
|
|
504
|
-
case 0:
|
|
505
|
-
containerEl = document.createElement('div');
|
|
506
|
-
editor = buildMockEditor({
|
|
507
|
-
_tiptapContainerEl: containerEl
|
|
508
|
-
});
|
|
509
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
510
|
-
editor: editor,
|
|
511
|
-
selected: true
|
|
512
|
-
})));
|
|
513
|
-
_context8.next = 1;
|
|
514
|
-
return (0, _react2.waitFor)(function () {
|
|
515
|
-
expect(mockCreatePortal).toHaveBeenCalled();
|
|
516
|
-
});
|
|
517
|
-
case 1:
|
|
518
|
-
expect(mockCreatePortal.mock.calls[0][1]).toBe(containerEl);
|
|
519
|
-
case 2:
|
|
520
|
-
case "end":
|
|
521
|
-
return _context8.stop();
|
|
522
|
-
}
|
|
523
|
-
}, _callee8);
|
|
524
|
-
})));
|
|
525
|
-
it('portals toolbar into document.body when _tiptapContainerEl is missing', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
526
|
-
var editor;
|
|
527
|
-
return _regenerator["default"].wrap(function (_context9) {
|
|
528
|
-
while (1) switch (_context9.prev = _context9.next) {
|
|
529
|
-
case 0:
|
|
530
|
-
editor = buildMockEditor({
|
|
531
|
-
_tiptapContainerEl: undefined
|
|
532
|
-
});
|
|
533
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
534
|
-
editor: editor,
|
|
535
|
-
selected: true
|
|
536
|
-
})));
|
|
537
|
-
_context9.next = 1;
|
|
538
|
-
return (0, _react2.waitFor)(function () {
|
|
539
|
-
expect(mockCreatePortal).toHaveBeenCalled();
|
|
540
|
-
});
|
|
541
|
-
case 1:
|
|
542
|
-
expect(mockCreatePortal.mock.calls[0][1]).toBe(document.body);
|
|
543
|
-
case 2:
|
|
544
|
-
case "end":
|
|
545
|
-
return _context9.stop();
|
|
546
|
-
}
|
|
547
|
-
}, _callee9);
|
|
548
|
-
})));
|
|
549
|
-
it('passes editorCallback to InlineDropdownToolbar', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() {
|
|
550
|
-
var mockToolbarComponent, mockOptionsWithCallback, _render22, queryByTestId;
|
|
551
|
-
return _regenerator["default"].wrap(function (_context0) {
|
|
552
|
-
while (1) switch (_context0.prev = _context0.next) {
|
|
553
|
-
case 0:
|
|
554
|
-
mockToolbarComponent = jest.fn(function (_ref14) {
|
|
555
|
-
var editorCallback = _ref14.editorCallback;
|
|
556
|
-
editorCallback === null || editorCallback === void 0 || editorCallback({
|
|
557
|
-
instanceId: 'test-instance'
|
|
558
|
-
});
|
|
559
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
560
|
-
"data-testid": "inline-dropdown-toolbar"
|
|
561
|
-
}, "Toolbar");
|
|
562
|
-
});
|
|
563
|
-
mockOptionsWithCallback = {
|
|
564
|
-
respAreaToolbar: jest.fn(function () {
|
|
565
|
-
return mockToolbarComponent;
|
|
566
|
-
})
|
|
567
|
-
};
|
|
568
|
-
_render22 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
569
|
-
options: mockOptionsWithCallback,
|
|
570
|
-
selected: true
|
|
571
|
-
}))), queryByTestId = _render22.queryByTestId;
|
|
572
|
-
_context0.next = 1;
|
|
573
|
-
return (0, _react2.waitFor)(function () {
|
|
574
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
575
|
-
});
|
|
576
|
-
case 1:
|
|
577
|
-
case "end":
|
|
578
|
-
return _context0.stop();
|
|
579
|
-
}
|
|
580
|
-
}, _callee0);
|
|
581
|
-
})));
|
|
582
|
-
it('stores toolbar editor instance in ref when editorCallback is called', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() {
|
|
583
|
-
var capturedCallback, mockToolbarComponent, mockOptionsWithCallback, _render23, queryByTestId;
|
|
584
|
-
return _regenerator["default"].wrap(function (_context1) {
|
|
585
|
-
while (1) switch (_context1.prev = _context1.next) {
|
|
586
|
-
case 0:
|
|
587
|
-
mockToolbarComponent = function mockToolbarComponent(_ref16) {
|
|
588
|
-
var editorCallback = _ref16.editorCallback;
|
|
589
|
-
capturedCallback = editorCallback;
|
|
590
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
591
|
-
"data-testid": "inline-dropdown-toolbar"
|
|
592
|
-
}, "Toolbar");
|
|
593
|
-
};
|
|
594
|
-
mockOptionsWithCallback = {
|
|
595
|
-
respAreaToolbar: jest.fn(function () {
|
|
596
|
-
return mockToolbarComponent;
|
|
597
|
-
})
|
|
598
|
-
};
|
|
599
|
-
_render23 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
600
|
-
options: mockOptionsWithCallback,
|
|
601
|
-
selected: true
|
|
602
|
-
}))), queryByTestId = _render23.queryByTestId;
|
|
603
|
-
_context1.next = 1;
|
|
604
|
-
return (0, _react2.waitFor)(function () {
|
|
605
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
606
|
-
});
|
|
607
|
-
case 1:
|
|
608
|
-
// Verify callback exists
|
|
609
|
-
expect(capturedCallback).toBeDefined();
|
|
610
|
-
case 2:
|
|
611
|
-
case "end":
|
|
612
|
-
return _context1.stop();
|
|
613
|
-
}
|
|
614
|
-
}, _callee1);
|
|
615
|
-
})));
|
|
616
|
-
it('handles click outside logic with data-toolbar-for attribute', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
617
|
-
var editorWithInstanceId, capturedCallback, mockToolbarComponent, mockOptionsWithCallback, _render24, container, queryByTestId, otherToolbar;
|
|
618
|
-
return _regenerator["default"].wrap(function (_context10) {
|
|
619
|
-
while (1) switch (_context10.prev = _context10.next) {
|
|
620
|
-
case 0:
|
|
621
|
-
editorWithInstanceId = _objectSpread(_objectSpread({}, mockEditor), {}, {
|
|
622
|
-
instanceId: 'editor-123',
|
|
623
|
-
_toolbarOpened: false
|
|
624
|
-
}); // Mock the toolbar callback to set the toolbar editor instance
|
|
625
|
-
mockToolbarComponent = function mockToolbarComponent(_ref18) {
|
|
626
|
-
var editorCallback = _ref18.editorCallback;
|
|
627
|
-
_react["default"].useEffect(function () {
|
|
628
|
-
capturedCallback = editorCallback;
|
|
629
|
-
if (editorCallback) {
|
|
630
|
-
editorCallback({
|
|
631
|
-
instanceId: 'editor-123'
|
|
632
|
-
});
|
|
633
|
-
}
|
|
634
|
-
}, [editorCallback]);
|
|
635
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
636
|
-
"data-testid": "inline-dropdown-toolbar"
|
|
637
|
-
}, "Toolbar");
|
|
638
|
-
};
|
|
639
|
-
mockOptionsWithCallback = {
|
|
640
|
-
respAreaToolbar: jest.fn(function () {
|
|
641
|
-
return mockToolbarComponent;
|
|
642
|
-
})
|
|
643
|
-
};
|
|
644
|
-
_render24 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
645
|
-
editor: editorWithInstanceId,
|
|
646
|
-
options: mockOptionsWithCallback,
|
|
647
|
-
selected: true
|
|
648
|
-
}))), container = _render24.container, queryByTestId = _render24.queryByTestId;
|
|
649
|
-
_context10.next = 1;
|
|
650
|
-
return (0, _react2.waitFor)(function () {
|
|
651
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
652
|
-
});
|
|
653
|
-
case 1:
|
|
654
|
-
// Create an element with data-toolbar-for attribute
|
|
655
|
-
otherToolbar = document.createElement('div');
|
|
656
|
-
otherToolbar.setAttribute('data-toolbar-for', 'editor-456');
|
|
657
|
-
document.body.appendChild(otherToolbar);
|
|
658
|
-
_context10.next = 2;
|
|
659
|
-
return (0, _react2.waitFor)(function () {
|
|
660
|
-
_react2.fireEvent.mouseDown(otherToolbar);
|
|
661
|
-
});
|
|
662
|
-
case 2:
|
|
663
|
-
// Cleanup
|
|
664
|
-
document.body.removeChild(otherToolbar);
|
|
665
|
-
expect(container).toBeInTheDocument();
|
|
666
|
-
case 3:
|
|
667
|
-
case "end":
|
|
668
|
-
return _context10.stop();
|
|
669
|
-
}
|
|
670
|
-
}, _callee10);
|
|
671
|
-
})));
|
|
672
|
-
it('does not close when clicking inside same editor toolbar', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11() {
|
|
673
|
-
var editorWithInstanceId, toolbarEditorInstance, mockToolbarComponent, mockOptionsWithCallback;
|
|
674
|
-
return _regenerator["default"].wrap(function (_context11) {
|
|
675
|
-
while (1) switch (_context11.prev = _context11.next) {
|
|
676
|
-
case 0:
|
|
677
|
-
editorWithInstanceId = _objectSpread(_objectSpread({}, mockEditor), {}, {
|
|
678
|
-
instanceId: 'editor-123',
|
|
679
|
-
_toolbarOpened: false
|
|
680
|
-
});
|
|
681
|
-
mockToolbarComponent = function mockToolbarComponent(_ref20) {
|
|
682
|
-
var editorCallback = _ref20.editorCallback;
|
|
683
|
-
_react["default"].useEffect(function () {
|
|
684
|
-
if (editorCallback) {
|
|
685
|
-
editorCallback({
|
|
686
|
-
instanceId: 'editor-123'
|
|
687
|
-
});
|
|
688
|
-
toolbarEditorInstance = {
|
|
689
|
-
instanceId: 'editor-123'
|
|
690
|
-
};
|
|
691
|
-
}
|
|
692
|
-
}, [editorCallback]);
|
|
693
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
694
|
-
"data-testid": "inline-dropdown-toolbar"
|
|
695
|
-
}, "Toolbar");
|
|
696
|
-
};
|
|
697
|
-
mockOptionsWithCallback = {
|
|
698
|
-
respAreaToolbar: jest.fn(function () {
|
|
699
|
-
return mockToolbarComponent;
|
|
700
|
-
})
|
|
701
|
-
};
|
|
702
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
703
|
-
editor: editorWithInstanceId,
|
|
704
|
-
options: mockOptionsWithCallback,
|
|
705
|
-
selected: true
|
|
706
|
-
})));
|
|
707
|
-
_context11.next = 1;
|
|
708
|
-
return (0, _react2.waitFor)(function () {
|
|
709
|
-
expect(mockOptionsWithCallback.respAreaToolbar).toHaveBeenCalled();
|
|
710
|
-
});
|
|
711
|
-
case 1:
|
|
712
|
-
case "end":
|
|
713
|
-
return _context11.stop();
|
|
714
|
-
}
|
|
715
|
-
}, _callee11);
|
|
716
|
-
})));
|
|
717
|
-
it('checks editor._toolbarOpened in click outside handler', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
718
|
-
var editorWithToolbarOpened, _render25, queryByTestId;
|
|
719
|
-
return _regenerator["default"].wrap(function (_context12) {
|
|
720
|
-
while (1) switch (_context12.prev = _context12.next) {
|
|
721
|
-
case 0:
|
|
722
|
-
editorWithToolbarOpened = buildMockEditor({
|
|
723
|
-
_toolbarOpened: true
|
|
724
|
-
});
|
|
725
|
-
_render25 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
726
|
-
editor: editorWithToolbarOpened,
|
|
727
|
-
selected: true
|
|
728
|
-
}))), queryByTestId = _render25.queryByTestId;
|
|
729
|
-
_context12.next = 1;
|
|
730
|
-
return (0, _react2.waitFor)(function () {
|
|
731
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
732
|
-
});
|
|
733
|
-
case 1:
|
|
734
|
-
// When _toolbarOpened is true, clicking outside should not close
|
|
735
|
-
_react2.fireEvent.mouseDown(document.body);
|
|
736
|
-
|
|
737
|
-
// Toolbar should still be visible
|
|
738
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
739
|
-
case 2:
|
|
740
|
-
case "end":
|
|
741
|
-
return _context12.stop();
|
|
742
|
-
}
|
|
743
|
-
}, _callee12);
|
|
744
|
-
})));
|
|
745
|
-
it('does not close toolbar when clicking the page scrollbar (documentElement)', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13() {
|
|
746
|
-
var _render26, queryByTestId;
|
|
747
|
-
return _regenerator["default"].wrap(function (_context13) {
|
|
748
|
-
while (1) switch (_context13.prev = _context13.next) {
|
|
749
|
-
case 0:
|
|
750
|
-
_render26 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
751
|
-
selected: true
|
|
752
|
-
}))), queryByTestId = _render26.queryByTestId;
|
|
753
|
-
_context13.next = 1;
|
|
754
|
-
return (0, _react2.waitFor)(function () {
|
|
755
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
756
|
-
});
|
|
757
|
-
case 1:
|
|
758
|
-
_react2.fireEvent.mouseDown(document.documentElement);
|
|
759
|
-
_context13.next = 2;
|
|
760
|
-
return (0, _react2.waitFor)(function () {
|
|
761
|
-
expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
|
|
762
|
-
});
|
|
763
|
-
case 2:
|
|
764
|
-
case "end":
|
|
765
|
-
return _context13.stop();
|
|
766
|
-
}
|
|
767
|
-
}, _callee13);
|
|
768
|
-
})));
|
|
769
|
-
it('renders delete control on portaled custom toolbar when container el is set', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee14() {
|
|
770
|
-
var _render27, findByLabelText, _t;
|
|
771
|
-
return _regenerator["default"].wrap(function (_context14) {
|
|
772
|
-
while (1) switch (_context14.prev = _context14.next) {
|
|
773
|
-
case 0:
|
|
774
|
-
_render27 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
775
|
-
selected: true
|
|
776
|
-
}))), findByLabelText = _render27.findByLabelText;
|
|
777
|
-
_t = expect;
|
|
778
|
-
_context14.next = 1;
|
|
779
|
-
return findByLabelText('Delete');
|
|
780
|
-
case 1:
|
|
781
|
-
_t(_context14.sent).toBeInTheDocument();
|
|
782
|
-
case 2:
|
|
783
|
-
case "end":
|
|
784
|
-
return _context14.stop();
|
|
785
|
-
}
|
|
786
|
-
}, _callee14);
|
|
787
|
-
})));
|
|
788
|
-
it('does not render portaled delete control when _tiptapContainerEl is missing', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee15() {
|
|
789
|
-
var editor, _render28, queryByLabelText, findByTestId, _t2;
|
|
790
|
-
return _regenerator["default"].wrap(function (_context15) {
|
|
791
|
-
while (1) switch (_context15.prev = _context15.next) {
|
|
792
|
-
case 0:
|
|
793
|
-
editor = buildMockEditor({
|
|
794
|
-
_tiptapContainerEl: undefined
|
|
795
|
-
});
|
|
796
|
-
_render28 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
797
|
-
editor: editor,
|
|
798
|
-
selected: true
|
|
799
|
-
}))), queryByLabelText = _render28.queryByLabelText, findByTestId = _render28.findByTestId;
|
|
800
|
-
_t2 = expect;
|
|
801
|
-
_context15.next = 1;
|
|
802
|
-
return findByTestId('inline-dropdown-toolbar');
|
|
803
|
-
case 1:
|
|
804
|
-
_t2(_context15.sent).toBeInTheDocument();
|
|
805
|
-
expect(queryByLabelText('Delete')).not.toBeInTheDocument();
|
|
806
|
-
case 2:
|
|
807
|
-
case "end":
|
|
808
|
-
return _context15.stop();
|
|
809
|
-
}
|
|
810
|
-
}, _callee15);
|
|
811
|
-
})));
|
|
812
|
-
it('delete clears toolbar flag, removes node range, dispatches, and focuses', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee16() {
|
|
813
|
-
var _render29, findByLabelText, _t3;
|
|
814
|
-
return _regenerator["default"].wrap(function (_context16) {
|
|
815
|
-
while (1) switch (_context16.prev = _context16.next) {
|
|
816
|
-
case 0:
|
|
817
|
-
mockEditor._toolbarOpened = true;
|
|
818
|
-
_render29 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
819
|
-
selected: true
|
|
820
|
-
}))), findByLabelText = _render29.findByLabelText;
|
|
821
|
-
_t3 = _react2.fireEvent;
|
|
822
|
-
_context16.next = 1;
|
|
823
|
-
return findByLabelText('Delete');
|
|
824
|
-
case 1:
|
|
825
|
-
_t3.mouseDown.call(_t3, _context16.sent);
|
|
826
|
-
expect(mockEditor.state.tr["delete"]).toHaveBeenCalledWith(5, 6);
|
|
827
|
-
expect(mockEditor.view.dispatch).toHaveBeenCalledTimes(2);
|
|
828
|
-
expect(mockEditor.view.dispatch).toHaveBeenNthCalledWith(1, mockEditor.state.tr);
|
|
829
|
-
expect(mockEditor.view.dispatch).toHaveBeenNthCalledWith(2, mockEditor.state.tr);
|
|
830
|
-
expect(mockEditor._toolbarOpened).toBe(false);
|
|
831
|
-
expect(mockEditor.commands.focus).toHaveBeenCalled();
|
|
832
|
-
case 2:
|
|
833
|
-
case "end":
|
|
834
|
-
return _context16.stop();
|
|
835
|
-
}
|
|
836
|
-
}, _callee16);
|
|
837
|
-
})));
|
|
838
|
-
});
|
|
839
|
-
//# sourceMappingURL=InlineDropdown.test.js.map
|