@pie-lib/editable-html 13.0.14-beta.6 → 13.0.14-beta.7
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/__tests__/editor-utils.test.js +164 -0
- package/lib/__tests__/serialization.test.js +241 -0
- package/lib/__tests__/utils.js +79 -0
- package/lib/plugins/image/__tests__/component.test.js +96 -0
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +131 -0
- package/lib/plugins/image/__tests__/image-toolbar.test.js +21 -0
- package/lib/plugins/image/__tests__/index.test.js +86 -0
- package/lib/plugins/image/__tests__/insert-image-handler.test.js +112 -0
- package/lib/plugins/image/__tests__/mock-change.js +22 -0
- package/lib/plugins/list/__tests__/index.test.js +63 -0
- package/lib/plugins/math/__tests__/index.test.js +284 -0
- package/lib/plugins/media/__tests__/index.test.js +69 -0
- package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +93 -0
- package/lib/plugins/table/__tests__/index.test.js +416 -0
- package/lib/plugins/table/__tests__/table-toolbar.test.js +81 -0
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +153 -0
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +47 -0
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +112 -0
- package/lib/plugins/toolbar/__tests__/toolbar.test.js +118 -0
- package/package.json +3 -3
- package/src/__tests__/editor-utils.test.js +162 -0
- package/src/__tests__/serialization.test.js +290 -0
- package/src/__tests__/utils.js +36 -0
- package/src/plugins/image/__tests__/component.test.jsx +73 -0
- package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +90 -0
- package/src/plugins/image/__tests__/image-toolbar.test.jsx +12 -0
- package/src/plugins/image/__tests__/index.test.js +92 -0
- package/src/plugins/image/__tests__/insert-image-handler.test.js +113 -0
- package/src/plugins/image/__tests__/mock-change.js +15 -0
- package/src/plugins/list/__tests__/index.test.js +52 -0
- package/src/plugins/math/__tests__/index.test.jsx +264 -0
- package/src/plugins/media/__tests__/index.test.js +75 -0
- package/src/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +71 -0
- package/src/plugins/table/__tests__/index.test.jsx +401 -0
- package/src/plugins/table/__tests__/table-toolbar.test.jsx +75 -0
- package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +123 -0
- package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +40 -0
- package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +97 -0
- package/src/plugins/toolbar/__tests__/toolbar.test.jsx +112 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _slate = require("slate");
|
|
9
|
+
var _component = require("../component");
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
describe('Image Component', function () {
|
|
13
|
+
var createImageNode = function createImageNode() {
|
|
14
|
+
var dataProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
15
|
+
return _slate.Block.fromJSON({
|
|
16
|
+
type: 'image',
|
|
17
|
+
data: _slate.Data.create(_objectSpread({
|
|
18
|
+
width: 50,
|
|
19
|
+
height: 50,
|
|
20
|
+
src: 'test-image.jpg'
|
|
21
|
+
}, dataProps))
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
var createMockEditor = function createMockEditor() {
|
|
25
|
+
return {
|
|
26
|
+
value: {},
|
|
27
|
+
change: jest.fn()
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
var defaultClasses = {
|
|
31
|
+
active: 'active',
|
|
32
|
+
loading: 'loading',
|
|
33
|
+
pendingDelete: 'pendingDelete'
|
|
34
|
+
};
|
|
35
|
+
var defaultProps = {
|
|
36
|
+
node: createImageNode(),
|
|
37
|
+
editor: createMockEditor(),
|
|
38
|
+
classes: defaultClasses,
|
|
39
|
+
onDelete: jest.fn()
|
|
40
|
+
};
|
|
41
|
+
it('renders correctly with default props', function () {
|
|
42
|
+
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component.Component, defaultProps)),
|
|
43
|
+
container = _render.container;
|
|
44
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
45
|
+
});
|
|
46
|
+
it('renders image with correct dimensions', function () {
|
|
47
|
+
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component.Component, defaultProps)),
|
|
48
|
+
container = _render2.container;
|
|
49
|
+
var img = container.querySelector('img');
|
|
50
|
+
expect(img).toBeInTheDocument();
|
|
51
|
+
});
|
|
52
|
+
it('renders with custom width and height', function () {
|
|
53
|
+
var node = createImageNode({
|
|
54
|
+
width: 100,
|
|
55
|
+
height: 200
|
|
56
|
+
});
|
|
57
|
+
var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component.Component, (0, _extends2["default"])({}, defaultProps, {
|
|
58
|
+
node: node
|
|
59
|
+
}))),
|
|
60
|
+
container = _render3.container;
|
|
61
|
+
var img = container.querySelector('img');
|
|
62
|
+
expect(img).toBeInTheDocument();
|
|
63
|
+
});
|
|
64
|
+
it('renders with loading class when loading', function () {
|
|
65
|
+
var node = createImageNode({
|
|
66
|
+
loading: true
|
|
67
|
+
});
|
|
68
|
+
var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component.Component, (0, _extends2["default"])({}, defaultProps, {
|
|
69
|
+
node: node
|
|
70
|
+
}))),
|
|
71
|
+
container = _render4.container;
|
|
72
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
73
|
+
});
|
|
74
|
+
it('renders with active class when active', function () {
|
|
75
|
+
var node = createImageNode({
|
|
76
|
+
active: true
|
|
77
|
+
});
|
|
78
|
+
var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component.Component, (0, _extends2["default"])({}, defaultProps, {
|
|
79
|
+
node: node
|
|
80
|
+
}))),
|
|
81
|
+
container = _render5.container;
|
|
82
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
83
|
+
});
|
|
84
|
+
it('handles image with source', function () {
|
|
85
|
+
var node = createImageNode({
|
|
86
|
+
src: 'test-image.jpg'
|
|
87
|
+
});
|
|
88
|
+
var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_component.Component, (0, _extends2["default"])({}, defaultProps, {
|
|
89
|
+
node: node
|
|
90
|
+
}))),
|
|
91
|
+
container = _render6.container;
|
|
92
|
+
var img = container.querySelector('img');
|
|
93
|
+
expect(img).toHaveAttribute('src', 'test-image.jpg');
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc2xhdGUiLCJfY29tcG9uZW50Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsImNyZWF0ZUltYWdlTm9kZSIsImRhdGFQcm9wcyIsInVuZGVmaW5lZCIsIkJsb2NrIiwiZnJvbUpTT04iLCJ0eXBlIiwiZGF0YSIsIkRhdGEiLCJjcmVhdGUiLCJ3aWR0aCIsImhlaWdodCIsInNyYyIsImNyZWF0ZU1vY2tFZGl0b3IiLCJ2YWx1ZSIsImNoYW5nZSIsImplc3QiLCJmbiIsImRlZmF1bHRDbGFzc2VzIiwiYWN0aXZlIiwibG9hZGluZyIsInBlbmRpbmdEZWxldGUiLCJkZWZhdWx0UHJvcHMiLCJub2RlIiwiZWRpdG9yIiwiY2xhc3NlcyIsIm9uRGVsZXRlIiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIkNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXIyIiwiaW1nIiwicXVlcnlTZWxlY3RvciIsIl9yZW5kZXIzIiwiX2V4dGVuZHMyIiwiX3JlbmRlcjQiLCJfcmVuZGVyNSIsIl9yZW5kZXI2IiwidG9IYXZlQXR0cmlidXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvaW1hZ2UvX190ZXN0c19fL2NvbXBvbmVudC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBCbG9jaywgRGF0YSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5cbmRlc2NyaWJlKCdJbWFnZSBDb21wb25lbnQnLCAoKSA9PiB7XG4gIGNvbnN0IGNyZWF0ZUltYWdlTm9kZSA9IChkYXRhUHJvcHMgPSB7fSkgPT4ge1xuICAgIHJldHVybiBCbG9jay5mcm9tSlNPTih7XG4gICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgZGF0YTogRGF0YS5jcmVhdGUoe1xuICAgICAgICB3aWR0aDogNTAsXG4gICAgICAgIGhlaWdodDogNTAsXG4gICAgICAgIHNyYzogJ3Rlc3QtaW1hZ2UuanBnJyxcbiAgICAgICAgLi4uZGF0YVByb3BzLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlTW9ja0VkaXRvciA9ICgpID0+ICh7XG4gICAgdmFsdWU6IHt9LFxuICAgIGNoYW5nZTogamVzdC5mbigpLFxuICB9KTtcblxuICBjb25zdCBkZWZhdWx0Q2xhc3NlcyA9IHtcbiAgICBhY3RpdmU6ICdhY3RpdmUnLFxuICAgIGxvYWRpbmc6ICdsb2FkaW5nJyxcbiAgICBwZW5kaW5nRGVsZXRlOiAncGVuZGluZ0RlbGV0ZScsXG4gIH07XG5cbiAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgIG5vZGU6IGNyZWF0ZUltYWdlTm9kZSgpLFxuICAgIGVkaXRvcjogY3JlYXRlTW9ja0VkaXRvcigpLFxuICAgIGNsYXNzZXM6IGRlZmF1bHRDbGFzc2VzLFxuICAgIG9uRGVsZXRlOiBqZXN0LmZuKCksXG4gIH07XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgaW1hZ2Ugd2l0aCBjb3JyZWN0IGRpbWVuc2lvbnMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCBpbWcgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gICAgZXhwZWN0KGltZykudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aCBjdXN0b20gd2lkdGggYW5kIGhlaWdodCcsICgpID0+IHtcbiAgICBjb25zdCBub2RlID0gY3JlYXRlSW1hZ2VOb2RlKHsgd2lkdGg6IDEwMCwgaGVpZ2h0OiAyMDAgfSk7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IG5vZGU9e25vZGV9IC8+KTtcbiAgICBjb25zdCBpbWcgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gICAgZXhwZWN0KGltZykudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aCBsb2FkaW5nIGNsYXNzIHdoZW4gbG9hZGluZycsICgpID0+IHtcbiAgICBjb25zdCBub2RlID0gY3JlYXRlSW1hZ2VOb2RlKHsgbG9hZGluZzogdHJ1ZSB9KTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gbm9kZT17bm9kZX0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aCBhY3RpdmUgY2xhc3Mgd2hlbiBhY3RpdmUnLCAoKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGNyZWF0ZUltYWdlTm9kZSh7IGFjdGl2ZTogdHJ1ZSB9KTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gbm9kZT17bm9kZX0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhbmRsZXMgaW1hZ2Ugd2l0aCBzb3VyY2UnLCAoKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGNyZWF0ZUltYWdlTm9kZSh7IHNyYzogJ3Rlc3QtaW1hZ2UuanBnJyB9KTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxDb21wb25lbnQgey4uLmRlZmF1bHRQcm9wc30gbm9kZT17bm9kZX0gLz4pO1xuICAgIGNvbnN0IGltZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICBleHBlY3QoaW1nKS50b0hhdmVBdHRyaWJ1dGUoJ3NyYycsICd0ZXN0LWltYWdlLmpwZycpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUF5QyxTQUFBSSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FB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
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
var _react = require("@testing-library/react");
|
|
8
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
9
|
+
var _imageToolbar = require("../image-toolbar");
|
|
10
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
11
|
+
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; }
|
|
12
|
+
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; }
|
|
13
|
+
// Mock the alt-dialog component to avoid complex modal rendering in tests
|
|
14
|
+
jest.mock('../alt-dialog', function () {
|
|
15
|
+
return function AltDialog(_ref) {
|
|
16
|
+
var alt = _ref.alt,
|
|
17
|
+
onDone = _ref.onDone;
|
|
18
|
+
return /*#__PURE__*/_react2["default"].createElement("div", {
|
|
19
|
+
"data-testid": "alt-dialog"
|
|
20
|
+
}, /*#__PURE__*/_react2["default"].createElement("input", {
|
|
21
|
+
"data-testid": "alt-input",
|
|
22
|
+
defaultValue: alt,
|
|
23
|
+
onChange: function onChange(e) {
|
|
24
|
+
return onDone(e.target.value);
|
|
25
|
+
}
|
|
26
|
+
}));
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
describe('ImageToolbar', function () {
|
|
30
|
+
var onChange;
|
|
31
|
+
beforeEach(function () {
|
|
32
|
+
onChange = jest.fn();
|
|
33
|
+
});
|
|
34
|
+
var renderComponent = function renderComponent() {
|
|
35
|
+
var extras = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
36
|
+
var props = _objectSpread({
|
|
37
|
+
onChange: onChange,
|
|
38
|
+
imageLoaded: true
|
|
39
|
+
}, extras);
|
|
40
|
+
return (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_imageToolbar.ImageToolbar, props));
|
|
41
|
+
};
|
|
42
|
+
describe('rendering', function () {
|
|
43
|
+
it('renders alignment buttons', function () {
|
|
44
|
+
renderComponent();
|
|
45
|
+
expect(_react.screen.getByText('left')).toBeInTheDocument();
|
|
46
|
+
expect(_react.screen.getByText('center')).toBeInTheDocument();
|
|
47
|
+
expect(_react.screen.getByText('right')).toBeInTheDocument();
|
|
48
|
+
});
|
|
49
|
+
it('renders alt text button', function () {
|
|
50
|
+
renderComponent();
|
|
51
|
+
expect(_react.screen.getByText('Alt text')).toBeInTheDocument();
|
|
52
|
+
});
|
|
53
|
+
it('does not render alignment buttons when disabled', function () {
|
|
54
|
+
renderComponent({
|
|
55
|
+
disableImageAlignmentButtons: true
|
|
56
|
+
});
|
|
57
|
+
expect(_react.screen.queryByText('left')).not.toBeInTheDocument();
|
|
58
|
+
expect(_react.screen.queryByText('center')).not.toBeInTheDocument();
|
|
59
|
+
expect(_react.screen.queryByText('right')).not.toBeInTheDocument();
|
|
60
|
+
});
|
|
61
|
+
it('shows active state for selected alignment', function () {
|
|
62
|
+
var _renderComponent = renderComponent({
|
|
63
|
+
alignment: 'center'
|
|
64
|
+
}),
|
|
65
|
+
container = _renderComponent.container;
|
|
66
|
+
// The MarkButton component uses aria-pressed for active state
|
|
67
|
+
var centerButton = _react.screen.getByText('center').closest('button');
|
|
68
|
+
expect(centerButton).toHaveAttribute('aria-pressed', 'true');
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('user interactions', function () {
|
|
72
|
+
it('calls onChange with alignment when left is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
73
|
+
var user;
|
|
74
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
75
|
+
while (1) switch (_context.prev = _context.next) {
|
|
76
|
+
case 0:
|
|
77
|
+
user = _userEvent["default"].setup();
|
|
78
|
+
renderComponent();
|
|
79
|
+
_context.next = 1;
|
|
80
|
+
return user.click(_react.screen.getByText('left'));
|
|
81
|
+
case 1:
|
|
82
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
83
|
+
alignment: 'left'
|
|
84
|
+
});
|
|
85
|
+
case 2:
|
|
86
|
+
case "end":
|
|
87
|
+
return _context.stop();
|
|
88
|
+
}
|
|
89
|
+
}, _callee);
|
|
90
|
+
})));
|
|
91
|
+
it('calls onChange with alignment when center is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
92
|
+
var user;
|
|
93
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
94
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
95
|
+
case 0:
|
|
96
|
+
user = _userEvent["default"].setup();
|
|
97
|
+
renderComponent();
|
|
98
|
+
_context2.next = 1;
|
|
99
|
+
return user.click(_react.screen.getByText('center'));
|
|
100
|
+
case 1:
|
|
101
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
102
|
+
alignment: 'center'
|
|
103
|
+
});
|
|
104
|
+
case 2:
|
|
105
|
+
case "end":
|
|
106
|
+
return _context2.stop();
|
|
107
|
+
}
|
|
108
|
+
}, _callee2);
|
|
109
|
+
})));
|
|
110
|
+
it('calls onChange with alignment when right is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
111
|
+
var user;
|
|
112
|
+
return _regenerator["default"].wrap(function (_context3) {
|
|
113
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
114
|
+
case 0:
|
|
115
|
+
user = _userEvent["default"].setup();
|
|
116
|
+
renderComponent();
|
|
117
|
+
_context3.next = 1;
|
|
118
|
+
return user.click(_react.screen.getByText('right'));
|
|
119
|
+
case 1:
|
|
120
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
121
|
+
alignment: 'right'
|
|
122
|
+
});
|
|
123
|
+
case 2:
|
|
124
|
+
case "end":
|
|
125
|
+
return _context3.stop();
|
|
126
|
+
}
|
|
127
|
+
}, _callee3);
|
|
128
|
+
})));
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZXJFdmVudCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW1hZ2VUb29sYmFyIiwiX3JlYWN0MiIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiamVzdCIsIm1vY2siLCJBbHREaWFsb2ciLCJfcmVmIiwiYWx0Iiwib25Eb25lIiwiY3JlYXRlRWxlbWVudCIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwidGFyZ2V0IiwidmFsdWUiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJmbiIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsInVuZGVmaW5lZCIsInByb3BzIiwiaW1hZ2VMb2FkZWQiLCJyZW5kZXIiLCJJbWFnZVRvb2xiYXIiLCJpdCIsImV4cGVjdCIsInNjcmVlbiIsImdldEJ5VGV4dCIsInRvQmVJblRoZURvY3VtZW50IiwiZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyIsInF1ZXJ5QnlUZXh0Iiwibm90IiwiX3JlbmRlckNvbXBvbmVudCIsImFsaWdubWVudCIsImNvbnRhaW5lciIsImNlbnRlckJ1dHRvbiIsImNsb3Nlc3QiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInVzZXIiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInVzZXJFdmVudCIsInNldHVwIiwiY2xpY2siLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInN0b3AiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsIl9jYWxsZWUzIiwiX2NvbnRleHQzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvaW1hZ2UvX190ZXN0c19fL2ltYWdlLXRvb2xiYXItbG9naWMudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzY3JlZW4gfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB1c2VyRXZlbnQgZnJvbSAnQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50JztcbmltcG9ydCB7IEltYWdlVG9vbGJhciB9IGZyb20gJy4uL2ltYWdlLXRvb2xiYXInO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuLy8gTW9jayB0aGUgYWx0LWRpYWxvZyBjb21wb25lbnQgdG8gYXZvaWQgY29tcGxleCBtb2RhbCByZW5kZXJpbmcgaW4gdGVzdHNcbmplc3QubW9jaygnLi4vYWx0LWRpYWxvZycsICgpID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIEFsdERpYWxvZyh7IGFsdCwgb25Eb25lIH0pIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBkYXRhLXRlc3RpZD1cImFsdC1kaWFsb2dcIj5cbiAgICAgICAgPGlucHV0IGRhdGEtdGVzdGlkPVwiYWx0LWlucHV0XCIgZGVmYXVsdFZhbHVlPXthbHR9IG9uQ2hhbmdlPXsoZSkgPT4gb25Eb25lKGUudGFyZ2V0LnZhbHVlKX0gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG59KTtcblxuZGVzY3JpYmUoJ0ltYWdlVG9vbGJhcicsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICB9KTtcblxuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzID0ge30pID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgaW1hZ2VMb2FkZWQ6IHRydWUsXG4gICAgICAuLi5leHRyYXMsXG4gICAgfTtcblxuICAgIHJldHVybiByZW5kZXIoPEltYWdlVG9vbGJhciB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIGFsaWdubWVudCBidXR0b25zJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnbGVmdCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ2NlbnRlcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ3JpZ2h0JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbHQgdGV4dCBidXR0b24nLCAoKSA9PiB7XG4gICAgICByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdBbHQgdGV4dCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IHJlbmRlciBhbGlnbm1lbnQgYnV0dG9ucyB3aGVuIGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9uczogdHJ1ZSB9KTtcbiAgICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVRleHQoJ2xlZnQnKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlUZXh0KCdjZW50ZXInKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlUZXh0KCdyaWdodCcpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG93cyBhY3RpdmUgc3RhdGUgZm9yIHNlbGVjdGVkIGFsaWdubWVudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBhbGlnbm1lbnQ6ICdjZW50ZXInIH0pO1xuICAgICAgLy8gVGhlIE1hcmtCdXR0b24gY29tcG9uZW50IHVzZXMgYXJpYS1wcmVzc2VkIGZvciBhY3RpdmUgc3RhdGVcbiAgICAgIGNvbnN0IGNlbnRlckJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoJ2NlbnRlcicpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuICAgICAgZXhwZWN0KGNlbnRlckJ1dHRvbikudG9IYXZlQXR0cmlidXRlKCdhcmlhLXByZXNzZWQnLCAndHJ1ZScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndXNlciBpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdpdGggYWxpZ25tZW50IHdoZW4gbGVmdCBpcyBjbGlja2VkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJFdmVudC5zZXR1cCgpO1xuICAgICAgcmVuZGVyQ29tcG9uZW50KCk7XG5cbiAgICAgIGF3YWl0IHVzZXIuY2xpY2soc2NyZWVuLmdldEJ5VGV4dCgnbGVmdCcpKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IGFsaWdubWVudDogJ2xlZnQnIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdpdGggYWxpZ25tZW50IHdoZW4gY2VudGVyIGlzIGNsaWNrZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXJDb21wb25lbnQoKTtcblxuICAgICAgYXdhaXQgdXNlci5jbGljayhzY3JlZW4uZ2V0QnlUZXh0KCdjZW50ZXInKSk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyBhbGlnbm1lbnQ6ICdjZW50ZXInIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdpdGggYWxpZ25tZW50IHdoZW4gcmlnaHQgaXMgY2xpY2tlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlckNvbXBvbmVudCgpO1xuXG4gICAgICBhd2FpdCB1c2VyLmNsaWNrKHNjcmVlbi5nZXRCeVRleHQoJ3JpZ2h0JykpO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgYWxpZ25tZW50OiAncmlnaHQnIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBMEIsU0FBQUssUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNB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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _imageToolbar = _interopRequireDefault(require("../image-toolbar"));
|
|
6
|
+
var _react2 = require("@testing-library/react");
|
|
7
|
+
it('renders image toolbar', function () {
|
|
8
|
+
var classes = {
|
|
9
|
+
holder: 'holder'
|
|
10
|
+
};
|
|
11
|
+
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_imageToolbar["default"], {
|
|
12
|
+
percent: 50,
|
|
13
|
+
classes: classes,
|
|
14
|
+
onChange: jest.fn()
|
|
15
|
+
})),
|
|
16
|
+
container = _render.container;
|
|
17
|
+
|
|
18
|
+
// Verify the toolbar is rendered
|
|
19
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9pbWFnZVRvb2xiYXIiLCJfcmVhY3QyIiwiaXQiLCJjbGFzc2VzIiwiaG9sZGVyIiwiX3JlbmRlciIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJwZXJjZW50Iiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9pbWFnZS9fX3Rlc3RzX18vaW1hZ2UtdG9vbGJhci50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSAnLi4vaW1hZ2UtdG9vbGJhcic7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcblxuaXQoJ3JlbmRlcnMgaW1hZ2UgdG9vbGJhcicsICgpID0+IHtcbiAgY29uc3QgY2xhc3NlcyA9IHsgaG9sZGVyOiAnaG9sZGVyJyB9O1xuXG4gIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFRvb2xiYXIgcGVyY2VudD17NTB9IGNsYXNzZXM9e2NsYXNzZXN9IG9uQ2hhbmdlPXtqZXN0LmZuKCl9IC8+KTtcblxuICAvLyBWZXJpZnkgdGhlIHRvb2xiYXIgaXMgcmVuZGVyZWRcbiAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBRyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsWUFBTTtFQUNoQyxJQUFNQyxPQUFPLEdBQUc7SUFBRUMsTUFBTSxFQUFFO0VBQVMsQ0FBQztFQUVwQyxJQUFBQyxPQUFBLEdBQXNCLElBQUFDLGNBQU0sZUFBQ1QsTUFBQSxZQUFBVSxhQUFBLENBQUNQLGFBQUEsV0FBTztNQUFDUSxPQUFPLEVBQUUsRUFBRztNQUFDTCxPQUFPLEVBQUVBLE9BQVE7TUFBQ00sUUFBUSxFQUFFQyxJQUFJLENBQUNDLEVBQUUsQ0FBQztJQUFFLENBQUUsQ0FBQyxDQUFDO0lBQXJGQyxTQUFTLEdBQUFQLE9BQUEsQ0FBVE8sU0FBUzs7RUFFakI7RUFDQUMsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _ = _interopRequireDefault(require("../"));
|
|
5
|
+
describe('image plugin', function () {
|
|
6
|
+
var value = {};
|
|
7
|
+
var imageSupport = {
|
|
8
|
+
"delete": jest.fn(),
|
|
9
|
+
add: jest.fn()
|
|
10
|
+
};
|
|
11
|
+
var imagePlugin = (0, _["default"])({
|
|
12
|
+
onDelete: function onDelete(src, done) {
|
|
13
|
+
imageSupport["delete"](src, function (e) {
|
|
14
|
+
done(e, value);
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
insertImageRequested: function insertImageRequested(node, getHandler) {
|
|
18
|
+
var handler = getHandler(function () {
|
|
19
|
+
return value;
|
|
20
|
+
});
|
|
21
|
+
imageSupport.add(handler);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
describe('normalizeNode', function () {
|
|
25
|
+
it('should exit the function if the node is not of type document', function () {
|
|
26
|
+
var returnValue = imagePlugin.normalizeNode({
|
|
27
|
+
object: 'image'
|
|
28
|
+
});
|
|
29
|
+
expect(returnValue).toEqual(undefined);
|
|
30
|
+
});
|
|
31
|
+
it('should exit if the function if there are no changes needed', function () {
|
|
32
|
+
var nodes = [{
|
|
33
|
+
object: 'text',
|
|
34
|
+
text: 'Before Image'
|
|
35
|
+
}, {
|
|
36
|
+
type: 'image'
|
|
37
|
+
}, {
|
|
38
|
+
object: 'text',
|
|
39
|
+
text: 'After Image'
|
|
40
|
+
}];
|
|
41
|
+
var returnValue = imagePlugin.normalizeNode({
|
|
42
|
+
object: 'document',
|
|
43
|
+
findDescendant: jest.fn(function (callback) {
|
|
44
|
+
nodes.forEach(function (n) {
|
|
45
|
+
return callback(n);
|
|
46
|
+
});
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
expect(returnValue).toEqual(undefined);
|
|
50
|
+
});
|
|
51
|
+
it('should return a function if there is a node with an empty text before an image', function () {
|
|
52
|
+
var nodes = [{
|
|
53
|
+
object: 'text',
|
|
54
|
+
text: '',
|
|
55
|
+
key: '1'
|
|
56
|
+
}, {
|
|
57
|
+
type: 'image',
|
|
58
|
+
key: '2'
|
|
59
|
+
}, {
|
|
60
|
+
object: 'text',
|
|
61
|
+
text: 'After Image',
|
|
62
|
+
key: '3'
|
|
63
|
+
}];
|
|
64
|
+
var findDescendant = jest.fn(function (callback) {
|
|
65
|
+
nodes.forEach(function (n) {
|
|
66
|
+
return callback(n);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
var change = {
|
|
70
|
+
withoutNormalization: jest.fn(function (callback) {
|
|
71
|
+
callback();
|
|
72
|
+
}),
|
|
73
|
+
insertTextByKey: jest.fn()
|
|
74
|
+
};
|
|
75
|
+
var returnValue = imagePlugin.normalizeNode({
|
|
76
|
+
object: 'document',
|
|
77
|
+
findDescendant: findDescendant
|
|
78
|
+
});
|
|
79
|
+
expect(returnValue).toEqual(expect.any(Function));
|
|
80
|
+
returnValue(change);
|
|
81
|
+
expect(change.withoutNormalization).toHaveBeenCalledWith(expect.any(Function));
|
|
82
|
+
expect(change.insertTextByKey).toHaveBeenCalledWith('1', 0, ' ');
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJkZXNjcmliZSIsInZhbHVlIiwiaW1hZ2VTdXBwb3J0IiwiamVzdCIsImZuIiwiYWRkIiwiaW1hZ2VQbHVnaW4iLCJJbWFnZVRvb2xiYXIiLCJvbkRlbGV0ZSIsInNyYyIsImRvbmUiLCJlIiwiaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQiLCJub2RlIiwiZ2V0SGFuZGxlciIsImhhbmRsZXIiLCJpdCIsInJldHVyblZhbHVlIiwibm9ybWFsaXplTm9kZSIsIm9iamVjdCIsImV4cGVjdCIsInRvRXF1YWwiLCJ1bmRlZmluZWQiLCJub2RlcyIsInRleHQiLCJ0eXBlIiwiZmluZERlc2NlbmRhbnQiLCJjYWxsYmFjayIsImZvckVhY2giLCJuIiwia2V5IiwiY2hhbmdlIiwid2l0aG91dE5vcm1hbGl6YXRpb24iLCJpbnNlcnRUZXh0QnlLZXkiLCJhbnkiLCJGdW5jdGlvbiIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvaW1hZ2UvX190ZXN0c19fL2luZGV4LnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEltYWdlVG9vbGJhciBmcm9tICcuLi8nO1xuXG5kZXNjcmliZSgnaW1hZ2UgcGx1Z2luJywgKCkgPT4ge1xuICBsZXQgdmFsdWUgPSB7fTtcblxuICBjb25zdCBpbWFnZVN1cHBvcnQgPSB7XG4gICAgZGVsZXRlOiBqZXN0LmZuKCksXG4gICAgYWRkOiBqZXN0LmZuKCksXG4gIH07XG5cbiAgY29uc3QgaW1hZ2VQbHVnaW4gPSBJbWFnZVRvb2xiYXIoe1xuICAgIG9uRGVsZXRlOiAoc3JjLCBkb25lKSA9PiB7XG4gICAgICBpbWFnZVN1cHBvcnQuZGVsZXRlKHNyYywgKGUpID0+IHtcbiAgICAgICAgZG9uZShlLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGluc2VydEltYWdlUmVxdWVzdGVkOiAobm9kZSwgZ2V0SGFuZGxlcikgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlciA9IGdldEhhbmRsZXIoKCkgPT4gdmFsdWUpO1xuICAgICAgaW1hZ2VTdXBwb3J0LmFkZChoYW5kbGVyKTtcbiAgICB9LFxuICB9KTtcblxuICBkZXNjcmliZSgnbm9ybWFsaXplTm9kZScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGV4aXQgdGhlIGZ1bmN0aW9uIGlmIHRoZSBub2RlIGlzIG5vdCBvZiB0eXBlIGRvY3VtZW50JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmV0dXJuVmFsdWUgPSBpbWFnZVBsdWdpbi5ub3JtYWxpemVOb2RlKHsgb2JqZWN0OiAnaW1hZ2UnIH0pO1xuXG4gICAgICBleHBlY3QocmV0dXJuVmFsdWUpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZXhpdCBpZiB0aGUgZnVuY3Rpb24gaWYgdGhlcmUgYXJlIG5vIGNoYW5nZXMgbmVlZGVkJywgKCkgPT4ge1xuICAgICAgY29uc3Qgbm9kZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICB0ZXh0OiAnQmVmb3JlIEltYWdlJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICB0ZXh0OiAnQWZ0ZXIgSW1hZ2UnLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gaW1hZ2VQbHVnaW4ubm9ybWFsaXplTm9kZSh7XG4gICAgICAgIG9iamVjdDogJ2RvY3VtZW50JyxcbiAgICAgICAgZmluZERlc2NlbmRhbnQ6IGplc3QuZm4oKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgbm9kZXMuZm9yRWFjaCgobikgPT4gY2FsbGJhY2sobikpO1xuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KHJldHVyblZhbHVlKS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBhIGZ1bmN0aW9uIGlmIHRoZXJlIGlzIGEgbm9kZSB3aXRoIGFuIGVtcHR5IHRleHQgYmVmb3JlIGFuIGltYWdlJywgKCkgPT4ge1xuICAgICAgY29uc3Qgbm9kZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICBrZXk6ICcxJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgICAga2V5OiAnMicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICB0ZXh0OiAnQWZ0ZXIgSW1hZ2UnLFxuICAgICAgICAgIGtleTogJzMnLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIGNvbnN0IGZpbmREZXNjZW5kYW50ID0gamVzdC5mbigoY2FsbGJhY2spID0+IHtcbiAgICAgICAgbm9kZXMuZm9yRWFjaCgobikgPT4gY2FsbGJhY2sobikpO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBjaGFuZ2UgPSB7XG4gICAgICAgIHdpdGhvdXROb3JtYWxpemF0aW9uOiBqZXN0LmZuKChjYWxsYmFjaykgPT4ge1xuICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBpbnNlcnRUZXh0QnlLZXk6IGplc3QuZm4oKSxcbiAgICAgIH07XG4gICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGltYWdlUGx1Z2luLm5vcm1hbGl6ZU5vZGUoe1xuICAgICAgICBvYmplY3Q6ICdkb2N1bWVudCcsXG4gICAgICAgIGZpbmREZXNjZW5kYW50LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXR1cm5WYWx1ZSkudG9FcXVhbChleHBlY3QuYW55KEZ1bmN0aW9uKSk7XG5cbiAgICAgIHJldHVyblZhbHVlKGNoYW5nZSk7XG5cbiAgICAgIGV4cGVjdChjaGFuZ2Uud2l0aG91dE5vcm1hbGl6YXRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGV4cGVjdC5hbnkoRnVuY3Rpb24pKTtcbiAgICAgIGV4cGVjdChjaGFuZ2UuaW5zZXJ0VGV4dEJ5S2V5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnMScsIDAsICcgJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLENBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBQyxRQUFRLENBQUMsY0FBYyxFQUFFLFlBQU07RUFDN0IsSUFBSUMsS0FBSyxHQUFHLENBQUMsQ0FBQztFQUVkLElBQU1DLFlBQVksR0FBRztJQUNuQixVQUFRQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCQyxHQUFHLEVBQUVGLElBQUksQ0FBQ0MsRUFBRSxDQUFDO0VBQ2YsQ0FBQztFQUVELElBQU1FLFdBQVcsR0FBRyxJQUFBQyxZQUFZLEVBQUM7SUFDL0JDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxHQUFHLEVBQUVDLElBQUksRUFBSztNQUN2QlIsWUFBWSxVQUFPLENBQUNPLEdBQUcsRUFBRSxVQUFDRSxDQUFDLEVBQUs7UUFDOUJELElBQUksQ0FBQ0MsQ0FBQyxFQUFFVixLQUFLLENBQUM7TUFDaEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNEVyxvQkFBb0IsRUFBRSxTQUF0QkEsb0JBQW9CQSxDQUFHQyxJQUFJLEVBQUVDLFVBQVUsRUFBSztNQUMxQyxJQUFNQyxPQUFPLEdBQUdELFVBQVUsQ0FBQztRQUFBLE9BQU1iLEtBQUs7TUFBQSxFQUFDO01BQ3ZDQyxZQUFZLENBQUNHLEdBQUcsQ0FBQ1UsT0FBTyxDQUFDO0lBQzNCO0VBQ0YsQ0FBQyxDQUFDO0VBRUZmLFFBQVEsQ0FBQyxlQUFlLEVBQUUsWUFBTTtJQUM5QmdCLEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxZQUFNO01B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
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
var _mockChange = _interopRequireWildcard(require("./mock-change"));
|
|
6
|
+
var _slate = require("slate");
|
|
7
|
+
var _insertImageHandler = _interopRequireDefault(require("../insert-image-handler"));
|
|
8
|
+
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); }
|
|
9
|
+
expect.extend({
|
|
10
|
+
toMatchData: function toMatchData(received, argument) {
|
|
11
|
+
var argData = _slate.Data.create(argument);
|
|
12
|
+
var pass = argData.equals(received.data);
|
|
13
|
+
if (pass) {
|
|
14
|
+
return {
|
|
15
|
+
message: function message() {
|
|
16
|
+
return "expected ".concat(received.toJSON(), " not to be divisible by ").concat(argData.toJSON());
|
|
17
|
+
},
|
|
18
|
+
pass: true
|
|
19
|
+
};
|
|
20
|
+
} else {
|
|
21
|
+
return {
|
|
22
|
+
message: function message() {
|
|
23
|
+
return "expected ".concat(received.toJSON(), " to be divisible by ").concat(argData.toJSON());
|
|
24
|
+
},
|
|
25
|
+
pass: false
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
describe('insert image handler', function () {
|
|
31
|
+
var _change, document, value;
|
|
32
|
+
beforeEach(function () {
|
|
33
|
+
document = new _mockChange.MockDocument();
|
|
34
|
+
_change = new _mockChange["default"]();
|
|
35
|
+
value = {
|
|
36
|
+
change: function change() {
|
|
37
|
+
return _change;
|
|
38
|
+
},
|
|
39
|
+
document: document
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
var block = {
|
|
43
|
+
key: 1
|
|
44
|
+
};
|
|
45
|
+
var onChange = jest.fn();
|
|
46
|
+
var handler = new _insertImageHandler["default"](block, function () {}, function () {
|
|
47
|
+
return value;
|
|
48
|
+
}, onChange);
|
|
49
|
+
test('it constructs', function () {
|
|
50
|
+
expect(handler).not.toEqual(undefined);
|
|
51
|
+
});
|
|
52
|
+
describe('fileChosen', function () {
|
|
53
|
+
var fileReader;
|
|
54
|
+
beforeEach(function () {
|
|
55
|
+
fileReader = {
|
|
56
|
+
readAsDataURL: jest.fn()
|
|
57
|
+
};
|
|
58
|
+
global.FileReader = function () {
|
|
59
|
+
return fileReader;
|
|
60
|
+
};
|
|
61
|
+
handler.fileChosen({});
|
|
62
|
+
});
|
|
63
|
+
test('calls readAsDataURL', function () {
|
|
64
|
+
expect(fileReader.readAsDataURL).toBeCalledWith({});
|
|
65
|
+
});
|
|
66
|
+
test('calls onChange with src -> dataUrl', function () {
|
|
67
|
+
fileReader.result = 'dataURL';
|
|
68
|
+
fileReader.onload();
|
|
69
|
+
expect(_change.setNodeByKey).toBeCalledWith(block.key, expect.anything());
|
|
70
|
+
expect(_change.setNodeByKey.mock.calls[0][1]).toMatchData({
|
|
71
|
+
src: 'dataURL'
|
|
72
|
+
});
|
|
73
|
+
expect(onChange).toBeCalledWith(_change);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('progress', function () {
|
|
77
|
+
test('calls change w/ percent', function () {
|
|
78
|
+
handler.progress(40, 40, 100);
|
|
79
|
+
expect(_change.setNodeByKey).toBeCalledWith(block.key, expect.anything());
|
|
80
|
+
expect(_change.setNodeByKey.mock.calls[0][1].data.toJS()).toMatchObject({
|
|
81
|
+
percent: 40
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('done', function () {
|
|
86
|
+
test('calls setNodeByKey', function () {
|
|
87
|
+
handler.done(null, 'src');
|
|
88
|
+
expect(_change.setNodeByKey).toBeCalledWith(block.key, expect.anything());
|
|
89
|
+
expect(_change.setNodeByKey.mock.calls[0][1].data.toJS()).toMatchObject({
|
|
90
|
+
src: 'src',
|
|
91
|
+
loaded: true,
|
|
92
|
+
percent: 100
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
describe('cancel', function () {
|
|
97
|
+
beforeEach(function () {
|
|
98
|
+
document.getChild = jest.fn().mockReturnValue({
|
|
99
|
+
data: _slate.Data.create({}),
|
|
100
|
+
key: block.key
|
|
101
|
+
});
|
|
102
|
+
handler.cancel();
|
|
103
|
+
});
|
|
104
|
+
test('calls onChange', function () {
|
|
105
|
+
expect(onChange).toBeCalled();
|
|
106
|
+
});
|
|
107
|
+
test('calls removeNodeByKey', function () {
|
|
108
|
+
expect(_change.removeNodeByKey).toBeCalledWith(block.key);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9ja0NoYW5nZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9zbGF0ZSIsIl9pbnNlcnRJbWFnZUhhbmRsZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJleHBlY3QiLCJleHRlbmQiLCJ0b01hdGNoRGF0YSIsInJlY2VpdmVkIiwiYXJndW1lbnQiLCJhcmdEYXRhIiwiRGF0YSIsImNyZWF0ZSIsInBhc3MiLCJlcXVhbHMiLCJkYXRhIiwibWVzc2FnZSIsImNvbmNhdCIsInRvSlNPTiIsImRlc2NyaWJlIiwiY2hhbmdlIiwiZG9jdW1lbnQiLCJ2YWx1ZSIsImJlZm9yZUVhY2giLCJNb2NrRG9jdW1lbnQiLCJNb2NrQ2hhbmdlIiwiYmxvY2siLCJrZXkiLCJvbkNoYW5nZSIsImplc3QiLCJmbiIsImhhbmRsZXIiLCJJbnNlcnRJbWFnZUhhbmRsZXIiLCJ0ZXN0Iiwibm90IiwidG9FcXVhbCIsInVuZGVmaW5lZCIsImZpbGVSZWFkZXIiLCJyZWFkQXNEYXRhVVJMIiwiZ2xvYmFsIiwiRmlsZVJlYWRlciIsImZpbGVDaG9zZW4iLCJ0b0JlQ2FsbGVkV2l0aCIsInJlc3VsdCIsIm9ubG9hZCIsInNldE5vZGVCeUtleSIsImFueXRoaW5nIiwibW9jayIsImNhbGxzIiwic3JjIiwicHJvZ3Jlc3MiLCJ0b0pTIiwidG9NYXRjaE9iamVjdCIsInBlcmNlbnQiLCJkb25lIiwibG9hZGVkIiwiZ2V0Q2hpbGQiLCJtb2NrUmV0dXJuVmFsdWUiLCJjYW5jZWwiLCJ0b0JlQ2FsbGVkIiwicmVtb3ZlTm9kZUJ5S2V5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvaW1hZ2UvX190ZXN0c19fL2luc2VydC1pbWFnZS1oYW5kbGVyLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1vY2tDaGFuZ2UsIHsgTW9ja0RvY3VtZW50IH0gZnJvbSAnLi9tb2NrLWNoYW5nZSc7XG5cbmltcG9ydCB7IERhdGEgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgSW5zZXJ0SW1hZ2VIYW5kbGVyIGZyb20gJy4uL2luc2VydC1pbWFnZS1oYW5kbGVyJztcblxuZXhwZWN0LmV4dGVuZCh7XG4gIHRvTWF0Y2hEYXRhOiAocmVjZWl2ZWQsIGFyZ3VtZW50KSA9PiB7XG4gICAgY29uc3QgYXJnRGF0YSA9IERhdGEuY3JlYXRlKGFyZ3VtZW50KTtcbiAgICBjb25zdCBwYXNzID0gYXJnRGF0YS5lcXVhbHMocmVjZWl2ZWQuZGF0YSk7XG4gICAgaWYgKHBhc3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1lc3NhZ2U6ICgpID0+IGBleHBlY3RlZCAke3JlY2VpdmVkLnRvSlNPTigpfSBub3QgdG8gYmUgZGl2aXNpYmxlIGJ5ICR7YXJnRGF0YS50b0pTT04oKX1gLFxuICAgICAgICBwYXNzOiB0cnVlLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWVzc2FnZTogKCkgPT4gYGV4cGVjdGVkICR7cmVjZWl2ZWQudG9KU09OKCl9IHRvIGJlIGRpdmlzaWJsZSBieSAke2FyZ0RhdGEudG9KU09OKCl9YCxcbiAgICAgICAgcGFzczogZmFsc2UsXG4gICAgICB9O1xuICAgIH1cbiAgfSxcbn0pO1xuZGVzY3JpYmUoJ2luc2VydCBpbWFnZSBoYW5kbGVyJywgKCkgPT4ge1xuICBsZXQgY2hhbmdlLCBkb2N1bWVudCwgdmFsdWU7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGRvY3VtZW50ID0gbmV3IE1vY2tEb2N1bWVudCgpO1xuICAgIGNoYW5nZSA9IG5ldyBNb2NrQ2hhbmdlKCk7XG4gICAgdmFsdWUgPSB7XG4gICAgICBjaGFuZ2U6ICgpID0+IGNoYW5nZSxcbiAgICAgIGRvY3VtZW50LFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0IGJsb2NrID0geyBrZXk6IDEgfTtcbiAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG5cbiAgY29uc3QgaGFuZGxlciA9IG5ldyBJbnNlcnRJbWFnZUhhbmRsZXIoXG4gICAgYmxvY2ssXG4gICAgKCkgPT4ge30sXG4gICAgKCkgPT4gdmFsdWUsXG4gICAgb25DaGFuZ2UsXG4gICk7XG5cbiAgdGVzdCgnaXQgY29uc3RydWN0cycsICgpID0+IHtcbiAgICBleHBlY3QoaGFuZGxlcikubm90LnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2ZpbGVDaG9zZW4nLCAoKSA9PiB7XG4gICAgbGV0IGZpbGVSZWFkZXI7XG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBmaWxlUmVhZGVyID0ge1xuICAgICAgICByZWFkQXNEYXRhVVJMOiBqZXN0LmZuKCksXG4gICAgICB9O1xuXG4gICAgICBnbG9iYWwuRmlsZVJlYWRlciA9ICgpID0+IGZpbGVSZWFkZXI7XG4gICAgICBoYW5kbGVyLmZpbGVDaG9zZW4oe30pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnY2FsbHMgcmVhZEFzRGF0YVVSTCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwpLnRvQmVDYWxsZWRXaXRoKHt9KTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2NhbGxzIG9uQ2hhbmdlIHdpdGggc3JjIC0+IGRhdGFVcmwnLCAoKSA9PiB7XG4gICAgICBmaWxlUmVhZGVyLnJlc3VsdCA9ICdkYXRhVVJMJztcbiAgICAgIGZpbGVSZWFkZXIub25sb2FkKCk7XG4gICAgICBleHBlY3QoY2hhbmdlLnNldE5vZGVCeUtleSkudG9CZUNhbGxlZFdpdGgoYmxvY2sua2V5LCBleHBlY3QuYW55dGhpbmcoKSk7XG4gICAgICBleHBlY3QoY2hhbmdlLnNldE5vZGVCeUtleS5tb2NrLmNhbGxzWzBdWzFdKS50b01hdGNoRGF0YSh7XG4gICAgICAgIHNyYzogJ2RhdGFVUkwnLFxuICAgICAgfSk7XG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvQmVDYWxsZWRXaXRoKGNoYW5nZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwcm9ncmVzcycsICgpID0+IHtcbiAgICB0ZXN0KCdjYWxscyBjaGFuZ2Ugdy8gcGVyY2VudCcsICgpID0+IHtcbiAgICAgIGhhbmRsZXIucHJvZ3Jlc3MoNDAsIDQwLCAxMDApO1xuICAgICAgZXhwZWN0KGNoYW5nZS5zZXROb2RlQnlLZXkpLnRvQmVDYWxsZWRXaXRoKGJsb2NrLmtleSwgZXhwZWN0LmFueXRoaW5nKCkpO1xuXG4gICAgICBleHBlY3QoY2hhbmdlLnNldE5vZGVCeUtleS5tb2NrLmNhbGxzWzBdWzFdLmRhdGEudG9KUygpKS50b01hdGNoT2JqZWN0KHtcbiAgICAgICAgcGVyY2VudDogNDAsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RvbmUnLCAoKSA9PiB7XG4gICAgdGVzdCgnY2FsbHMgc2V0Tm9kZUJ5S2V5JywgKCkgPT4ge1xuICAgICAgaGFuZGxlci5kb25lKG51bGwsICdzcmMnKTtcblxuICAgICAgZXhwZWN0KGNoYW5nZS5zZXROb2RlQnlLZXkpLnRvQmVDYWxsZWRXaXRoKGJsb2NrLmtleSwgZXhwZWN0LmFueXRoaW5nKCkpO1xuXG4gICAgICBleHBlY3QoY2hhbmdlLnNldE5vZGVCeUtleS5tb2NrLmNhbGxzWzBdWzFdLmRhdGEudG9KUygpKS50b01hdGNoT2JqZWN0KHtcbiAgICAgICAgc3JjOiAnc3JjJyxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBwZXJjZW50OiAxMDAsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NhbmNlbCcsICgpID0+IHtcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIGRvY3VtZW50LmdldENoaWxkID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7IGRhdGE6IERhdGEuY3JlYXRlKHt9KSwga2V5OiBibG9jay5rZXkgfSk7XG4gICAgICBoYW5kbGVyLmNhbmNlbCgpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnY2FsbHMgb25DaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvQmVDYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2NhbGxzIHJlbW92ZU5vZGVCeUtleScsICgpID0+IHtcbiAgICAgIGV4cGVjdChjaGFuZ2UucmVtb3ZlTm9kZUJ5S2V5KS50b0JlQ2FsbGVkV2l0aChibG9jay5rZXkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUF5RCxTQUFBRCx3QkFBQUssQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVAsdUJBQUEsWUFBQUEsd0JBQUFLLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENB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
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MockDocument = MockDocument;
|
|
7
|
+
exports["default"] = MockChange;
|
|
8
|
+
var _slate = require("slate");
|
|
9
|
+
function MockChange() {
|
|
10
|
+
this.setNodeByKey = jest.fn().mockReturnValue(this);
|
|
11
|
+
this.removeNodeByKey = jest.fn().mockReturnValue(this);
|
|
12
|
+
this.insertInline = jest.fn().mockReturnValue(this);
|
|
13
|
+
this.moveFocusTo = jest.fn().mockReturnValue(this);
|
|
14
|
+
this.moveAnchorTo = jest.fn().mockReturnValue(this);
|
|
15
|
+
}
|
|
16
|
+
function MockDocument() {
|
|
17
|
+
this.getChild = jest.fn().mockReturnValue({
|
|
18
|
+
data: _slate.Data.create({})
|
|
19
|
+
});
|
|
20
|
+
this.getDescendant = jest.fn();
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xhdGUiLCJyZXF1aXJlIiwiTW9ja0NoYW5nZSIsInNldE5vZGVCeUtleSIsImplc3QiLCJmbiIsIm1vY2tSZXR1cm5WYWx1ZSIsInJlbW92ZU5vZGVCeUtleSIsImluc2VydElubGluZSIsIm1vdmVGb2N1c1RvIiwibW92ZUFuY2hvclRvIiwiTW9ja0RvY3VtZW50IiwiZ2V0Q2hpbGQiLCJkYXRhIiwiRGF0YSIsImNyZWF0ZSIsImdldERlc2NlbmRhbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9pbWFnZS9fX3Rlc3RzX18vbW9jay1jaGFuZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YSB9IGZyb20gJ3NsYXRlJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTW9ja0NoYW5nZSgpIHtcbiAgdGhpcy5zZXROb2RlQnlLZXkgPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHRoaXMpO1xuICB0aGlzLnJlbW92ZU5vZGVCeUtleSA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUodGhpcyk7XG4gIHRoaXMuaW5zZXJ0SW5saW5lID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh0aGlzKTtcbiAgdGhpcy5tb3ZlRm9jdXNUbyA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUodGhpcyk7XG4gIHRoaXMubW92ZUFuY2hvclRvID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh0aGlzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1vY2tEb2N1bWVudCgpIHtcbiAgdGhpcy5nZXRDaGlsZCA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoeyBkYXRhOiBEYXRhLmNyZWF0ZSh7fSkgfSk7XG5cbiAgdGhpcy5nZXREZXNjZW5kYW50ID0gamVzdC5mbigpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRWUsU0FBU0MsVUFBVUEsQ0FBQSxFQUFHO0VBQ25DLElBQUksQ0FBQ0MsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDLENBQUNDLGVBQWUsQ0FBQyxJQUFJLENBQUM7RUFDbkQsSUFBSSxDQUFDQyxlQUFlLEdBQUdILElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUMsQ0FBQ0MsZUFBZSxDQUFDLElBQUksQ0FBQztFQUN0RCxJQUFJLENBQUNFLFlBQVksR0FBR0osSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQyxDQUFDQyxlQUFlLENBQUMsSUFBSSxDQUFDO0VBQ25ELElBQUksQ0FBQ0csV0FBVyxHQUFHTCxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDLENBQUNDLGVBQWUsQ0FBQyxJQUFJLENBQUM7RUFDbEQsSUFBSSxDQUFDSSxZQUFZLEdBQUdOLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUMsQ0FBQ0MsZUFBZSxDQUFDLElBQUksQ0FBQztBQUNyRDtBQUVPLFNBQVNLLFlBQVlBLENBQUEsRUFBRztFQUM3QixJQUFJLENBQUNDLFFBQVEsR0FBR1IsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQyxDQUFDQyxlQUFlLENBQUM7SUFBRU8sSUFBSSxFQUFFQyxXQUFJLENBQUNDLE1BQU0sQ0FBQyxDQUFDLENBQUM7RUFBRSxDQUFDLENBQUM7RUFFcEUsSUFBSSxDQUFDQyxhQUFhLEdBQUdaLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7QUFDaEMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
var _index = _interopRequireWildcard(require("../index"));
|
|
6
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
7
|
+
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); }
|
|
8
|
+
var log = (0, _debug["default"])('@pie-lib:editable-html:test:plugins:list');
|
|
9
|
+
describe('ListPlugin', function () {
|
|
10
|
+
var next;
|
|
11
|
+
describe('deserialize', function () {
|
|
12
|
+
next = jest.fn();
|
|
13
|
+
var assertDeserialize = function assertDeserialize(tagName, expectedType) {
|
|
14
|
+
it("should deserialize ".concat(tagName, " to ").concat(expectedType), function () {
|
|
15
|
+
var out = _index.serialization.deserialize({
|
|
16
|
+
tagName: tagName,
|
|
17
|
+
children: [],
|
|
18
|
+
childNodes: []
|
|
19
|
+
}, next);
|
|
20
|
+
expect(out).toMatchObject({
|
|
21
|
+
object: 'block',
|
|
22
|
+
type: expectedType
|
|
23
|
+
});
|
|
24
|
+
expect(next).toHaveBeenCalledWith([]);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
assertDeserialize('ul', 'ul_list');
|
|
28
|
+
assertDeserialize('ol', 'ol_list');
|
|
29
|
+
assertDeserialize('li', 'list_item');
|
|
30
|
+
});
|
|
31
|
+
describe('serialize', function () {
|
|
32
|
+
var assertSerialize = function assertSerialize(type, expectedType) {
|
|
33
|
+
it("should serialize ".concat(type, " to ").concat(expectedType), function () {
|
|
34
|
+
var out = _index.serialization.serialize({
|
|
35
|
+
object: 'block',
|
|
36
|
+
type: type
|
|
37
|
+
}, {});
|
|
38
|
+
log('out: ', out);
|
|
39
|
+
expect(out.type).toMatch(expectedType);
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
assertSerialize('ul_list', 'ul');
|
|
43
|
+
assertSerialize('ol_list', 'ol');
|
|
44
|
+
assertSerialize('list_item', 'li');
|
|
45
|
+
});
|
|
46
|
+
describe('renderNode', function () {
|
|
47
|
+
var plugin = (0, _index["default"])({});
|
|
48
|
+
var assertRenderNode = function assertRenderNode(type, expectedType) {
|
|
49
|
+
it("should renderNode ".concat(type, " to ").concat(expectedType), function () {
|
|
50
|
+
var out = plugin.renderNode({
|
|
51
|
+
node: {
|
|
52
|
+
type: type
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
expect(out.type).toMatch(expectedType);
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
assertRenderNode('ul_list', 'ul');
|
|
59
|
+
assertRenderNode('ol_list', 'ol');
|
|
60
|
+
assertRenderNode('list_item', 'li');
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJsb2ciLCJkZWJ1ZyIsImRlc2NyaWJlIiwibmV4dCIsImplc3QiLCJmbiIsImFzc2VydERlc2VyaWFsaXplIiwidGFnTmFtZSIsImV4cGVjdGVkVHlwZSIsIml0IiwiY29uY2F0Iiwib3V0Iiwic2VyaWFsaXphdGlvbiIsImRlc2VyaWFsaXplIiwiY2hpbGRyZW4iLCJjaGlsZE5vZGVzIiwiZXhwZWN0IiwidG9NYXRjaE9iamVjdCIsIm9iamVjdCIsInR5cGUiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsImFzc2VydFNlcmlhbGl6ZSIsInNlcmlhbGl6ZSIsInRvTWF0Y2giLCJwbHVnaW4iLCJMaXN0IiwiYXNzZXJ0UmVuZGVyTm9kZSIsInJlbmRlck5vZGUiLCJub2RlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvbGlzdC9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdCwgeyBzZXJpYWxpemF0aW9uIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6dGVzdDpwbHVnaW5zOmxpc3QnKTtcblxuZGVzY3JpYmUoJ0xpc3RQbHVnaW4nLCAoKSA9PiB7XG4gIGxldCBuZXh0O1xuXG4gIGRlc2NyaWJlKCdkZXNlcmlhbGl6ZScsICgpID0+IHtcbiAgICBuZXh0ID0gamVzdC5mbigpO1xuXG4gICAgY29uc3QgYXNzZXJ0RGVzZXJpYWxpemUgPSAodGFnTmFtZSwgZXhwZWN0ZWRUeXBlKSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGRlc2VyaWFsaXplICR7dGFnTmFtZX0gdG8gJHtleHBlY3RlZFR5cGV9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCBvdXQgPSBzZXJpYWxpemF0aW9uLmRlc2VyaWFsaXplKHsgdGFnTmFtZSwgY2hpbGRyZW46IFtdLCBjaGlsZE5vZGVzOiBbXSB9LCBuZXh0KTtcblxuICAgICAgICBleHBlY3Qob3V0KS50b01hdGNoT2JqZWN0KHsgb2JqZWN0OiAnYmxvY2snLCB0eXBlOiBleHBlY3RlZFR5cGUgfSk7XG4gICAgICAgIGV4cGVjdChuZXh0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbXSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGFzc2VydERlc2VyaWFsaXplKCd1bCcsICd1bF9saXN0Jyk7XG4gICAgYXNzZXJ0RGVzZXJpYWxpemUoJ29sJywgJ29sX2xpc3QnKTtcbiAgICBhc3NlcnREZXNlcmlhbGl6ZSgnbGknLCAnbGlzdF9pdGVtJyk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzZXJpYWxpemUnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0U2VyaWFsaXplID0gKHR5cGUsIGV4cGVjdGVkVHlwZSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBzZXJpYWxpemUgJHt0eXBlfSB0byAke2V4cGVjdGVkVHlwZX1gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG91dCA9IHNlcmlhbGl6YXRpb24uc2VyaWFsaXplKHsgb2JqZWN0OiAnYmxvY2snLCB0eXBlIH0sIHt9KTtcbiAgICAgICAgbG9nKCdvdXQ6ICcsIG91dCk7XG4gICAgICAgIGV4cGVjdChvdXQudHlwZSkudG9NYXRjaChleHBlY3RlZFR5cGUpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICBhc3NlcnRTZXJpYWxpemUoJ3VsX2xpc3QnLCAndWwnKTtcbiAgICBhc3NlcnRTZXJpYWxpemUoJ29sX2xpc3QnLCAnb2wnKTtcbiAgICBhc3NlcnRTZXJpYWxpemUoJ2xpc3RfaXRlbScsICdsaScpO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVyTm9kZScsICgpID0+IHtcbiAgICBsZXQgcGx1Z2luID0gTGlzdCh7fSk7XG5cbiAgICBjb25zdCBhc3NlcnRSZW5kZXJOb2RlID0gKHR5cGUsIGV4cGVjdGVkVHlwZSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCByZW5kZXJOb2RlICR7dHlwZX0gdG8gJHtleHBlY3RlZFR5cGV9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCBvdXQgPSBwbHVnaW4ucmVuZGVyTm9kZSh7IG5vZGU6IHsgdHlwZSB9IH0pO1xuICAgICAgICBleHBlY3Qob3V0LnR5cGUpLnRvTWF0Y2goZXhwZWN0ZWRUeXBlKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3NlcnRSZW5kZXJOb2RlKCd1bF9saXN0JywgJ3VsJyk7XG4gICAgYXNzZXJ0UmVuZGVyTm9kZSgnb2xfbGlzdCcsICdvbCcpO1xuICAgIGFzc2VydFJlbmRlck5vZGUoJ2xpc3RfaXRlbScsICdsaScpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQTBCLFNBQUFELHdCQUFBSSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTix1QkFBQSxZQUFBQSx3QkFBQUksQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdC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
|