@pie-lib/mask-markup 2.2.0-next.2 → 2.2.0-next.4
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/CHANGELOG.md +21 -34
- package/LICENSE.md +5 -0
- package/lib/choices/choice.js +1 -1
- package/lib/choices/index.js +1 -1
- package/lib/componentize.js +1 -1
- package/lib/components/blank.js +1 -1
- package/lib/components/correct-input.js +1 -1
- package/lib/components/dropdown.js +1 -1
- package/lib/components/input.js +1 -1
- package/lib/constructed-response.js +1 -1
- package/lib/customizable.js +1 -1
- package/lib/drag-in-the-blank.js +1 -1
- package/lib/index.js +1 -1
- package/lib/inline-dropdown.js +1 -1
- package/lib/mask.js +1 -1
- package/lib/serialization.js +1 -1
- package/lib/with-mask.js +1 -1
- package/package.json +3 -3
- package/lib/__tests__/drag-in-the-blank.test.js +0 -129
- package/lib/__tests__/index.test.js +0 -39
- package/lib/__tests__/mask.test.js +0 -163
- package/lib/__tests__/serialization.test.js +0 -44
- package/lib/__tests__/utils.js +0 -14
- package/lib/__tests__/with-mask.test.js +0 -110
- package/lib/choices/__tests__/index.test.js +0 -101
- package/lib/components/__tests__/blank.test.js +0 -188
- package/lib/components/__tests__/correct-input.test.js +0 -132
- package/lib/components/__tests__/dropdown.test.js +0 -134
- package/lib/components/__tests__/input.test.js +0 -129
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
|
-
var React = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _react2 = require("@testing-library/react");
|
|
9
|
-
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
|
-
var _withMask = require("../with-mask");
|
|
11
|
-
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); }
|
|
12
|
-
describe('WithMask', function () {
|
|
13
|
-
var onChange = jest.fn();
|
|
14
|
-
var defaultProps = {
|
|
15
|
-
markup: '<p>Foo bar {{0}} over the moon;</p>',
|
|
16
|
-
value: {
|
|
17
|
-
0: 'blank'
|
|
18
|
-
},
|
|
19
|
-
onChange: onChange
|
|
20
|
-
};
|
|
21
|
-
var Masked = (0, _withMask.withMask)('foo', function (props) {
|
|
22
|
-
return function (node) {
|
|
23
|
-
var dataset = node.data ? node.data.dataset || {} : {};
|
|
24
|
-
if (dataset.component === 'foo') {
|
|
25
|
-
return /*#__PURE__*/React.createElement("input", {
|
|
26
|
-
type: "text",
|
|
27
|
-
"data-testid": "masked-input",
|
|
28
|
-
defaultValue: "Foo",
|
|
29
|
-
onChange: props.onChange
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
beforeEach(function () {
|
|
35
|
-
onChange.mockClear();
|
|
36
|
-
});
|
|
37
|
-
describe('rendering', function () {
|
|
38
|
-
it('renders with default props', function () {
|
|
39
|
-
var _render = (0, _react2.render)(/*#__PURE__*/React.createElement(Masked, defaultProps)),
|
|
40
|
-
container = _render.container;
|
|
41
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
42
|
-
});
|
|
43
|
-
it('renders markup content', function () {
|
|
44
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(Masked, defaultProps));
|
|
45
|
-
expect(_react2.screen.getByText(/Foo bar/)).toBeInTheDocument();
|
|
46
|
-
});
|
|
47
|
-
it('renders paragraph content', function () {
|
|
48
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/React.createElement(Masked, defaultProps)),
|
|
49
|
-
container = _render2.container;
|
|
50
|
-
// Paragraph is rendered as a styled div, not a <p> tag
|
|
51
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
52
|
-
expect(_react2.screen.getByText(/Foo bar/)).toBeInTheDocument();
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe('onChange handler', function () {
|
|
56
|
-
it('calls onChange when value changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
57
|
-
var user, input;
|
|
58
|
-
return _regenerator["default"].wrap(function (_context) {
|
|
59
|
-
while (1) switch (_context.prev = _context.next) {
|
|
60
|
-
case 0:
|
|
61
|
-
user = _userEvent["default"].setup();
|
|
62
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(Masked, defaultProps));
|
|
63
|
-
input = _react2.screen.queryByTestId('masked-input');
|
|
64
|
-
if (!input) {
|
|
65
|
-
_context.next = 3;
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
_context.next = 1;
|
|
69
|
-
return user.clear(input);
|
|
70
|
-
case 1:
|
|
71
|
-
_context.next = 2;
|
|
72
|
-
return user.type(input, 'ceva');
|
|
73
|
-
case 2:
|
|
74
|
-
expect(onChange).toHaveBeenCalled();
|
|
75
|
-
case 3:
|
|
76
|
-
case "end":
|
|
77
|
-
return _context.stop();
|
|
78
|
-
}
|
|
79
|
-
}, _callee);
|
|
80
|
-
})));
|
|
81
|
-
it('passes event to onChange', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
82
|
-
var user, input, lastCall;
|
|
83
|
-
return _regenerator["default"].wrap(function (_context2) {
|
|
84
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
85
|
-
case 0:
|
|
86
|
-
user = _userEvent["default"].setup();
|
|
87
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(Masked, defaultProps));
|
|
88
|
-
input = _react2.screen.queryByTestId('masked-input');
|
|
89
|
-
if (!input) {
|
|
90
|
-
_context2.next = 3;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
_context2.next = 1;
|
|
94
|
-
return user.clear(input);
|
|
95
|
-
case 1:
|
|
96
|
-
_context2.next = 2;
|
|
97
|
-
return user.type(input, 'test');
|
|
98
|
-
case 2:
|
|
99
|
-
expect(onChange).toHaveBeenCalled();
|
|
100
|
-
lastCall = onChange.mock.calls[onChange.mock.calls.length - 1][0];
|
|
101
|
-
expect(lastCall).toHaveProperty('target');
|
|
102
|
-
case 3:
|
|
103
|
-
case "end":
|
|
104
|
-
return _context2.stop();
|
|
105
|
-
}
|
|
106
|
-
}, _callee2);
|
|
107
|
-
})));
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlckV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl93aXRoTWFzayIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzY3JpYmUiLCJvbkNoYW5nZSIsImplc3QiLCJmbiIsImRlZmF1bHRQcm9wcyIsIm1hcmt1cCIsInZhbHVlIiwiTWFza2VkIiwid2l0aE1hc2siLCJwcm9wcyIsIm5vZGUiLCJkYXRhc2V0IiwiZGF0YSIsImNvbXBvbmVudCIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsIml0IiwiX3JlbmRlciIsInJlbmRlciIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNjcmVlbiIsImdldEJ5VGV4dCIsIl9yZW5kZXIyIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ1c2VyIiwiaW5wdXQiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInVzZXJFdmVudCIsInNldHVwIiwicXVlcnlCeVRlc3RJZCIsImNsZWFyIiwidG9IYXZlQmVlbkNhbGxlZCIsInN0b3AiLCJfY2FsbGVlMiIsImxhc3RDYWxsIiwiX2NvbnRleHQyIiwibW9jayIsImNhbGxzIiwibGVuZ3RoIiwidG9IYXZlUHJvcGVydHkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3dpdGgtbWFzay50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciwgc2NyZWVuIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgdXNlckV2ZW50IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvdXNlci1ldmVudCc7XG5pbXBvcnQgeyB3aXRoTWFzayB9IGZyb20gJy4uL3dpdGgtbWFzayc7XG5cbmRlc2NyaWJlKCdXaXRoTWFzaycsICgpID0+IHtcbiAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtYXJrdXA6ICc8cD5Gb28gYmFyIHt7MH19IG92ZXIgdGhlIG1vb247PC9wPicsXG4gICAgdmFsdWU6IHtcbiAgICAgIDA6ICdibGFuaycsXG4gICAgfSxcbiAgICBvbkNoYW5nZSxcbiAgfTtcblxuICBjb25zdCBNYXNrZWQgPSB3aXRoTWFzaygnZm9vJywgKHByb3BzKSA9PiAobm9kZSkgPT4ge1xuICAgIGNvbnN0IGRhdGFzZXQgPSBub2RlLmRhdGEgPyBub2RlLmRhdGEuZGF0YXNldCB8fCB7fSA6IHt9O1xuXG4gICAgaWYgKGRhdGFzZXQuY29tcG9uZW50ID09PSAnZm9vJykge1xuICAgICAgcmV0dXJuIDxpbnB1dCB0eXBlPVwidGV4dFwiIGRhdGEtdGVzdGlkPVwibWFza2VkLWlucHV0XCIgZGVmYXVsdFZhbHVlPVwiRm9vXCIgb25DaGFuZ2U9e3Byb3BzLm9uQ2hhbmdlfSAvPjtcbiAgICB9XG4gIH0pO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlLm1vY2tDbGVhcigpO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hc2tlZCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBtYXJrdXAgY29udGVudCcsICgpID0+IHtcbiAgICAgIHJlbmRlcig8TWFza2VkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9Gb28gYmFyLykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBwYXJhZ3JhcGggY29udGVudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hc2tlZCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICAvLyBQYXJhZ3JhcGggaXMgcmVuZGVyZWQgYXMgYSBzdHlsZWQgZGl2LCBub3QgYSA8cD4gdGFnXG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvRm9vIGJhci8pKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnb25DaGFuZ2UgaGFuZGxlcicsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgb25DaGFuZ2Ugd2hlbiB2YWx1ZSBjaGFuZ2VzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJFdmVudC5zZXR1cCgpO1xuICAgICAgcmVuZGVyKDxNYXNrZWQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuXG4gICAgICBjb25zdCBpbnB1dCA9IHNjcmVlbi5xdWVyeUJ5VGVzdElkKCdtYXNrZWQtaW5wdXQnKTtcbiAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICBhd2FpdCB1c2VyLmNsZWFyKGlucHV0KTtcbiAgICAgICAgYXdhaXQgdXNlci50eXBlKGlucHV0LCAnY2V2YScpO1xuXG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Bhc3NlcyBldmVudCB0byBvbkNoYW5nZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlcig8TWFza2VkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcblxuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4ucXVlcnlCeVRlc3RJZCgnbWFza2VkLWlucHV0Jyk7XG4gICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgYXdhaXQgdXNlci5jbGVhcihpbnB1dCk7XG4gICAgICAgIGF3YWl0IHVzZXIudHlwZShpbnB1dCwgJ3Rlc3QnKTtcblxuICAgICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgICAgY29uc3QgbGFzdENhbGwgPSBvbkNoYW5nZS5tb2NrLmNhbGxzW29uQ2hhbmdlLm1vY2suY2FsbHMubGVuZ3RoIC0gMV1bMF07XG4gICAgICAgIGV4cGVjdChsYXN0Q2FsbCkudG9IYXZlUHJvcGVydHkoJ3RhcmdldCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFBd0MsU0FBQUQsd0JBQUFNLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFSLHVCQUFBLFlBQUFBLHdCQUFBTSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFB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
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
-
var React = _interopRequireWildcard(require("react"));
|
|
7
|
-
var _react2 = require("@testing-library/react");
|
|
8
|
-
var _choice = _interopRequireDefault(require("../choice"));
|
|
9
|
-
var _utils = require("../../__tests__/utils");
|
|
10
|
-
var _index = _interopRequireDefault(require("../index"));
|
|
11
|
-
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); }
|
|
12
|
-
// Mock @dnd-kit hooks to avoid DndContext requirement
|
|
13
|
-
jest.mock('@dnd-kit/core', function () {
|
|
14
|
-
return {
|
|
15
|
-
useDraggable: jest.fn(function () {
|
|
16
|
-
return {
|
|
17
|
-
attributes: {},
|
|
18
|
-
listeners: {},
|
|
19
|
-
setNodeRef: jest.fn(),
|
|
20
|
-
isDragging: false
|
|
21
|
-
};
|
|
22
|
-
}),
|
|
23
|
-
useDroppable: jest.fn(function () {
|
|
24
|
-
return {
|
|
25
|
-
setNodeRef: jest.fn(),
|
|
26
|
-
isOver: false,
|
|
27
|
-
active: null
|
|
28
|
-
};
|
|
29
|
-
})
|
|
30
|
-
};
|
|
31
|
-
});
|
|
32
|
-
describe('index', function () {
|
|
33
|
-
describe('Choices', function () {
|
|
34
|
-
var defaultProps = {
|
|
35
|
-
disabled: false,
|
|
36
|
-
choices: [(0, _utils.choice)('Jumped', '0'), (0, _utils.choice)('Laughed', '1'), (0, _utils.choice)('Spoon', '2')],
|
|
37
|
-
choicePosition: 'below',
|
|
38
|
-
instanceId: 'test-instance'
|
|
39
|
-
};
|
|
40
|
-
it('renders correctly with default props', function () {
|
|
41
|
-
var _render = (0, _react2.render)(/*#__PURE__*/React.createElement(_index["default"], defaultProps)),
|
|
42
|
-
container = _render.container;
|
|
43
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
44
|
-
expect(_react2.screen.getByText('Jumped')).toBeInTheDocument();
|
|
45
|
-
expect(_react2.screen.getByText('Laughed')).toBeInTheDocument();
|
|
46
|
-
expect(_react2.screen.getByText('Spoon')).toBeInTheDocument();
|
|
47
|
-
});
|
|
48
|
-
it('renders correctly with disabled prop as true', function () {
|
|
49
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/React.createElement(_index["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
50
|
-
disabled: true
|
|
51
|
-
}))),
|
|
52
|
-
container = _render2.container;
|
|
53
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
54
|
-
});
|
|
55
|
-
it('renders without duplicates', function () {
|
|
56
|
-
var _render3 = (0, _react2.render)(/*#__PURE__*/React.createElement(_index["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
57
|
-
duplicates: undefined,
|
|
58
|
-
value: {
|
|
59
|
-
0: '0',
|
|
60
|
-
1: '1'
|
|
61
|
-
}
|
|
62
|
-
}))),
|
|
63
|
-
container = _render3.container;
|
|
64
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
65
|
-
});
|
|
66
|
-
it('renders with duplicates', function () {
|
|
67
|
-
var _render4 = (0, _react2.render)(/*#__PURE__*/React.createElement(_index["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
68
|
-
duplicates: true,
|
|
69
|
-
value: {
|
|
70
|
-
0: '0',
|
|
71
|
-
1: '1'
|
|
72
|
-
}
|
|
73
|
-
}))),
|
|
74
|
-
container = _render4.container;
|
|
75
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe('Choice', function () {
|
|
79
|
-
var defaultProps = {
|
|
80
|
-
disabled: false,
|
|
81
|
-
choice: (0, _utils.choice)('Label', '1'),
|
|
82
|
-
instanceId: 'test-instance'
|
|
83
|
-
};
|
|
84
|
-
describe('render', function () {
|
|
85
|
-
it('renders correctly with default props', function () {
|
|
86
|
-
var _render5 = (0, _react2.render)(/*#__PURE__*/React.createElement(_choice["default"], defaultProps)),
|
|
87
|
-
container = _render5.container;
|
|
88
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
89
|
-
expect(_react2.screen.getByText('Label')).toBeInTheDocument();
|
|
90
|
-
});
|
|
91
|
-
it('renders correctly with disabled prop as true', function () {
|
|
92
|
-
var _render6 = (0, _react2.render)(/*#__PURE__*/React.createElement(_choice["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
93
|
-
disabled: true
|
|
94
|
-
}))),
|
|
95
|
-
container = _render6.container;
|
|
96
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfY2hvaWNlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91dGlscyIsIl9pbmRleCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiamVzdCIsIm1vY2siLCJ1c2VEcmFnZ2FibGUiLCJmbiIsImF0dHJpYnV0ZXMiLCJsaXN0ZW5lcnMiLCJzZXROb2RlUmVmIiwiaXNEcmFnZ2luZyIsInVzZURyb3BwYWJsZSIsImlzT3ZlciIsImFjdGl2ZSIsImRlc2NyaWJlIiwiZGVmYXVsdFByb3BzIiwiZGlzYWJsZWQiLCJjaG9pY2VzIiwiY2hvaWNlIiwiY2hvaWNlUG9zaXRpb24iLCJpbnN0YW5jZUlkIiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNjcmVlbiIsImdldEJ5VGV4dCIsIl9yZW5kZXIyIiwiX2V4dGVuZHMyIiwiX3JlbmRlcjMiLCJkdXBsaWNhdGVzIiwidW5kZWZpbmVkIiwidmFsdWUiLCJfcmVuZGVyNCIsIl9yZW5kZXI1IiwiX3JlbmRlcjYiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2hvaWNlcy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIsIHNjcmVlbiB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IENob2ljZSBmcm9tICcuLi9jaG9pY2UnO1xuaW1wb3J0IHsgY2hvaWNlIH0gZnJvbSAnLi4vLi4vX190ZXN0c19fL3V0aWxzJztcbmltcG9ydCBDaG9pY2VzIGZyb20gJy4uL2luZGV4JztcblxuLy8gTW9jayBAZG5kLWtpdCBob29rcyB0byBhdm9pZCBEbmRDb250ZXh0IHJlcXVpcmVtZW50XG5qZXN0Lm1vY2soJ0BkbmQta2l0L2NvcmUnLCAoKSA9PiAoe1xuICB1c2VEcmFnZ2FibGU6IGplc3QuZm4oKCkgPT4gKHtcbiAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICBsaXN0ZW5lcnM6IHt9LFxuICAgIHNldE5vZGVSZWY6IGplc3QuZm4oKSxcbiAgICBpc0RyYWdnaW5nOiBmYWxzZSxcbiAgfSkpLFxuICB1c2VEcm9wcGFibGU6IGplc3QuZm4oKCkgPT4gKHtcbiAgICBzZXROb2RlUmVmOiBqZXN0LmZuKCksXG4gICAgaXNPdmVyOiBmYWxzZSxcbiAgICBhY3RpdmU6IG51bGwsXG4gIH0pKSxcbn0pKTtcblxuZGVzY3JpYmUoJ2luZGV4JywgKCkgPT4ge1xuICBkZXNjcmliZSgnQ2hvaWNlcycsICgpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICBjaG9pY2VzOiBbY2hvaWNlKCdKdW1wZWQnLCAnMCcpLCBjaG9pY2UoJ0xhdWdoZWQnLCAnMScpLCBjaG9pY2UoJ1Nwb29uJywgJzInKV0sXG4gICAgICBjaG9pY2VQb3NpdGlvbjogJ2JlbG93JyxcbiAgICAgIGluc3RhbmNlSWQ6ICd0ZXN0LWluc3RhbmNlJyxcbiAgICB9O1xuXG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPENob2ljZXMgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0p1bXBlZCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0xhdWdoZWQnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdTcG9vbicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGlzYWJsZWQgcHJvcCBhcyB0cnVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q2hvaWNlcyB7Li4uZGVmYXVsdFByb3BzfSBkaXNhYmxlZD17dHJ1ZX0gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBkdXBsaWNhdGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q2hvaWNlcyB7Li4uZGVmYXVsdFByb3BzfSBkdXBsaWNhdGVzPXt1bmRlZmluZWR9IHZhbHVlPXt7IDA6ICcwJywgMTogJzEnIH19IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggZHVwbGljYXRlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPENob2ljZXMgey4uLmRlZmF1bHRQcm9wc30gZHVwbGljYXRlcz17dHJ1ZX0gdmFsdWU9e3sgMDogJzAnLCAxOiAnMScgfX0gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQ2hvaWNlJywgKCkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgIGNob2ljZTogY2hvaWNlKCdMYWJlbCcsICcxJyksXG4gICAgICBpbnN0YW5jZUlkOiAndGVzdC1pbnN0YW5jZScsXG4gICAgfTtcblxuICAgIGRlc2NyaWJlKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgICBpdCgncmVuZGVycyBjb3JyZWN0bHkgd2l0aCBkZWZhdWx0IHByb3BzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxDaG9pY2Ugey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdMYWJlbCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGRpc2FibGVkIHByb3AgYXMgdHJ1ZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q2hvaWNlIHsuLi5kZWZhdWx0UHJvcHN9IGRpc2FibGVkPXt0cnVlfSAvPik7XG4gICAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUErQixTQUFBRCx3QkFBQU8s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U0FBQSxpQkFBS2pCLFlBQVk7VUFBRW1CLFVBQVUsRUFBRSxJQUFLO1VBQUNFLEtBQUssRUFBRTtZQUFFLENBQUMsRUFBRSxHQUFHO1lBQUUsQ0FBQyxFQUFFO1VBQUk7UUFBRSxFQUFFLENBQUMsQ0FBQztRQUFoR1gsU0FBUyxHQUFBWSxRQUFBLENBQVRaLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFFRmQsUUFBUSxDQUFDLFFBQVEsRUFBRSxZQUFNO0lBQ3ZCLElBQU1DLFlBQVksR0FBRztNQUNuQkMsUUFBUSxFQUFFLEtBQUs7TUFDZkUsTUFBTSxFQUFFLElBQUFBLGFBQU0sRUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO01BQzVCRSxVQUFVLEVBQUU7SUFDZCxDQUFDO0lBRUROLFFBQVEsQ0FBQyxRQUFRLEVBQUUsWUFBTTtNQUN2Qk8sRUFBRSxDQUFDLHNDQUFzQyxFQUFFLFlBQU07UUFDL0MsSUFBQWlCLFFBQUEsR0FBc0IsSUFBQWYsY0FBTSxlQUFDaEQsS0FBQSxDQUFBaUQsYUFBQSxDQUFDN0MsT0FBQSxXQUFNLEVBQUtvQyxZQUFlLENBQUMsQ0FBQztVQUFsRFUsU0FBUyxHQUFBYSxRQUFBLENBQVRiLFNBQVM7UUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztRQUNoREYsTUFBTSxDQUFDRyxjQUFNLENBQUNDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDRixpQkFBaUIsQ0FBQyxDQUFDO01BQ3ZELENBQUMsQ0FBQztNQUVGUCxFQUFFLENBQUMsOENBQThDLEVBQUUsWUFBTTtRQUN2RCxJQUFBa0IsUUFBQSxHQUFzQixJQUFBaEIsY0FBTSxlQUFDaEQsS0FBQSxDQUFBaUQsYUFBQSxDQUFDN0MsT0FBQSxXQUFNLE1BQUFxRCxTQUFBLGlCQUFLakIsWUFBWTtZQUFFQyxRQUFRLEVBQUU7VUFBSyxFQUFFLENBQUMsQ0FBQztVQUFsRVMsU0FBUyxHQUFBYyxRQUFBLENBQVRkLFNBQVM7UUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztNQUNsRCxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
-
var React = _interopRequireWildcard(require("react"));
|
|
7
|
-
var _react2 = require("@testing-library/react");
|
|
8
|
-
var _blank = _interopRequireDefault(require("../blank"));
|
|
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
|
-
// Mock @dnd-kit hooks to avoid DndContext requirement
|
|
11
|
-
jest.mock('@dnd-kit/core', function () {
|
|
12
|
-
return {
|
|
13
|
-
useDraggable: jest.fn(function () {
|
|
14
|
-
return {
|
|
15
|
-
attributes: {},
|
|
16
|
-
listeners: {},
|
|
17
|
-
setNodeRef: jest.fn(),
|
|
18
|
-
transform: null,
|
|
19
|
-
isDragging: false
|
|
20
|
-
};
|
|
21
|
-
}),
|
|
22
|
-
useDroppable: jest.fn(function () {
|
|
23
|
-
return {
|
|
24
|
-
setNodeRef: jest.fn(),
|
|
25
|
-
isOver: false,
|
|
26
|
-
active: null
|
|
27
|
-
};
|
|
28
|
-
})
|
|
29
|
-
};
|
|
30
|
-
});
|
|
31
|
-
jest.mock('@dnd-kit/utilities', function () {
|
|
32
|
-
return {
|
|
33
|
-
CSS: {
|
|
34
|
-
Translate: {
|
|
35
|
-
toString: jest.fn(function () {
|
|
36
|
-
return 'translate3d(0, 0, 0)';
|
|
37
|
-
})
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
|
-
describe('Blank', function () {
|
|
43
|
-
var onChange = jest.fn();
|
|
44
|
-
var defaultProps = {
|
|
45
|
-
disabled: false,
|
|
46
|
-
choice: {
|
|
47
|
-
value: 'Cow'
|
|
48
|
-
},
|
|
49
|
-
isOver: false,
|
|
50
|
-
dragItem: {},
|
|
51
|
-
correct: false,
|
|
52
|
-
onChange: onChange
|
|
53
|
-
};
|
|
54
|
-
beforeEach(function () {
|
|
55
|
-
onChange.mockClear();
|
|
56
|
-
});
|
|
57
|
-
describe('rendering', function () {
|
|
58
|
-
it('renders with default props', function () {
|
|
59
|
-
var _render = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], defaultProps)),
|
|
60
|
-
container = _render.container;
|
|
61
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
62
|
-
});
|
|
63
|
-
it('displays the value when provided', function () {
|
|
64
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], defaultProps));
|
|
65
|
-
expect(_react2.screen.getByText('Cow')).toBeInTheDocument();
|
|
66
|
-
});
|
|
67
|
-
it('renders as disabled when disabled prop is true', function () {
|
|
68
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
69
|
-
disabled: true
|
|
70
|
-
})));
|
|
71
|
-
// Check that delete button is not present when disabled
|
|
72
|
-
expect(_react2.screen.queryByRole('button', {
|
|
73
|
-
name: /delete/i
|
|
74
|
-
})).not.toBeInTheDocument();
|
|
75
|
-
});
|
|
76
|
-
it('renders with dragged item preview', function () {
|
|
77
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
78
|
-
dragItem: {
|
|
79
|
-
choice: {
|
|
80
|
-
value: 'Dog'
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
})));
|
|
84
|
-
// Blank component should render
|
|
85
|
-
expect(_react2.screen.getByText('Cow')).toBeInTheDocument();
|
|
86
|
-
});
|
|
87
|
-
it('shows hover state when isOver is true', function () {
|
|
88
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
89
|
-
dragItem: {
|
|
90
|
-
choice: {
|
|
91
|
-
value: 'Dog'
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
isOver: true
|
|
95
|
-
}))),
|
|
96
|
-
container = _render2.container;
|
|
97
|
-
// Component should have hover styling
|
|
98
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
99
|
-
});
|
|
100
|
-
it('shows correct state when correct is true', function () {
|
|
101
|
-
var _render3 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
102
|
-
correct: true
|
|
103
|
-
}))),
|
|
104
|
-
container = _render3.container;
|
|
105
|
-
// Component should indicate correctness
|
|
106
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
describe('delete functionality', function () {
|
|
110
|
-
it('does not show delete button when disabled', function () {
|
|
111
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
112
|
-
disabled: true
|
|
113
|
-
})));
|
|
114
|
-
expect(_react2.screen.queryByRole('button', {
|
|
115
|
-
name: /delete/i
|
|
116
|
-
})).not.toBeInTheDocument();
|
|
117
|
-
});
|
|
118
|
-
it('does not show delete button when no value is set', function () {
|
|
119
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
120
|
-
choice: undefined
|
|
121
|
-
})));
|
|
122
|
-
expect(_react2.screen.queryByRole('button', {
|
|
123
|
-
name: /delete/i
|
|
124
|
-
})).not.toBeInTheDocument();
|
|
125
|
-
});
|
|
126
|
-
it('shows delete button when value is present and not disabled', function () {
|
|
127
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], defaultProps));
|
|
128
|
-
// If delete button is present, it should be clickable
|
|
129
|
-
var deleteButton = _react2.screen.queryByRole('button');
|
|
130
|
-
if (deleteButton) {
|
|
131
|
-
expect(deleteButton).toBeInTheDocument();
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
describe('dimensions', function () {
|
|
136
|
-
it('renders with custom dimensions when provided', function () {
|
|
137
|
-
var _render4 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
138
|
-
emptyResponseAreaHeight: 100,
|
|
139
|
-
emptyResponseAreaWidth: 200
|
|
140
|
-
}))),
|
|
141
|
-
container = _render4.container;
|
|
142
|
-
var element = container.firstChild;
|
|
143
|
-
expect(element).toBeInTheDocument();
|
|
144
|
-
});
|
|
145
|
-
it('renders with min dimensions by default', function () {
|
|
146
|
-
var _render5 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], defaultProps)),
|
|
147
|
-
container = _render5.container;
|
|
148
|
-
var element = container.firstChild;
|
|
149
|
-
expect(element).toBeInTheDocument();
|
|
150
|
-
// Component should have minimum dimensions applied
|
|
151
|
-
});
|
|
152
|
-
it('handles non-numeric dimension props gracefully', function () {
|
|
153
|
-
var _render6 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
154
|
-
emptyResponseAreaHeight: "non-numeric",
|
|
155
|
-
emptyResponseAreaWidth: "non-numeric"
|
|
156
|
-
}))),
|
|
157
|
-
container = _render6.container;
|
|
158
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
describe('drag and drop', function () {
|
|
162
|
-
it('accepts drag item when not disabled', function () {
|
|
163
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
164
|
-
isOver: true,
|
|
165
|
-
dragItem: {
|
|
166
|
-
choice: {
|
|
167
|
-
value: 'Dog'
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
})));
|
|
171
|
-
expect(_react2.screen.getByText('Cow')).toBeInTheDocument();
|
|
172
|
-
});
|
|
173
|
-
it('shows drag preview when dragging over', function () {
|
|
174
|
-
var _render7 = (0, _react2.render)(/*#__PURE__*/React.createElement(_blank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
175
|
-
isOver: true,
|
|
176
|
-
dragItem: {
|
|
177
|
-
choice: {
|
|
178
|
-
value: 'Dog'
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}))),
|
|
182
|
-
container = _render7.container;
|
|
183
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
184
|
-
// Should show visual feedback for drag over
|
|
185
|
-
});
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfYmxhbmsiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsInVzZURyYWdnYWJsZSIsImZuIiwiYXR0cmlidXRlcyIsImxpc3RlbmVycyIsInNldE5vZGVSZWYiLCJ0cmFuc2Zvcm0iLCJpc0RyYWdnaW5nIiwidXNlRHJvcHBhYmxlIiwiaXNPdmVyIiwiYWN0aXZlIiwiQ1NTIiwiVHJhbnNsYXRlIiwidG9TdHJpbmciLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiZGVmYXVsdFByb3BzIiwiZGlzYWJsZWQiLCJjaG9pY2UiLCJ2YWx1ZSIsImRyYWdJdGVtIiwiY29ycmVjdCIsImJlZm9yZUVhY2giLCJtb2NrQ2xlYXIiLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50Iiwic2NyZWVuIiwiZ2V0QnlUZXh0IiwiX2V4dGVuZHMyIiwicXVlcnlCeVJvbGUiLCJuYW1lIiwibm90IiwiX3JlbmRlcjIiLCJfcmVuZGVyMyIsInVuZGVmaW5lZCIsImRlbGV0ZUJ1dHRvbiIsIl9yZW5kZXI0IiwiZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQiLCJlbXB0eVJlc3BvbnNlQXJlYVdpZHRoIiwiZWxlbWVudCIsIl9yZW5kZXI1IiwiX3JlbmRlcjYiLCJfcmVuZGVyNyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL19fdGVzdHNfXy9ibGFuay50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciwgc2NyZWVuIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgQmxhbmsgZnJvbSAnLi4vYmxhbmsnO1xuXG4vLyBNb2NrIEBkbmQta2l0IGhvb2tzIHRvIGF2b2lkIERuZENvbnRleHQgcmVxdWlyZW1lbnRcbmplc3QubW9jaygnQGRuZC1raXQvY29yZScsICgpID0+ICh7XG4gIHVzZURyYWdnYWJsZTogamVzdC5mbigoKSA9PiAoe1xuICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgIGxpc3RlbmVyczoge30sXG4gICAgc2V0Tm9kZVJlZjogamVzdC5mbigpLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICBpc0RyYWdnaW5nOiBmYWxzZSxcbiAgfSkpLFxuICB1c2VEcm9wcGFibGU6IGplc3QuZm4oKCkgPT4gKHtcbiAgICBzZXROb2RlUmVmOiBqZXN0LmZuKCksXG4gICAgaXNPdmVyOiBmYWxzZSxcbiAgICBhY3RpdmU6IG51bGwsXG4gIH0pKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC91dGlsaXRpZXMnLCAoKSA9PiAoe1xuICBDU1M6IHtcbiAgICBUcmFuc2xhdGU6IHtcbiAgICAgIHRvU3RyaW5nOiBqZXN0LmZuKCgpID0+ICd0cmFuc2xhdGUzZCgwLCAwLCAwKScpLFxuICAgIH0sXG4gIH0sXG59KSk7XG5cbmRlc2NyaWJlKCdCbGFuaycsICgpID0+IHtcbiAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgY2hvaWNlOiB7IHZhbHVlOiAnQ293JyB9LFxuICAgIGlzT3ZlcjogZmFsc2UsXG4gICAgZHJhZ0l0ZW06IHt9LFxuICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgIG9uQ2hhbmdlLFxuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlLm1vY2tDbGVhcigpO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkaXNwbGF5cyB0aGUgdmFsdWUgd2hlbiBwcm92aWRlZCcsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0NvdycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgYXMgZGlzYWJsZWQgd2hlbiBkaXNhYmxlZCBwcm9wIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGRpc2FibGVkPXt0cnVlfSAvPik7XG4gICAgICAvLyBDaGVjayB0aGF0IGRlbGV0ZSBidXR0b24gaXMgbm90IHByZXNlbnQgd2hlbiBkaXNhYmxlZFxuICAgICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAvZGVsZXRlL2kgfSkpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkcmFnZ2VkIGl0ZW0gcHJldmlldycsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gZHJhZ0l0ZW09e3sgY2hvaWNlOiB7IHZhbHVlOiAnRG9nJyB9IH19IC8+KTtcbiAgICAgIC8vIEJsYW5rIGNvbXBvbmVudCBzaG91bGQgcmVuZGVyXG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQ293JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvd3MgaG92ZXIgc3RhdGUgd2hlbiBpc092ZXIgaXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGRyYWdJdGVtPXt7IGNob2ljZTogeyB2YWx1ZTogJ0RvZycgfSB9fSBpc092ZXI9e3RydWV9IC8+KTtcbiAgICAgIC8vIENvbXBvbmVudCBzaG91bGQgaGF2ZSBob3ZlciBzdHlsaW5nXG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvd3MgY29ycmVjdCBzdGF0ZSB3aGVuIGNvcnJlY3QgaXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGNvcnJlY3Q9e3RydWV9IC8+KTtcbiAgICAgIC8vIENvbXBvbmVudCBzaG91bGQgaW5kaWNhdGUgY29ycmVjdG5lc3NcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RlbGV0ZSBmdW5jdGlvbmFsaXR5JywgKCkgPT4ge1xuICAgIGl0KCdkb2VzIG5vdCBzaG93IGRlbGV0ZSBidXR0b24gd2hlbiBkaXNhYmxlZCcsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gZGlzYWJsZWQ9e3RydWV9IC8+KTtcbiAgICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogL2RlbGV0ZS9pIH0pKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCBzaG93IGRlbGV0ZSBidXR0b24gd2hlbiBubyB2YWx1ZSBpcyBzZXQnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGNob2ljZT17dW5kZWZpbmVkfSAvPik7XG4gICAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6IC9kZWxldGUvaSB9KSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvd3MgZGVsZXRlIGJ1dHRvbiB3aGVuIHZhbHVlIGlzIHByZXNlbnQgYW5kIG5vdCBkaXNhYmxlZCcsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgLy8gSWYgZGVsZXRlIGJ1dHRvbiBpcyBwcmVzZW50LCBpdCBzaG91bGQgYmUgY2xpY2thYmxlXG4gICAgICBjb25zdCBkZWxldGVCdXR0b24gPSBzY3JlZW4ucXVlcnlCeVJvbGUoJ2J1dHRvbicpO1xuICAgICAgaWYgKGRlbGV0ZUJ1dHRvbikge1xuICAgICAgICBleHBlY3QoZGVsZXRlQnV0dG9uKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZGltZW5zaW9ucycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRoIGN1c3RvbSBkaW1lbnNpb25zIHdoZW4gcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKFxuICAgICAgICA8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gZW1wdHlSZXNwb25zZUFyZWFIZWlnaHQ9ezEwMH0gZW1wdHlSZXNwb25zZUFyZWFXaWR0aD17MjAwfSAvPixcbiAgICAgICk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICBleHBlY3QoZWxlbWVudCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggbWluIGRpbWVuc2lvbnMgYnkgZGVmYXVsdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgICAgIGV4cGVjdChlbGVtZW50KS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgLy8gQ29tcG9uZW50IHNob3VsZCBoYXZlIG1pbmltdW0gZGltZW5zaW9ucyBhcHBsaWVkXG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBub24tbnVtZXJpYyBkaW1lbnNpb24gcHJvcHMgZ3JhY2VmdWxseScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBlbXB0eVJlc3BvbnNlQXJlYUhlaWdodD1cIm5vbi1udW1lcmljXCIgZW1wdHlSZXNwb25zZUFyZWFXaWR0aD1cIm5vbi1udW1lcmljXCIgLz4sXG4gICAgICApO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZHJhZyBhbmQgZHJvcCcsICgpID0+IHtcbiAgICBpdCgnYWNjZXB0cyBkcmFnIGl0ZW0gd2hlbiBub3QgZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoPEJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IGlzT3Zlcj17dHJ1ZX0gZHJhZ0l0ZW09e3sgY2hvaWNlOiB7IHZhbHVlOiAnRG9nJyB9IH19IC8+KTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDb3cnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG93cyBkcmFnIHByZXZpZXcgd2hlbiBkcmFnZ2luZyBvdmVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Qmxhbmsgey4uLmRlZmF1bHRQcm9wc30gaXNPdmVyPXt0cnVlfSBkcmFnSXRlbT17eyBjaG9pY2U6IHsgdmFsdWU6ICdEb2cnIH0gfX0gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgLy8gU2hvdWxkIHNob3cgdmlzdWFsIGZlZWRiYWNrIGZvciBkcmFnIG92ZXJcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFBNkIsU0FBQUQsd0JBQUFLLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFQLHVCQUFBLFlBQUFBLHdCQUFBSyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBTSxFQUFBLElBQUFkLENBQUEsZ0JBQUFjLEVBQUEsT0FBQUMsY0FB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QUM7SUFFRlAsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLFlBQU07TUFDekQsSUFBQXVCLFFBQUEsR0FBc0IsSUFBQXJCLGNBQU0sZUFDMUJyRCxLQUFBLENBQUFzRCxhQUFBLENBQUNsRCxNQUFBLFdBQUssTUFBQXlELFNBQUEsaUJBQUtsQixZQUFZO1VBQUUyQix1QkFBdUIsRUFBQyxhQUFhO1VBQUNDLHNCQUFzQixFQUFDO1FBQWEsRUFBRSxDQUN2RyxDQUFDO1FBRk9oQixTQUFTLEdBQUFtQixRQUFBLENBQVRuQixTQUFTO01BR2pCQyxNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZqQixRQUFRLENBQUMsZUFBZSxFQUFFLFlBQU07SUFDOUJVLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxZQUFNO01BQzlDLElBQUFFLGNBQU0sZUFBQ3JELEtBQUEsQ0FBQXNELGFBQUEsQ0FBQ2xELE1BQUEsV0FBSyxNQUFBeUQsU0FBQSxpQkFBS2xCLFlBQVk7UUFBRVAsTUFBTSxFQUFFLElBQUs7UUFBQ1csUUFBUSxFQUFFO1VBQUVGLE1BQU0sRUFBRTtZQUFFQyxLQUFLLEVBQUU7VUFBTTtRQUFFO01BQUUsRUFBRSxDQUFDLENBQUM7TUFDekZVLE1BQU0sQ0FBQ0csY0FBTSxDQUFDQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRlAsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLFlBQU07TUFDaEQsSUFBQXdCLFFBQUEsR0FBc0IsSUFBQXRCLGNBQU0sZUFBQ3JELEtBQUEsQ0FBQXNELGFBQUEsQ0FBQ2xELE1BQUEsV0FBSyxNQUFBeUQsU0FBQSxpQkFBS2xCLFlBQVk7VUFBRVAsTUFBTSxFQUFFLElBQUs7VUFBQ1csUUFBUSxFQUFFO1lBQUVGLE1BQU0sRUFBRTtjQUFFQyxLQUFLLEVBQUU7WUFBTTtVQUFFO1FBQUUsRUFBRSxDQUFDLENBQUM7UUFBdkdTLFNBQVMsR0FBQW9CLFFBQUEsQ0FBVHBCLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztNQUNoRDtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
-
var React = _interopRequireWildcard(require("react"));
|
|
9
|
-
var _react2 = require("@testing-library/react");
|
|
10
|
-
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
11
|
-
var _correctInput = _interopRequireDefault(require("../correct-input"));
|
|
12
|
-
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); }
|
|
13
|
-
describe('CorrectInput', function () {
|
|
14
|
-
var onChange = jest.fn();
|
|
15
|
-
var defaultProps = {
|
|
16
|
-
disabled: false,
|
|
17
|
-
correct: false,
|
|
18
|
-
variant: 'outlined',
|
|
19
|
-
value: 'Cow',
|
|
20
|
-
onChange: onChange
|
|
21
|
-
};
|
|
22
|
-
beforeEach(function () {
|
|
23
|
-
onChange.mockClear();
|
|
24
|
-
});
|
|
25
|
-
describe('rendering', function () {
|
|
26
|
-
it('renders input with default props', function () {
|
|
27
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_correctInput["default"], defaultProps));
|
|
28
|
-
var input = _react2.screen.getByRole('textbox');
|
|
29
|
-
expect(input).toBeInTheDocument();
|
|
30
|
-
expect(input).toHaveValue('Cow');
|
|
31
|
-
});
|
|
32
|
-
it('renders as disabled when disabled prop is true', function () {
|
|
33
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_correctInput["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
34
|
-
disabled: true
|
|
35
|
-
})));
|
|
36
|
-
var input = _react2.screen.getByRole('textbox');
|
|
37
|
-
expect(input).toBeDisabled();
|
|
38
|
-
});
|
|
39
|
-
it('renders with correct state as false', function () {
|
|
40
|
-
var _render = (0, _react2.render)(/*#__PURE__*/React.createElement(_correctInput["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
41
|
-
correct: false
|
|
42
|
-
}))),
|
|
43
|
-
container = _render.container;
|
|
44
|
-
var input = _react2.screen.getByRole('textbox');
|
|
45
|
-
expect(input).toBeInTheDocument();
|
|
46
|
-
});
|
|
47
|
-
it('renders with correct state as true', function () {
|
|
48
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/React.createElement(_correctInput["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
49
|
-
correct: true
|
|
50
|
-
}))),
|
|
51
|
-
container = _render2.container;
|
|
52
|
-
var input = _react2.screen.getByRole('textbox');
|
|
53
|
-
expect(input).toBeInTheDocument();
|
|
54
|
-
// Should show visual indication of correctness
|
|
55
|
-
});
|
|
56
|
-
it('renders with outlined variant', function () {
|
|
57
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_correctInput["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
58
|
-
variant: "outlined"
|
|
59
|
-
})));
|
|
60
|
-
var input = _react2.screen.getByRole('textbox');
|
|
61
|
-
expect(input).toBeInTheDocument();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
describe('user interactions', function () {
|
|
65
|
-
it('calls onChange when user types', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
66
|
-
var user, input;
|
|
67
|
-
return _regenerator["default"].wrap(function (_context) {
|
|
68
|
-
while (1) switch (_context.prev = _context.next) {
|
|
69
|
-
case 0:
|
|
70
|
-
user = _userEvent["default"].setup();
|
|
71
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_correctInput["default"], defaultProps));
|
|
72
|
-
input = _react2.screen.getByRole('textbox');
|
|
73
|
-
_context.next = 1;
|
|
74
|
-
return user.clear(input);
|
|
75
|
-
case 1:
|
|
76
|
-
_context.next = 2;
|
|
77
|
-
return user.type(input, '1');
|
|
78
|
-
case 2:
|
|
79
|
-
expect(onChange).toHaveBeenCalled();
|
|
80
|
-
case 3:
|
|
81
|
-
case "end":
|
|
82
|
-
return _context.stop();
|
|
83
|
-
}
|
|
84
|
-
}, _callee);
|
|
85
|
-
})));
|
|
86
|
-
it('calls onChange with event object', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
87
|
-
var user, input, lastCall;
|
|
88
|
-
return _regenerator["default"].wrap(function (_context2) {
|
|
89
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
90
|
-
case 0:
|
|
91
|
-
user = _userEvent["default"].setup();
|
|
92
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_correctInput["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
93
|
-
value: ""
|
|
94
|
-
})));
|
|
95
|
-
input = _react2.screen.getByRole('textbox');
|
|
96
|
-
_context2.next = 1;
|
|
97
|
-
return user.type(input, 'test');
|
|
98
|
-
case 1:
|
|
99
|
-
expect(onChange).toHaveBeenCalled();
|
|
100
|
-
// Check that onChange receives an event-like object
|
|
101
|
-
lastCall = onChange.mock.calls[onChange.mock.calls.length - 1][0];
|
|
102
|
-
expect(lastCall).toHaveProperty('target');
|
|
103
|
-
case 2:
|
|
104
|
-
case "end":
|
|
105
|
-
return _context2.stop();
|
|
106
|
-
}
|
|
107
|
-
}, _callee2);
|
|
108
|
-
})));
|
|
109
|
-
it('updates value when user changes input', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
110
|
-
var user, input;
|
|
111
|
-
return _regenerator["default"].wrap(function (_context3) {
|
|
112
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
113
|
-
case 0:
|
|
114
|
-
user = _userEvent["default"].setup();
|
|
115
|
-
(0, _react2.render)(/*#__PURE__*/React.createElement(_correctInput["default"], defaultProps));
|
|
116
|
-
input = _react2.screen.getByRole('textbox');
|
|
117
|
-
_context3.next = 1;
|
|
118
|
-
return user.clear(input);
|
|
119
|
-
case 1:
|
|
120
|
-
_context3.next = 2;
|
|
121
|
-
return user.type(input, 'Dog');
|
|
122
|
-
case 2:
|
|
123
|
-
expect(onChange).toHaveBeenCalled();
|
|
124
|
-
case 3:
|
|
125
|
-
case "end":
|
|
126
|
-
return _context3.stop();
|
|
127
|
-
}
|
|
128
|
-
}, _callee3);
|
|
129
|
-
})));
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlckV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb3JyZWN0SW5wdXQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJkZWZhdWx0UHJvcHMiLCJkaXNhYmxlZCIsImNvcnJlY3QiLCJ2YXJpYW50IiwidmFsdWUiLCJiZWZvcmVFYWNoIiwibW9ja0NsZWFyIiwiaXQiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiaW5wdXQiLCJzY3JlZW4iLCJnZXRCeVJvbGUiLCJleHBlY3QiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInRvSGF2ZVZhbHVlIiwiX2V4dGVuZHMyIiwidG9CZURpc2FibGVkIiwiX3JlbmRlciIsImNvbnRhaW5lciIsIl9yZW5kZXIyIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ1c2VyIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImNsZWFyIiwidHlwZSIsInRvSGF2ZUJlZW5DYWxsZWQiLCJzdG9wIiwiX2NhbGxlZTIiLCJsYXN0Q2FsbCIsIl9jb250ZXh0MiIsIm1vY2siLCJjYWxscyIsImxlbmd0aCIsInRvSGF2ZVByb3BlcnR5IiwiX2NhbGxlZTMiLCJfY29udGV4dDMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9fX3Rlc3RzX18vY29ycmVjdC1pbnB1dC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciwgc2NyZWVuIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgdXNlckV2ZW50IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvdXNlci1ldmVudCc7XG5pbXBvcnQgQ29ycmVjdElucHV0IGZyb20gJy4uL2NvcnJlY3QtaW5wdXQnO1xuXG5kZXNjcmliZSgnQ29ycmVjdElucHV0JywgKCkgPT4ge1xuICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBjb3JyZWN0OiBmYWxzZSxcbiAgICB2YXJpYW50OiAnb3V0bGluZWQnLFxuICAgIHZhbHVlOiAnQ293JyxcbiAgICBvbkNoYW5nZSxcbiAgfTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZS5tb2NrQ2xlYXIoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBpbnB1dCB3aXRoIGRlZmF1bHQgcHJvcHMnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoPENvcnJlY3RJbnB1dCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBjb25zdCBpbnB1dCA9IHNjcmVlbi5nZXRCeVJvbGUoJ3RleHRib3gnKTtcbiAgICAgIGV4cGVjdChpbnB1dCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChpbnB1dCkudG9IYXZlVmFsdWUoJ0NvdycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgYXMgZGlzYWJsZWQgd2hlbiBkaXNhYmxlZCBwcm9wIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoPENvcnJlY3RJbnB1dCB7Li4uZGVmYXVsdFByb3BzfSBkaXNhYmxlZD17dHJ1ZX0gLz4pO1xuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlSb2xlKCd0ZXh0Ym94Jyk7XG4gICAgICBleHBlY3QoaW5wdXQpLnRvQmVEaXNhYmxlZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBjb3JyZWN0IHN0YXRlIGFzIGZhbHNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q29ycmVjdElucHV0IHsuLi5kZWZhdWx0UHJvcHN9IGNvcnJlY3Q9e2ZhbHNlfSAvPik7XG4gICAgICBjb25zdCBpbnB1dCA9IHNjcmVlbi5nZXRCeVJvbGUoJ3RleHRib3gnKTtcbiAgICAgIGV4cGVjdChpbnB1dCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggY29ycmVjdCBzdGF0ZSBhcyB0cnVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q29ycmVjdElucHV0IHsuLi5kZWZhdWx0UHJvcHN9IGNvcnJlY3Q9e3RydWV9IC8+KTtcbiAgICAgIGNvbnN0IGlucHV0ID0gc2NyZWVuLmdldEJ5Um9sZSgndGV4dGJveCcpO1xuICAgICAgZXhwZWN0KGlucHV0KS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgLy8gU2hvdWxkIHNob3cgdmlzdWFsIGluZGljYXRpb24gb2YgY29ycmVjdG5lc3NcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggb3V0bGluZWQgdmFyaWFudCcsICgpID0+IHtcbiAgICAgIHJlbmRlcig8Q29ycmVjdElucHV0IHsuLi5kZWZhdWx0UHJvcHN9IHZhcmlhbnQ9XCJvdXRsaW5lZFwiIC8+KTtcbiAgICAgIGNvbnN0IGlucHV0ID0gc2NyZWVuLmdldEJ5Um9sZSgndGV4dGJveCcpO1xuICAgICAgZXhwZWN0KGlucHV0KS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndXNlciBpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdoZW4gdXNlciB0eXBlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlcig8Q29ycmVjdElucHV0IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcblxuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlSb2xlKCd0ZXh0Ym94Jyk7XG4gICAgICBhd2FpdCB1c2VyLmNsZWFyKGlucHV0KTtcbiAgICAgIGF3YWl0IHVzZXIudHlwZShpbnB1dCwgJzEnKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FsbHMgb25DaGFuZ2Ugd2l0aCBldmVudCBvYmplY3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXIoPENvcnJlY3RJbnB1dCB7Li4uZGVmYXVsdFByb3BzfSB2YWx1ZT1cIlwiIC8+KTtcblxuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlSb2xlKCd0ZXh0Ym94Jyk7XG4gICAgICBhd2FpdCB1c2VyLnR5cGUoaW5wdXQsICd0ZXN0Jyk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgLy8gQ2hlY2sgdGhhdCBvbkNoYW5nZSByZWNlaXZlcyBhbiBldmVudC1saWtlIG9iamVjdFxuICAgICAgY29uc3QgbGFzdENhbGwgPSBvbkNoYW5nZS5tb2NrLmNhbGxzW29uQ2hhbmdlLm1vY2suY2FsbHMubGVuZ3RoIC0gMV1bMF07XG4gICAgICBleHBlY3QobGFzdENhbGwpLnRvSGF2ZVByb3BlcnR5KCd0YXJnZXQnKTtcbiAgICB9KTtcblxuICAgIGl0KCd1cGRhdGVzIHZhbHVlIHdoZW4gdXNlciBjaGFuZ2VzIGlucHV0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJFdmVudC5zZXR1cCgpO1xuICAgICAgcmVuZGVyKDxDb3JyZWN0SW5wdXQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuXG4gICAgICBjb25zdCBpbnB1dCA9IHNjcmVlbi5nZXRCeVJvbGUoJ3RleHRib3gnKTtcbiAgICAgIGF3YWl0IHVzZXIuY2xlYXIoaW5wdXQpO1xuICAgICAgYXdhaXQgdXNlci50eXBlKGlucHV0LCAnRG9nJyk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQTRDLFNBQUFELHdCQUFBTSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBUix1QkFBQSxZQUFBQSx3QkFBQU0sQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsY0FBQU0sRUFBQSxJQUFB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
|