@pie-lib/editable-html 13.1.0-beta.1 → 13.1.0-beta.3
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/lib/editor.js +1 -1
- package/package.json +3 -3
- package/lib/__tests__/editor-utils.test.js +0 -164
- package/lib/__tests__/editor-utils.test.js.map +0 -1
- package/lib/__tests__/serialization.test.js +0 -241
- package/lib/__tests__/serialization.test.js.map +0 -1
- package/lib/__tests__/utils.js +0 -79
- package/lib/__tests__/utils.js.map +0 -1
- package/lib/plugins/image/__tests__/component.test.js +0 -96
- package/lib/plugins/image/__tests__/component.test.js.map +0 -1
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -131
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js.map +0 -1
- package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -21
- package/lib/plugins/image/__tests__/image-toolbar.test.js.map +0 -1
- package/lib/plugins/image/__tests__/index.test.js +0 -86
- package/lib/plugins/image/__tests__/index.test.js.map +0 -1
- package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -112
- package/lib/plugins/image/__tests__/insert-image-handler.test.js.map +0 -1
- package/lib/plugins/image/__tests__/mock-change.js +0 -22
- package/lib/plugins/image/__tests__/mock-change.js.map +0 -1
- package/lib/plugins/list/__tests__/index.test.js +0 -63
- package/lib/plugins/list/__tests__/index.test.js.map +0 -1
- package/lib/plugins/math/__tests__/index.test.js +0 -284
- package/lib/plugins/math/__tests__/index.test.js.map +0 -1
- package/lib/plugins/media/__tests__/index.test.js +0 -69
- package/lib/plugins/media/__tests__/index.test.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +0 -93
- package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js.map +0 -1
- package/lib/plugins/table/__tests__/index.test.js +0 -416
- package/lib/plugins/table/__tests__/index.test.js.map +0 -1
- package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -81
- package/lib/plugins/table/__tests__/table-toolbar.test.js.map +0 -1
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -153
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js.map +0 -1
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -47
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js.map +0 -1
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -112
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js.map +0 -1
- package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -118
- package/lib/plugins/toolbar/__tests__/toolbar.test.js.map +0 -1
- package/src/__tests__/editor-utils.test.js +0 -162
- package/src/__tests__/serialization.test.js +0 -290
- package/src/__tests__/utils.js +0 -36
- package/src/plugins/image/__tests__/component.test.jsx +0 -73
- package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +0 -90
- package/src/plugins/image/__tests__/image-toolbar.test.jsx +0 -12
- package/src/plugins/image/__tests__/index.test.js +0 -92
- package/src/plugins/image/__tests__/insert-image-handler.test.js +0 -113
- package/src/plugins/image/__tests__/mock-change.js +0 -15
- package/src/plugins/list/__tests__/index.test.js +0 -52
- package/src/plugins/math/__tests__/index.test.jsx +0 -264
- package/src/plugins/media/__tests__/index.test.js +0 -75
- package/src/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +0 -71
- package/src/plugins/table/__tests__/index.test.jsx +0 -401
- package/src/plugins/table/__tests__/table-toolbar.test.jsx +0 -75
- package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +0 -123
- package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +0 -40
- package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +0 -97
- package/src/plugins/toolbar/__tests__/toolbar.test.jsx +0 -112
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
var _slateEditTable = _interopRequireDefault(require("slate-edit-table"));
|
|
6
|
-
var _index = _interopRequireWildcard(require("../index"));
|
|
7
|
-
var _slate = require("slate");
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
-
jest.mock('slate-edit-table', function () {
|
|
11
|
-
var mock = {
|
|
12
|
-
"default": jest.fn().mockReturnThis(),
|
|
13
|
-
utils: {
|
|
14
|
-
isSelectionInTable: jest.fn().mockReturnValue(true),
|
|
15
|
-
createTable: jest.fn(function (c) {
|
|
16
|
-
return {
|
|
17
|
-
toJSON: jest.fn().mockReturnValue({
|
|
18
|
-
object: 'block',
|
|
19
|
-
type: 'table'
|
|
20
|
-
})
|
|
21
|
-
};
|
|
22
|
-
})
|
|
23
|
-
},
|
|
24
|
-
changes: {
|
|
25
|
-
insertTable: jest.fn(function (c) {
|
|
26
|
-
return c;
|
|
27
|
-
})
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
return jest.fn().mockReturnValue(mock);
|
|
31
|
-
});
|
|
32
|
-
describe('table', function () {
|
|
33
|
-
describe('toolbar', function () {
|
|
34
|
-
describe('onClick', function () {
|
|
35
|
-
var plugin;
|
|
36
|
-
var onChange;
|
|
37
|
-
var findDescendant;
|
|
38
|
-
var insertBlock;
|
|
39
|
-
var changeMock;
|
|
40
|
-
beforeEach(function () {
|
|
41
|
-
plugin = (0, _index["default"])();
|
|
42
|
-
onChange = jest.fn();
|
|
43
|
-
insertBlock = jest.fn();
|
|
44
|
-
findDescendant = jest.fn();
|
|
45
|
-
changeMock = jest.fn().mockReturnValue({
|
|
46
|
-
insertBlock: insertBlock,
|
|
47
|
-
value: {
|
|
48
|
-
document: {
|
|
49
|
-
findDescendant: findDescendant
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
it('calls utils.createTable', function () {
|
|
55
|
-
plugin.toolbar.onClick({
|
|
56
|
-
change: changeMock
|
|
57
|
-
}, onChange);
|
|
58
|
-
expect((0, _slateEditTable["default"])().utils.createTable).toHaveBeenCalledWith(2, 2);
|
|
59
|
-
});
|
|
60
|
-
it('creates table with border: 1 as default', function () {
|
|
61
|
-
plugin.toolbar.onClick({
|
|
62
|
-
change: changeMock
|
|
63
|
-
}, onChange);
|
|
64
|
-
expect(insertBlock).toHaveBeenCalledWith(_slate.Block.create({
|
|
65
|
-
key: '2',
|
|
66
|
-
type: 'table',
|
|
67
|
-
data: {
|
|
68
|
-
border: '1',
|
|
69
|
-
newTable: true
|
|
70
|
-
}
|
|
71
|
-
}));
|
|
72
|
-
});
|
|
73
|
-
it('moves cursor to first cell of the table and removes the newTable property', function () {
|
|
74
|
-
var dataRemoveFn = jest.fn().mockReturnValue({
|
|
75
|
-
border: '1'
|
|
76
|
-
});
|
|
77
|
-
var setNodeByKey = jest.fn();
|
|
78
|
-
var newTableBlock = {
|
|
79
|
-
key: '2',
|
|
80
|
-
data: {
|
|
81
|
-
remove: dataRemoveFn
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
var collapseToStartOf = jest.fn();
|
|
85
|
-
changeMock = jest.fn().mockReturnValue({
|
|
86
|
-
insertBlock: insertBlock,
|
|
87
|
-
collapseToStartOf: collapseToStartOf,
|
|
88
|
-
setNodeByKey: setNodeByKey,
|
|
89
|
-
value: {
|
|
90
|
-
document: {
|
|
91
|
-
findDescendant: jest.fn().mockReturnValue(newTableBlock)
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
plugin.toolbar.onClick({
|
|
96
|
-
change: changeMock
|
|
97
|
-
}, onChange);
|
|
98
|
-
expect(collapseToStartOf).toHaveBeenCalledWith(newTableBlock);
|
|
99
|
-
expect(dataRemoveFn).toHaveBeenCalledWith('newTable');
|
|
100
|
-
expect(setNodeByKey).toHaveBeenCalledWith('2', {
|
|
101
|
-
data: {
|
|
102
|
-
border: '1'
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
describe('supports', function () {
|
|
108
|
-
var assertSupports = function assertSupports(inTable, object, expected) {
|
|
109
|
-
it("inTable: ".concat(inTable, ", type: ").concat(object, " => ").concat(expected), function () {
|
|
110
|
-
(0, _slateEditTable["default"])().utils.isSelectionInTable.mockReturnValue(inTable);
|
|
111
|
-
var plugin = (0, _index["default"])();
|
|
112
|
-
var supports = plugin.toolbar.supports({
|
|
113
|
-
object: object
|
|
114
|
-
});
|
|
115
|
-
expect(supports).toEqual(expected);
|
|
116
|
-
});
|
|
117
|
-
};
|
|
118
|
-
assertSupports(true, 'block', true);
|
|
119
|
-
assertSupports(false, 'block', false);
|
|
120
|
-
assertSupports(true, 'inline', false);
|
|
121
|
-
assertSupports(false, 'inline', false);
|
|
122
|
-
});
|
|
123
|
-
describe('customToolbar', function () {
|
|
124
|
-
describe('toggleBorder', function () {
|
|
125
|
-
var assertToggle = function assertToggle(border, expectedBorder) {
|
|
126
|
-
describe("with initial border of ".concat(border), function () {
|
|
127
|
-
var change;
|
|
128
|
-
var done;
|
|
129
|
-
beforeEach(function () {
|
|
130
|
-
var plugin = (0, _index["default"])();
|
|
131
|
-
change = {
|
|
132
|
-
setNodeByKey: jest.fn().mockReturnThis()
|
|
133
|
-
};
|
|
134
|
-
plugin.utils.getTableBlock = jest.fn().mockReturnValue({
|
|
135
|
-
key: 'tableKey',
|
|
136
|
-
data: _slate.Data.create({
|
|
137
|
-
border: border
|
|
138
|
-
})
|
|
139
|
-
});
|
|
140
|
-
var node = {
|
|
141
|
-
key: 'nodeKey'
|
|
142
|
-
};
|
|
143
|
-
var value = {
|
|
144
|
-
change: jest.fn().mockReturnValue(change)
|
|
145
|
-
};
|
|
146
|
-
done = jest.fn();
|
|
147
|
-
var Comp = plugin.toolbar.customToolbar(node, value, done);
|
|
148
|
-
var c = Comp();
|
|
149
|
-
c.props.onToggleBorder();
|
|
150
|
-
});
|
|
151
|
-
it("calls setNodeByKey with ".concat(expectedBorder), function () {
|
|
152
|
-
expect(change.setNodeByKey).toHaveBeenCalledWith('tableKey', {
|
|
153
|
-
data: _slate.Data.create({
|
|
154
|
-
border: expectedBorder
|
|
155
|
-
})
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
it('calls onToolbarDone', function () {
|
|
159
|
-
expect(done).toHaveBeenCalledWith(change, false);
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
};
|
|
163
|
-
assertToggle(null, '1');
|
|
164
|
-
assertToggle(undefined, '1');
|
|
165
|
-
assertToggle('0', '1');
|
|
166
|
-
assertToggle('1', '0');
|
|
167
|
-
assertToggle('2', '0');
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
describe('normalizeNode', function () {
|
|
171
|
-
it('should exit the function if the node is not of type document', function () {
|
|
172
|
-
var tablePlugin = (0, _index["default"])();
|
|
173
|
-
var returnValue = tablePlugin.normalizeNode({
|
|
174
|
-
object: 'table'
|
|
175
|
-
});
|
|
176
|
-
expect(returnValue).toEqual(undefined);
|
|
177
|
-
});
|
|
178
|
-
it('should exit there are no changes needed', function () {
|
|
179
|
-
var tablePlugin = (0, _index["default"])();
|
|
180
|
-
var nodes = {
|
|
181
|
-
size: 3,
|
|
182
|
-
findLastIndex: jest.fn().mockReturnValue(1)
|
|
183
|
-
};
|
|
184
|
-
var returnValue = tablePlugin.normalizeNode({
|
|
185
|
-
object: 'document',
|
|
186
|
-
nodes: nodes,
|
|
187
|
-
findDescendant: jest.fn().mockReturnValue({
|
|
188
|
-
object: 'block',
|
|
189
|
-
type: 'table'
|
|
190
|
-
}),
|
|
191
|
-
getParent: jest.fn().mockReturnValue(undefined)
|
|
192
|
-
});
|
|
193
|
-
expect(returnValue).toEqual(undefined);
|
|
194
|
-
});
|
|
195
|
-
it('should return a function if a table does not have a node before or after it', function () {
|
|
196
|
-
var tablePlugin = (0, _index["default"])();
|
|
197
|
-
var nodes = [{
|
|
198
|
-
object: 'block',
|
|
199
|
-
type: 'table',
|
|
200
|
-
key: '99',
|
|
201
|
-
data: _slate.Data.create({
|
|
202
|
-
newTable: true
|
|
203
|
-
})
|
|
204
|
-
}];
|
|
205
|
-
var findDescendant = jest.fn(function (callback) {
|
|
206
|
-
nodes.forEach(function (n) {
|
|
207
|
-
return callback(n);
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
var change = {
|
|
211
|
-
insertNodeByPath: jest.fn(),
|
|
212
|
-
value: {
|
|
213
|
-
document: {
|
|
214
|
-
getPath: jest.fn().mockReturnValue(_slate.PathUtils.create([0, 0]))
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
};
|
|
218
|
-
var returnValue = tablePlugin.normalizeNode({
|
|
219
|
-
object: 'document',
|
|
220
|
-
findDescendant: findDescendant,
|
|
221
|
-
getPath: jest.fn().mockReturnValue(_slate.PathUtils.create([0, 0])),
|
|
222
|
-
getPreviousNode: jest.fn().mockReturnValue(undefined),
|
|
223
|
-
getNextNode: jest.fn().mockReturnValue(undefined)
|
|
224
|
-
});
|
|
225
|
-
expect(returnValue).toEqual(expect.any(Function));
|
|
226
|
-
returnValue(change);
|
|
227
|
-
expect(change.insertNodeByPath).toHaveBeenCalledWith([0], 0, {
|
|
228
|
-
object: 'block',
|
|
229
|
-
type: 'div'
|
|
230
|
-
});
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
});
|
|
235
|
-
describe('parseStyleString', function () {
|
|
236
|
-
var parses = function parses(s, expected) {
|
|
237
|
-
it("parses ".concat(s, " -> ").concat(JSON.stringify(expected)), function () {
|
|
238
|
-
var result = (0, _index.parseStyleString)(s);
|
|
239
|
-
expect(result).toEqual(expected);
|
|
240
|
-
});
|
|
241
|
-
};
|
|
242
|
-
parses(' width: 10px ', {
|
|
243
|
-
width: '10px'
|
|
244
|
-
});
|
|
245
|
-
parses(' width: 10px; ', {
|
|
246
|
-
width: '10px'
|
|
247
|
-
});
|
|
248
|
-
parses(' border-width: 10px; ', {
|
|
249
|
-
'border-width': '10px'
|
|
250
|
-
});
|
|
251
|
-
parses(' border: solid 1px red; height: 1px', {
|
|
252
|
-
border: 'solid 1px red',
|
|
253
|
-
height: '1px'
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
describe('toStyleString', function () {
|
|
257
|
-
var styleString = function styleString(o, expected) {
|
|
258
|
-
it("".concat(JSON.stringify(s), " -> ").concat(expected), function () {
|
|
259
|
-
var result = toStyleString(o);
|
|
260
|
-
expect(result).toEqual(expected);
|
|
261
|
-
});
|
|
262
|
-
};
|
|
263
|
-
});
|
|
264
|
-
describe('reactAttributes', function () {
|
|
265
|
-
var attributes = function attributes(o, expected) {
|
|
266
|
-
it("".concat(JSON.stringify(o), " -> ").concat(JSON.stringify(expected)), function () {
|
|
267
|
-
var result = (0, _index.reactAttributes)(o);
|
|
268
|
-
expect(result).toEqual(expected);
|
|
269
|
-
});
|
|
270
|
-
};
|
|
271
|
-
attributes({
|
|
272
|
-
'border-width': '10px',
|
|
273
|
-
'line-height': 1.56
|
|
274
|
-
}, {
|
|
275
|
-
borderWidth: '10px',
|
|
276
|
-
lineHeight: '1.56'
|
|
277
|
-
});
|
|
278
|
-
});
|
|
279
|
-
describe('serialization', function () {
|
|
280
|
-
describe('deserialize', function () {
|
|
281
|
-
var next;
|
|
282
|
-
beforeEach(function () {
|
|
283
|
-
next = jest.fn().mockReturnValue([]);
|
|
284
|
-
});
|
|
285
|
-
describe('table', function () {
|
|
286
|
-
var el;
|
|
287
|
-
var out;
|
|
288
|
-
beforeEach(function () {
|
|
289
|
-
el = {
|
|
290
|
-
tagName: 'table',
|
|
291
|
-
children: [],
|
|
292
|
-
getAttribute: jest.fn(function (name) {
|
|
293
|
-
switch (name) {
|
|
294
|
-
case 'border':
|
|
295
|
-
return '1';
|
|
296
|
-
case 'cellspacing':
|
|
297
|
-
return '2';
|
|
298
|
-
case 'cellpadding':
|
|
299
|
-
return '3';
|
|
300
|
-
case 'class':
|
|
301
|
-
return 'table-class';
|
|
302
|
-
case 'style':
|
|
303
|
-
return 'width: 10px';
|
|
304
|
-
}
|
|
305
|
-
})
|
|
306
|
-
};
|
|
307
|
-
out = _index.serialization.deserialize(el, next);
|
|
308
|
-
});
|
|
309
|
-
var assertData = function assertData(name, value) {
|
|
310
|
-
it("data.".concat(name, " should eql ").concat(value), function () {
|
|
311
|
-
expect(out.data[name]).toEqual(value);
|
|
312
|
-
});
|
|
313
|
-
};
|
|
314
|
-
assertData('border', '1');
|
|
315
|
-
assertData('cellspacing', '2');
|
|
316
|
-
assertData('cellpadding', '3');
|
|
317
|
-
assertData('class', 'table-class');
|
|
318
|
-
assertData('style', {
|
|
319
|
-
width: '10px'
|
|
320
|
-
});
|
|
321
|
-
it('returns a table block', function () {
|
|
322
|
-
expect(out).toMatchObject({
|
|
323
|
-
object: 'block',
|
|
324
|
-
type: 'table',
|
|
325
|
-
nodes: []
|
|
326
|
-
});
|
|
327
|
-
});
|
|
328
|
-
});
|
|
329
|
-
it('deserializes tr', function () {
|
|
330
|
-
var el = {
|
|
331
|
-
tagName: 'tr',
|
|
332
|
-
children: []
|
|
333
|
-
};
|
|
334
|
-
var out = _index.serialization.deserialize(el, next);
|
|
335
|
-
expect(out).toEqual({
|
|
336
|
-
object: 'block',
|
|
337
|
-
type: 'table_row',
|
|
338
|
-
nodes: []
|
|
339
|
-
});
|
|
340
|
-
});
|
|
341
|
-
it('deserializes td', function () {
|
|
342
|
-
var el = {
|
|
343
|
-
tagName: 'td',
|
|
344
|
-
childNodes: [],
|
|
345
|
-
getAttribute: jest.fn(function (name) {
|
|
346
|
-
var o = {
|
|
347
|
-
"class": 'class name',
|
|
348
|
-
colspan: '1',
|
|
349
|
-
rowspan: '1'
|
|
350
|
-
};
|
|
351
|
-
return o[name];
|
|
352
|
-
})
|
|
353
|
-
};
|
|
354
|
-
var out = _index.serialization.deserialize(el, next);
|
|
355
|
-
expect(out).toEqual({
|
|
356
|
-
object: 'block',
|
|
357
|
-
type: 'table_cell',
|
|
358
|
-
nodes: [],
|
|
359
|
-
data: {
|
|
360
|
-
colspan: '1',
|
|
361
|
-
rowspan: '1',
|
|
362
|
-
"class": 'class name',
|
|
363
|
-
header: false
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
});
|
|
367
|
-
});
|
|
368
|
-
describe('serialize', function () {
|
|
369
|
-
it('serializes table', function () {
|
|
370
|
-
var el = _index.serialization.serialize({
|
|
371
|
-
object: 'block',
|
|
372
|
-
type: 'table',
|
|
373
|
-
nodes: [],
|
|
374
|
-
data: _slate.Data.create({
|
|
375
|
-
border: '1',
|
|
376
|
-
cellpadding: '2',
|
|
377
|
-
cellspacing: '3'
|
|
378
|
-
})
|
|
379
|
-
});
|
|
380
|
-
expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("table", {
|
|
381
|
-
border: "1",
|
|
382
|
-
cellPadding: "2",
|
|
383
|
-
cellSpacing: "3"
|
|
384
|
-
}, /*#__PURE__*/_react["default"].createElement("tbody", null)));
|
|
385
|
-
});
|
|
386
|
-
it('serializes table_row', function () {
|
|
387
|
-
var el = _index.serialization.serialize({
|
|
388
|
-
object: 'block',
|
|
389
|
-
type: 'table_row',
|
|
390
|
-
nodes: []
|
|
391
|
-
});
|
|
392
|
-
expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("tr", null));
|
|
393
|
-
});
|
|
394
|
-
it('serializes table_cell', function () {
|
|
395
|
-
var el = _index.serialization.serialize({
|
|
396
|
-
object: 'block',
|
|
397
|
-
type: 'table_cell',
|
|
398
|
-
nodes: [],
|
|
399
|
-
data: _slate.Data.create({
|
|
400
|
-
header: false,
|
|
401
|
-
style: {
|
|
402
|
-
width: '10px'
|
|
403
|
-
},
|
|
404
|
-
"class": 'foo'
|
|
405
|
-
})
|
|
406
|
-
});
|
|
407
|
-
expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("td", {
|
|
408
|
-
style: {
|
|
409
|
-
width: '10px'
|
|
410
|
-
},
|
|
411
|
-
className: 'foo'
|
|
412
|
-
}));
|
|
413
|
-
});
|
|
414
|
-
});
|
|
415
|
-
});
|
|
416
|
-
//# sourceMappingURL=index.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","names":["_slateEditTable","_interopRequireDefault","require","_index","_interopRequireWildcard","_slate","_react","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","jest","mock","fn","mockReturnThis","utils","isSelectionInTable","mockReturnValue","createTable","c","toJSON","object","type","changes","insertTable","describe","plugin","onChange","findDescendant","insertBlock","changeMock","beforeEach","TablePlugin","value","document","it","toolbar","onClick","change","expect","EditTable","toHaveBeenCalledWith","Block","create","key","data","border","newTable","dataRemoveFn","setNodeByKey","newTableBlock","remove","collapseToStartOf","assertSupports","inTable","expected","concat","supports","toEqual","assertToggle","expectedBorder","done","getTableBlock","Data","node","Comp","customToolbar","props","onToggleBorder","undefined","tablePlugin","returnValue","normalizeNode","nodes","size","findLastIndex","getParent","callback","forEach","insertNodeByPath","getPath","PathUtils","getPreviousNode","getNextNode","any","Function","parses","s","JSON","stringify","result","parseStyleString","width","height","styleString","toStyleString","attributes","reactAttributes","borderWidth","lineHeight","next","el","out","tagName","children","getAttribute","name","serialization","deserialize","assertData","toMatchObject","childNodes","colspan","rowspan","header","serialize","cellpadding","cellspacing","createElement","cellPadding","cellSpacing","style","className"],"sources":["../../../../src/plugins/table/__tests__/index.test.jsx"],"sourcesContent":["import EditTable from 'slate-edit-table';\nimport TablePlugin, { parseStyleString, reactAttributes, serialization } from '../index';\nimport { Block, Data, PathUtils } from 'slate';\nimport React from 'react';\n\njest.mock('slate-edit-table', () => {\n const mock = {\n default: jest.fn().mockReturnThis(),\n utils: {\n isSelectionInTable: jest.fn().mockReturnValue(true),\n createTable: jest.fn(function (c) {\n return {\n toJSON: jest.fn().mockReturnValue({ object: 'block', type: 'table' }),\n };\n }),\n },\n changes: {\n insertTable: jest.fn(function (c) {\n return c;\n }),\n },\n };\n\n return jest.fn().mockReturnValue(mock);\n});\n\ndescribe('table', () => {\n describe('toolbar', () => {\n describe('onClick', () => {\n let plugin;\n let onChange;\n let findDescendant;\n let insertBlock;\n let changeMock;\n\n beforeEach(() => {\n plugin = TablePlugin();\n onChange = jest.fn();\n insertBlock = jest.fn();\n findDescendant = jest.fn();\n changeMock = jest.fn().mockReturnValue({\n insertBlock,\n value: {\n document: {\n findDescendant,\n },\n },\n });\n });\n\n it('calls utils.createTable', () => {\n plugin.toolbar.onClick({ change: changeMock }, onChange);\n\n expect(EditTable().utils.createTable).toHaveBeenCalledWith(2, 2);\n });\n\n it('creates table with border: 1 as default', () => {\n plugin.toolbar.onClick({ change: changeMock }, onChange);\n\n expect(insertBlock).toHaveBeenCalledWith(\n Block.create({ key: '2', type: 'table', data: { border: '1', newTable: true } }),\n );\n });\n\n it('moves cursor to first cell of the table and removes the newTable property', () => {\n const dataRemoveFn = jest.fn().mockReturnValue({ border: '1' });\n const setNodeByKey = jest.fn();\n const newTableBlock = {\n key: '2',\n data: {\n remove: dataRemoveFn,\n },\n };\n const collapseToStartOf = jest.fn();\n\n changeMock = jest.fn().mockReturnValue({\n insertBlock,\n collapseToStartOf,\n setNodeByKey,\n value: {\n document: {\n findDescendant: jest.fn().mockReturnValue(newTableBlock),\n },\n },\n });\n plugin.toolbar.onClick({ change: changeMock }, onChange);\n\n expect(collapseToStartOf).toHaveBeenCalledWith(newTableBlock);\n expect(dataRemoveFn).toHaveBeenCalledWith('newTable');\n expect(setNodeByKey).toHaveBeenCalledWith('2', { data: { border: '1' } });\n });\n });\n\n describe('supports', () => {\n const assertSupports = (inTable, object, expected) => {\n it(`inTable: ${inTable}, type: ${object} => ${expected}`, () => {\n EditTable().utils.isSelectionInTable.mockReturnValue(inTable);\n const plugin = TablePlugin();\n const supports = plugin.toolbar.supports({ object });\n expect(supports).toEqual(expected);\n });\n };\n\n assertSupports(true, 'block', true);\n assertSupports(false, 'block', false);\n assertSupports(true, 'inline', false);\n assertSupports(false, 'inline', false);\n });\n\n describe('customToolbar', () => {\n describe('toggleBorder', () => {\n const assertToggle = (border, expectedBorder) => {\n describe(`with initial border of ${border}`, () => {\n let change;\n let done;\n\n beforeEach(() => {\n const plugin = TablePlugin();\n change = {\n setNodeByKey: jest.fn().mockReturnThis(),\n };\n plugin.utils.getTableBlock = jest.fn().mockReturnValue({\n key: 'tableKey',\n data: Data.create({ border }),\n });\n const node = { key: 'nodeKey' };\n const value = {\n change: jest.fn().mockReturnValue(change),\n };\n done = jest.fn();\n const Comp = plugin.toolbar.customToolbar(node, value, done);\n const c = Comp();\n c.props.onToggleBorder();\n });\n\n it(`calls setNodeByKey with ${expectedBorder}`, () => {\n expect(change.setNodeByKey).toHaveBeenCalledWith('tableKey', {\n data: Data.create({ border: expectedBorder }),\n });\n });\n\n it('calls onToolbarDone', () => {\n expect(done).toHaveBeenCalledWith(change, false);\n });\n });\n };\n\n assertToggle(null, '1');\n assertToggle(undefined, '1');\n assertToggle('0', '1');\n assertToggle('1', '0');\n assertToggle('2', '0');\n });\n });\n\n describe('normalizeNode', () => {\n it('should exit the function if the node is not of type document', () => {\n const tablePlugin = TablePlugin();\n const returnValue = tablePlugin.normalizeNode({ object: 'table' });\n\n expect(returnValue).toEqual(undefined);\n });\n\n it('should exit there are no changes needed', () => {\n const tablePlugin = TablePlugin();\n const nodes = {\n size: 3,\n findLastIndex: jest.fn().mockReturnValue(1),\n };\n const returnValue = tablePlugin.normalizeNode({\n object: 'document',\n nodes,\n findDescendant: jest.fn().mockReturnValue({ object: 'block', type: 'table' }),\n getParent: jest.fn().mockReturnValue(undefined),\n });\n expect(returnValue).toEqual(undefined);\n });\n\n it('should return a function if a table does not have a node before or after it', () => {\n const tablePlugin = TablePlugin();\n const nodes = [\n {\n object: 'block',\n type: 'table',\n key: '99',\n data: Data.create({\n newTable: true,\n }),\n },\n ];\n const findDescendant = jest.fn((callback) => {\n nodes.forEach((n) => callback(n));\n });\n const change = {\n insertNodeByPath: jest.fn(),\n value: {\n document: {\n getPath: jest.fn().mockReturnValue(PathUtils.create([0, 0])),\n },\n },\n };\n\n const returnValue = tablePlugin.normalizeNode({\n object: 'document',\n findDescendant,\n getPath: jest.fn().mockReturnValue(PathUtils.create([0, 0])),\n getPreviousNode: jest.fn().mockReturnValue(undefined),\n getNextNode: jest.fn().mockReturnValue(undefined),\n });\n\n expect(returnValue).toEqual(expect.any(Function));\n\n returnValue(change);\n\n expect(change.insertNodeByPath).toHaveBeenCalledWith([0], 0, {\n object: 'block',\n type: 'div',\n });\n });\n });\n });\n});\n\ndescribe('parseStyleString', () => {\n const parses = (s, expected) => {\n it(`parses ${s} -> ${JSON.stringify(expected)}`, () => {\n const result = parseStyleString(s);\n expect(result).toEqual(expected);\n });\n };\n parses(' width: 10px ', { width: '10px' });\n parses(' width: 10px; ', { width: '10px' });\n parses(' border-width: 10px; ', { 'border-width': '10px' });\n parses(' border: solid 1px red; height: 1px', {\n border: 'solid 1px red',\n height: '1px',\n });\n});\n\ndescribe('toStyleString', () => {\n const styleString = (o, expected) => {\n it(`${JSON.stringify(s)} -> ${expected}`, () => {\n const result = toStyleString(o);\n expect(result).toEqual(expected);\n });\n };\n});\n\ndescribe('reactAttributes', () => {\n const attributes = (o, expected) => {\n it(`${JSON.stringify(o)} -> ${JSON.stringify(expected)}`, () => {\n const result = reactAttributes(o);\n expect(result).toEqual(expected);\n });\n };\n attributes({ 'border-width': '10px', 'line-height': 1.56 }, { borderWidth: '10px', lineHeight: '1.56' });\n});\n\ndescribe('serialization', () => {\n describe('deserialize', () => {\n let next;\n\n beforeEach(() => {\n next = jest.fn().mockReturnValue([]);\n });\n\n describe('table', () => {\n let el;\n let out;\n beforeEach(() => {\n el = {\n tagName: 'table',\n children: [],\n getAttribute: jest.fn((name) => {\n switch (name) {\n case 'border':\n return '1';\n case 'cellspacing':\n return '2';\n case 'cellpadding':\n return '3';\n case 'class':\n return 'table-class';\n case 'style':\n return 'width: 10px';\n }\n }),\n };\n out = serialization.deserialize(el, next);\n });\n\n const assertData = (name, value) => {\n it(`data.${name} should eql ${value}`, () => {\n expect(out.data[name]).toEqual(value);\n });\n };\n\n assertData('border', '1');\n assertData('cellspacing', '2');\n assertData('cellpadding', '3');\n assertData('class', 'table-class');\n assertData('style', { width: '10px' });\n it('returns a table block', () => {\n expect(out).toMatchObject({\n object: 'block',\n type: 'table',\n nodes: [],\n });\n });\n });\n\n it('deserializes tr', () => {\n const el = {\n tagName: 'tr',\n children: [],\n };\n\n const out = serialization.deserialize(el, next);\n\n expect(out).toEqual({\n object: 'block',\n type: 'table_row',\n nodes: [],\n });\n });\n\n it('deserializes td', () => {\n const el = {\n tagName: 'td',\n childNodes: [],\n getAttribute: jest.fn(function (name) {\n const o = {\n class: 'class name',\n colspan: '1',\n rowspan: '1',\n };\n return o[name];\n }),\n };\n\n const out = serialization.deserialize(el, next);\n\n expect(out).toEqual({\n object: 'block',\n type: 'table_cell',\n nodes: [],\n data: {\n colspan: '1',\n rowspan: '1',\n class: 'class name',\n header: false,\n },\n });\n });\n });\n\n describe('serialize', () => {\n it('serializes table', () => {\n const el = serialization.serialize({\n object: 'block',\n type: 'table',\n nodes: [],\n data: Data.create({\n border: '1',\n cellpadding: '2',\n cellspacing: '3',\n }),\n });\n\n expect(el).toEqual(\n <table border=\"1\" cellPadding=\"2\" cellSpacing=\"3\">\n <tbody />\n </table>,\n );\n });\n\n it('serializes table_row', () => {\n const el = serialization.serialize({\n object: 'block',\n type: 'table_row',\n nodes: [],\n });\n\n expect(el).toEqual(<tr />);\n });\n it('serializes table_cell', () => {\n const el = serialization.serialize({\n object: 'block',\n type: 'table_cell',\n nodes: [],\n data: Data.create({\n header: false,\n style: { width: '10px' },\n class: 'foo',\n }),\n });\n\n expect(el).toEqual(<td style={{ width: '10px' }} className={'foo'} />);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
5
|
-
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
var _react2 = require("@testing-library/react");
|
|
7
|
-
var _tableToolbar = require("../table-toolbar");
|
|
8
|
-
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; }
|
|
9
|
-
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; }
|
|
10
|
-
describe('table-toolbar', function () {
|
|
11
|
-
var onDone, onAddColumn, onAddRow, onRemoveColumn, onRemoveRow, onRemoveTable, onToggleBorder;
|
|
12
|
-
beforeEach(function () {
|
|
13
|
-
onAddColumn = jest.fn();
|
|
14
|
-
onAddRow = jest.fn();
|
|
15
|
-
onRemoveColumn = jest.fn();
|
|
16
|
-
onRemoveRow = jest.fn();
|
|
17
|
-
onRemoveTable = jest.fn();
|
|
18
|
-
onDone = jest.fn();
|
|
19
|
-
onToggleBorder = jest.fn();
|
|
20
|
-
});
|
|
21
|
-
var renderComponent = function renderComponent() {
|
|
22
|
-
var extras = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
23
|
-
var props = _objectSpread({
|
|
24
|
-
onDone: onDone,
|
|
25
|
-
onAddRow: onAddRow,
|
|
26
|
-
onRemoveRow: onRemoveRow,
|
|
27
|
-
onAddColumn: onAddColumn,
|
|
28
|
-
onRemoveColumn: onRemoveColumn,
|
|
29
|
-
onRemoveTable: onRemoveTable,
|
|
30
|
-
hasBorder: true,
|
|
31
|
-
onToggleBorder: onToggleBorder,
|
|
32
|
-
classes: {
|
|
33
|
-
tableToolbar: 'table-toolbar'
|
|
34
|
-
},
|
|
35
|
-
plugins: [],
|
|
36
|
-
value: {},
|
|
37
|
-
onChange: jest.fn()
|
|
38
|
-
}, extras);
|
|
39
|
-
return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_tableToolbar.TableToolbar, props));
|
|
40
|
-
};
|
|
41
|
-
describe('rendering', function () {
|
|
42
|
-
it('renders toolbar without crashing', function () {
|
|
43
|
-
var _renderComponent = renderComponent(),
|
|
44
|
-
container = _renderComponent.container;
|
|
45
|
-
|
|
46
|
-
// Check that the toolbar container is rendered
|
|
47
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
48
|
-
|
|
49
|
-
// Check for Done button (only one with aria-label)
|
|
50
|
-
expect(_react2.screen.getByLabelText('Done')).toBeInTheDocument();
|
|
51
|
-
|
|
52
|
-
// Check that there are multiple buttons (table manipulation buttons)
|
|
53
|
-
var buttons = container.querySelectorAll('button');
|
|
54
|
-
expect(buttons.length).toBeGreaterThan(1);
|
|
55
|
-
});
|
|
56
|
-
it('renders with hasBorder prop', function () {
|
|
57
|
-
var _renderComponent2 = renderComponent({
|
|
58
|
-
hasBorder: false
|
|
59
|
-
}),
|
|
60
|
-
container = _renderComponent2.container;
|
|
61
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
62
|
-
|
|
63
|
-
// Verify hasBorder affects rendering - button with aria-pressed attribute
|
|
64
|
-
var borderButton = container.querySelector('button[aria-pressed]');
|
|
65
|
-
expect(borderButton).toBeInTheDocument();
|
|
66
|
-
expect(borderButton).toHaveAttribute('aria-pressed', 'false');
|
|
67
|
-
});
|
|
68
|
-
it('renders with hasBorder true', function () {
|
|
69
|
-
var _renderComponent3 = renderComponent({
|
|
70
|
-
hasBorder: true
|
|
71
|
-
}),
|
|
72
|
-
container = _renderComponent3.container;
|
|
73
|
-
|
|
74
|
-
// Verify hasBorder affects rendering
|
|
75
|
-
var borderButton = container.querySelector('button[aria-pressed]');
|
|
76
|
-
expect(borderButton).toBeInTheDocument();
|
|
77
|
-
expect(borderButton).toHaveAttribute('aria-pressed', 'true');
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=table-toolbar.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-toolbar.test.js","names":["_react","_interopRequireDefault","require","_react2","_tableToolbar","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","onDone","onAddColumn","onAddRow","onRemoveColumn","onRemoveRow","onRemoveTable","onToggleBorder","beforeEach","jest","fn","renderComponent","extras","undefined","props","hasBorder","classes","tableToolbar","plugins","value","onChange","render","createElement","TableToolbar","it","_renderComponent","container","expect","firstChild","toBeInTheDocument","screen","getByLabelText","buttons","querySelectorAll","toBeGreaterThan","_renderComponent2","borderButton","querySelector","toHaveAttribute","_renderComponent3"],"sources":["../../../../src/plugins/table/__tests__/table-toolbar.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport { TableToolbar } from '../table-toolbar';\n\ndescribe('table-toolbar', () => {\n let onDone, onAddColumn, onAddRow, onRemoveColumn, onRemoveRow, onRemoveTable, onToggleBorder;\n\n beforeEach(() => {\n onAddColumn = jest.fn();\n onAddRow = jest.fn();\n onRemoveColumn = jest.fn();\n onRemoveRow = jest.fn();\n onRemoveTable = jest.fn();\n onDone = jest.fn();\n onToggleBorder = jest.fn();\n });\n\n const renderComponent = (extras = {}) => {\n const props = {\n onDone,\n onAddRow,\n onRemoveRow,\n onAddColumn,\n onRemoveColumn,\n onRemoveTable,\n hasBorder: true,\n onToggleBorder,\n classes: {\n tableToolbar: 'table-toolbar',\n },\n plugins: [],\n value: {},\n onChange: jest.fn(),\n ...extras,\n };\n\n return render(<TableToolbar {...props} />);\n };\n\n describe('rendering', () => {\n it('renders toolbar without crashing', () => {\n const { container } = renderComponent();\n\n // Check that the toolbar container is rendered\n expect(container.firstChild).toBeInTheDocument();\n\n // Check for Done button (only one with aria-label)\n expect(screen.getByLabelText('Done')).toBeInTheDocument();\n\n // Check that there are multiple buttons (table manipulation buttons)\n const buttons = container.querySelectorAll('button');\n expect(buttons.length).toBeGreaterThan(1);\n });\n\n it('renders with hasBorder prop', () => {\n const { container } = renderComponent({ hasBorder: false });\n\n expect(container.firstChild).toBeInTheDocument();\n\n // Verify hasBorder affects rendering - button with aria-pressed attribute\n const borderButton = container.querySelector('button[aria-pressed]');\n expect(borderButton).toBeInTheDocument();\n expect(borderButton).toHaveAttribute('aria-pressed', 'false');\n });\n\n it('renders with hasBorder true', () => {\n const { container } = renderComponent({ hasBorder: true });\n\n // Verify hasBorder affects rendering\n const borderButton = container.querySelector('button[aria-pressed]');\n expect(borderButton).toBeInTheDocument();\n expect(borderButton).toHaveAttribute('aria-pressed', 'true');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|