@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.
Files changed (59) hide show
  1. package/lib/editor.js +1 -1
  2. package/package.json +3 -3
  3. package/lib/__tests__/editor-utils.test.js +0 -164
  4. package/lib/__tests__/editor-utils.test.js.map +0 -1
  5. package/lib/__tests__/serialization.test.js +0 -241
  6. package/lib/__tests__/serialization.test.js.map +0 -1
  7. package/lib/__tests__/utils.js +0 -79
  8. package/lib/__tests__/utils.js.map +0 -1
  9. package/lib/plugins/image/__tests__/component.test.js +0 -96
  10. package/lib/plugins/image/__tests__/component.test.js.map +0 -1
  11. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -131
  12. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js.map +0 -1
  13. package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -21
  14. package/lib/plugins/image/__tests__/image-toolbar.test.js.map +0 -1
  15. package/lib/plugins/image/__tests__/index.test.js +0 -86
  16. package/lib/plugins/image/__tests__/index.test.js.map +0 -1
  17. package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -112
  18. package/lib/plugins/image/__tests__/insert-image-handler.test.js.map +0 -1
  19. package/lib/plugins/image/__tests__/mock-change.js +0 -22
  20. package/lib/plugins/image/__tests__/mock-change.js.map +0 -1
  21. package/lib/plugins/list/__tests__/index.test.js +0 -63
  22. package/lib/plugins/list/__tests__/index.test.js.map +0 -1
  23. package/lib/plugins/math/__tests__/index.test.js +0 -284
  24. package/lib/plugins/math/__tests__/index.test.js.map +0 -1
  25. package/lib/plugins/media/__tests__/index.test.js +0 -69
  26. package/lib/plugins/media/__tests__/index.test.js.map +0 -1
  27. package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +0 -93
  28. package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js.map +0 -1
  29. package/lib/plugins/table/__tests__/index.test.js +0 -416
  30. package/lib/plugins/table/__tests__/index.test.js.map +0 -1
  31. package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -81
  32. package/lib/plugins/table/__tests__/table-toolbar.test.js.map +0 -1
  33. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -153
  34. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js.map +0 -1
  35. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -47
  36. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js.map +0 -1
  37. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -112
  38. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js.map +0 -1
  39. package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -118
  40. package/lib/plugins/toolbar/__tests__/toolbar.test.js.map +0 -1
  41. package/src/__tests__/editor-utils.test.js +0 -162
  42. package/src/__tests__/serialization.test.js +0 -290
  43. package/src/__tests__/utils.js +0 -36
  44. package/src/plugins/image/__tests__/component.test.jsx +0 -73
  45. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +0 -90
  46. package/src/plugins/image/__tests__/image-toolbar.test.jsx +0 -12
  47. package/src/plugins/image/__tests__/index.test.js +0 -92
  48. package/src/plugins/image/__tests__/insert-image-handler.test.js +0 -113
  49. package/src/plugins/image/__tests__/mock-change.js +0 -15
  50. package/src/plugins/list/__tests__/index.test.js +0 -52
  51. package/src/plugins/math/__tests__/index.test.jsx +0 -264
  52. package/src/plugins/media/__tests__/index.test.js +0 -75
  53. package/src/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +0 -71
  54. package/src/plugins/table/__tests__/index.test.jsx +0 -401
  55. package/src/plugins/table/__tests__/table-toolbar.test.jsx +0 -75
  56. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +0 -123
  57. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +0 -40
  58. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +0 -97
  59. 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":[]}