@pie-lib/mask-markup 3.1.6-beta.6 → 3.1.6-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,132 @@
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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
@@ -0,0 +1,202 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
11
+ var _utils = require("../../__tests__/utils");
12
+ var _dropdown = _interopRequireDefault(require("../dropdown"));
13
+ 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); }
14
+ describe('Dropdown', function () {
15
+ var onChange = jest.fn();
16
+ var defaultProps = {
17
+ onChange: onChange,
18
+ id: '1',
19
+ correct: false,
20
+ disabled: false,
21
+ value: 'Jumped',
22
+ choices: [(0, _utils.choice)('Jumped'), (0, _utils.choice)('Laughed'), (0, _utils.choice)('Smiled')]
23
+ };
24
+ beforeEach(function () {
25
+ onChange.mockClear();
26
+ });
27
+ describe('rendering', function () {
28
+ it('renders dropdown with default props', function () {
29
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], defaultProps));
30
+ var button = _react2.screen.getByRole('combobox');
31
+ expect(button).toBeInTheDocument();
32
+ // Button displays the selected value
33
+ expect(button).toHaveTextContent('Jumped');
34
+ });
35
+ it('renders with all choices as options when opened', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
36
+ var user, button, options;
37
+ return _regenerator["default"].wrap(function (_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ user = _userEvent["default"].setup();
41
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], defaultProps));
42
+ button = _react2.screen.getByRole('combobox');
43
+ _context.next = 1;
44
+ return user.click(button);
45
+ case 1:
46
+ // Options should now be visible - find them by role
47
+ options = _react2.screen.getAllByRole('option');
48
+ expect(options).toHaveLength(3);
49
+ // Verify the text content of options using specific elements
50
+ expect(options[0]).toHaveTextContent('Jumped');
51
+ expect(options[1]).toHaveTextContent('Laughed');
52
+ expect(options[2]).toHaveTextContent('Smiled');
53
+ case 2:
54
+ case "end":
55
+ return _context.stop();
56
+ }
57
+ }, _callee);
58
+ })));
59
+ it('focuses the selected option when the menu opens', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
60
+ var user, button;
61
+ return _regenerator["default"].wrap(function (_context2) {
62
+ while (1) switch (_context2.prev = _context2.next) {
63
+ case 0:
64
+ user = _userEvent["default"].setup();
65
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], defaultProps));
66
+ button = _react2.screen.getByRole('combobox');
67
+ _context2.next = 1;
68
+ return user.click(button);
69
+ case 1:
70
+ _context2.next = 2;
71
+ return (0, _react2.waitFor)(function () {
72
+ expect(document.getElementById('dropdown-option-1-0')).toHaveFocus();
73
+ });
74
+ case 2:
75
+ expect(button).toHaveAttribute('aria-activedescendant', 'dropdown-option-1-0');
76
+ case 3:
77
+ case "end":
78
+ return _context2.stop();
79
+ }
80
+ }, _callee2);
81
+ })));
82
+ it('focuses a non-first selected option when the menu opens', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
83
+ var user, button;
84
+ return _regenerator["default"].wrap(function (_context3) {
85
+ while (1) switch (_context3.prev = _context3.next) {
86
+ case 0:
87
+ user = _userEvent["default"].setup();
88
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], (0, _extends2["default"])({}, defaultProps, {
89
+ value: "Laughed"
90
+ })));
91
+ button = _react2.screen.getByRole('combobox');
92
+ _context3.next = 1;
93
+ return user.click(button);
94
+ case 1:
95
+ _context3.next = 2;
96
+ return (0, _react2.waitFor)(function () {
97
+ expect(document.getElementById('dropdown-option-1-1')).toHaveFocus();
98
+ });
99
+ case 2:
100
+ expect(button).toHaveAttribute('aria-activedescendant', 'dropdown-option-1-1');
101
+ case 3:
102
+ case "end":
103
+ return _context3.stop();
104
+ }
105
+ }, _callee3);
106
+ })));
107
+ it('does not highlight an option when no value is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
108
+ var user, button;
109
+ return _regenerator["default"].wrap(function (_context4) {
110
+ while (1) switch (_context4.prev = _context4.next) {
111
+ case 0:
112
+ user = _userEvent["default"].setup();
113
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], (0, _extends2["default"])({}, defaultProps, {
114
+ value: undefined
115
+ })));
116
+ button = _react2.screen.getByRole('combobox');
117
+ _context4.next = 1;
118
+ return user.click(button);
119
+ case 1:
120
+ expect(button).not.toHaveAttribute('aria-activedescendant');
121
+ case 2:
122
+ case "end":
123
+ return _context4.stop();
124
+ }
125
+ }, _callee4);
126
+ })));
127
+ it('renders as disabled when disabled prop is true', function () {
128
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], (0, _extends2["default"])({}, defaultProps, {
129
+ disabled: true
130
+ })));
131
+ var button = _react2.screen.getByRole('combobox');
132
+ expect(button).toBeDisabled();
133
+ });
134
+ it('shows correct state when correct is true', function () {
135
+ var _render = (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], (0, _extends2["default"])({}, defaultProps, {
136
+ correct: true
137
+ }))),
138
+ container = _render.container;
139
+ var button = _react2.screen.getByRole('combobox');
140
+ expect(button).toBeInTheDocument();
141
+ });
142
+ });
143
+ describe('user interactions', function () {
144
+ it('calls onChange when user selects a different option', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
145
+ var user, button, options, laughedOption;
146
+ return _regenerator["default"].wrap(function (_context5) {
147
+ while (1) switch (_context5.prev = _context5.next) {
148
+ case 0:
149
+ user = _userEvent["default"].setup();
150
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], defaultProps));
151
+
152
+ // Click button to open menu
153
+ button = _react2.screen.getByRole('combobox');
154
+ _context5.next = 1;
155
+ return user.click(button);
156
+ case 1:
157
+ // Find the option by getting all options and selecting the one with "Laughed" text
158
+ options = _react2.screen.getAllByRole('option');
159
+ laughedOption = options.find(function (opt) {
160
+ return opt.textContent.includes('Laughed');
161
+ });
162
+ _context5.next = 2;
163
+ return user.click(laughedOption);
164
+ case 2:
165
+ expect(onChange).toHaveBeenCalledWith('1', 'Laughed');
166
+ case 3:
167
+ case "end":
168
+ return _context5.stop();
169
+ }
170
+ }, _callee5);
171
+ })));
172
+ it('calls onChange with correct value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
173
+ var user, button, options, smiledOption;
174
+ return _regenerator["default"].wrap(function (_context6) {
175
+ while (1) switch (_context6.prev = _context6.next) {
176
+ case 0:
177
+ user = _userEvent["default"].setup();
178
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_dropdown["default"], defaultProps));
179
+
180
+ // Click button to open menu
181
+ button = _react2.screen.getByRole('combobox');
182
+ _context6.next = 1;
183
+ return user.click(button);
184
+ case 1:
185
+ // Find the option by getting all options and selecting the one with "Smiled" text
186
+ options = _react2.screen.getAllByRole('option');
187
+ smiledOption = options.find(function (opt) {
188
+ return opt.textContent.includes('Smiled');
189
+ });
190
+ _context6.next = 2;
191
+ return user.click(smiledOption);
192
+ case 2:
193
+ expect(onChange).toHaveBeenCalledWith('1', 'Smiled');
194
+ case 3:
195
+ case "end":
196
+ return _context6.stop();
197
+ }
198
+ }, _callee6);
199
+ })));
200
+ });
201
+ });
202
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlckV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91dGlscyIsIl9kcm9wZG93biIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzY3JpYmUiLCJvbkNoYW5nZSIsImplc3QiLCJmbiIsImRlZmF1bHRQcm9wcyIsImlkIiwiY29ycmVjdCIsImRpc2FibGVkIiwidmFsdWUiLCJjaG9pY2VzIiwiY2hvaWNlIiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsIml0IiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImJ1dHRvbiIsInNjcmVlbiIsImdldEJ5Um9sZSIsImV4cGVjdCIsInRvQmVJblRoZURvY3VtZW50IiwidG9IYXZlVGV4dENvbnRlbnQiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInVzZXIiLCJvcHRpb25zIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImNsaWNrIiwiZ2V0QWxsQnlSb2xlIiwidG9IYXZlTGVuZ3RoIiwic3RvcCIsIl9jYWxsZWUyIiwiX2NvbnRleHQyIiwid2FpdEZvciIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0b0hhdmVGb2N1cyIsInRvSGF2ZUF0dHJpYnV0ZSIsIl9jYWxsZWUzIiwiX2NvbnRleHQzIiwiX2V4dGVuZHMyIiwiX2NhbGxlZTQiLCJfY29udGV4dDQiLCJ1bmRlZmluZWQiLCJub3QiLCJ0b0JlRGlzYWJsZWQiLCJfcmVuZGVyIiwiY29udGFpbmVyIiwiX2NhbGxlZTUiLCJsYXVnaGVkT3B0aW9uIiwiX2NvbnRleHQ1IiwiZmluZCIsIm9wdCIsInRleHRDb250ZW50IiwiaW5jbHVkZXMiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsIl9jYWxsZWU2Iiwic21pbGVkT3B0aW9uIiwiX2NvbnRleHQ2Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL2Ryb3Bkb3duLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyLCBzY3JlZW4sIHdhaXRGb3IgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB1c2VyRXZlbnQgZnJvbSAnQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50JztcbmltcG9ydCB7IGNob2ljZSB9IGZyb20gJy4uLy4uL19fdGVzdHNfXy91dGlscyc7XG5pbXBvcnQgRHJvcGRvd24gZnJvbSAnLi4vZHJvcGRvd24nO1xuXG5kZXNjcmliZSgnRHJvcGRvd24nLCAoKSA9PiB7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgb25DaGFuZ2UsXG4gICAgaWQ6ICcxJyxcbiAgICBjb3JyZWN0OiBmYWxzZSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgdmFsdWU6ICdKdW1wZWQnLFxuICAgIGNob2ljZXM6IFtjaG9pY2UoJ0p1bXBlZCcpLCBjaG9pY2UoJ0xhdWdoZWQnKSwgY2hvaWNlKCdTbWlsZWQnKV0sXG4gIH07XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UubW9ja0NsZWFyKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgZHJvcGRvd24gd2l0aCBkZWZhdWx0IHByb3BzJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxEcm9wZG93biB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBjb25zdCBidXR0b24gPSBzY3JlZW4uZ2V0QnlSb2xlKCdjb21ib2JveCcpO1xuICAgICAgZXhwZWN0KGJ1dHRvbikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIC8vIEJ1dHRvbiBkaXNwbGF5cyB0aGUgc2VsZWN0ZWQgdmFsdWVcbiAgICAgIGV4cGVjdChidXR0b24pLnRvSGF2ZVRleHRDb250ZW50KCdKdW1wZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggYWxsIGNob2ljZXMgYXMgb3B0aW9ucyB3aGVuIG9wZW5lZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlcig8RHJvcGRvd24gey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuXG4gICAgICBjb25zdCBidXR0b24gPSBzY3JlZW4uZ2V0QnlSb2xlKCdjb21ib2JveCcpO1xuICAgICAgYXdhaXQgdXNlci5jbGljayhidXR0b24pO1xuXG4gICAgICAvLyBPcHRpb25zIHNob3VsZCBub3cgYmUgdmlzaWJsZSAtIGZpbmQgdGhlbSBieSByb2xlXG4gICAgICBjb25zdCBvcHRpb25zID0gc2NyZWVuLmdldEFsbEJ5Um9sZSgnb3B0aW9uJyk7XG4gICAgICBleHBlY3Qob3B0aW9ucykudG9IYXZlTGVuZ3RoKDMpO1xuICAgICAgLy8gVmVyaWZ5IHRoZSB0ZXh0IGNvbnRlbnQgb2Ygb3B0aW9ucyB1c2luZyBzcGVjaWZpYyBlbGVtZW50c1xuICAgICAgZXhwZWN0KG9wdGlvbnNbMF0pLnRvSGF2ZVRleHRDb250ZW50KCdKdW1wZWQnKTtcbiAgICAgIGV4cGVjdChvcHRpb25zWzFdKS50b0hhdmVUZXh0Q29udGVudCgnTGF1Z2hlZCcpO1xuICAgICAgZXhwZWN0KG9wdGlvbnNbMl0pLnRvSGF2ZVRleHRDb250ZW50KCdTbWlsZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdmb2N1c2VzIHRoZSBzZWxlY3RlZCBvcHRpb24gd2hlbiB0aGUgbWVudSBvcGVucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlcig8RHJvcGRvd24gey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuXG4gICAgICBjb25zdCBidXR0b24gPSBzY3JlZW4uZ2V0QnlSb2xlKCdjb21ib2JveCcpO1xuICAgICAgYXdhaXQgdXNlci5jbGljayhidXR0b24pO1xuXG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgZXhwZWN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcm9wZG93bi1vcHRpb24tMS0wJykpLnRvSGF2ZUZvY3VzKCk7XG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChidXR0b24pLnRvSGF2ZUF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgJ2Ryb3Bkb3duLW9wdGlvbi0xLTAnKTtcbiAgICB9KTtcblxuICAgIGl0KCdmb2N1c2VzIGEgbm9uLWZpcnN0IHNlbGVjdGVkIG9wdGlvbiB3aGVuIHRoZSBtZW51IG9wZW5zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJFdmVudC5zZXR1cCgpO1xuICAgICAgcmVuZGVyKDxEcm9wZG93biB7Li4uZGVmYXVsdFByb3BzfSB2YWx1ZT1cIkxhdWdoZWRcIiAvPik7XG5cbiAgICAgIGNvbnN0IGJ1dHRvbiA9IHNjcmVlbi5nZXRCeVJvbGUoJ2NvbWJvYm94Jyk7XG4gICAgICBhd2FpdCB1c2VyLmNsaWNrKGJ1dHRvbik7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBleHBlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Ryb3Bkb3duLW9wdGlvbi0xLTEnKSkudG9IYXZlRm9jdXMoKTtcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGJ1dHRvbikudG9IYXZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCAnZHJvcGRvd24tb3B0aW9uLTEtMScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IGhpZ2hsaWdodCBhbiBvcHRpb24gd2hlbiBubyB2YWx1ZSBpcyBzZWxlY3RlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlcig8RHJvcGRvd24gey4uLmRlZmF1bHRQcm9wc30gdmFsdWU9e3VuZGVmaW5lZH0gLz4pO1xuXG4gICAgICBjb25zdCBidXR0b24gPSBzY3JlZW4uZ2V0QnlSb2xlKCdjb21ib2JveCcpO1xuICAgICAgYXdhaXQgdXNlci5jbGljayhidXR0b24pO1xuXG4gICAgICBleHBlY3QoYnV0dG9uKS5ub3QudG9IYXZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGFzIGRpc2FibGVkIHdoZW4gZGlzYWJsZWQgcHJvcCBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxEcm9wZG93biB7Li4uZGVmYXVsdFByb3BzfSBkaXNhYmxlZD17dHJ1ZX0gLz4pO1xuICAgICAgY29uc3QgYnV0dG9uID0gc2NyZWVuLmdldEJ5Um9sZSgnY29tYm9ib3gnKTtcbiAgICAgIGV4cGVjdChidXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3dzIGNvcnJlY3Qgc3RhdGUgd2hlbiBjb3JyZWN0IGlzIHRydWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxEcm9wZG93biB7Li4uZGVmYXVsdFByb3BzfSBjb3JyZWN0PXt0cnVlfSAvPik7XG4gICAgICBjb25zdCBidXR0b24gPSBzY3JlZW4uZ2V0QnlSb2xlKCdjb21ib2JveCcpO1xuICAgICAgZXhwZWN0KGJ1dHRvbikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3VzZXIgaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aGVuIHVzZXIgc2VsZWN0cyBhIGRpZmZlcmVudCBvcHRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXIoPERyb3Bkb3duIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcblxuICAgICAgLy8gQ2xpY2sgYnV0dG9uIHRvIG9wZW4gbWVudVxuICAgICAgY29uc3QgYnV0dG9uID0gc2NyZWVuLmdldEJ5Um9sZSgnY29tYm9ib3gnKTtcbiAgICAgIGF3YWl0IHVzZXIuY2xpY2soYnV0dG9uKTtcblxuICAgICAgLy8gRmluZCB0aGUgb3B0aW9uIGJ5IGdldHRpbmcgYWxsIG9wdGlvbnMgYW5kIHNlbGVjdGluZyB0aGUgb25lIHdpdGggXCJMYXVnaGVkXCIgdGV4dFxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHNjcmVlbi5nZXRBbGxCeVJvbGUoJ29wdGlvbicpO1xuICAgICAgY29uc3QgbGF1Z2hlZE9wdGlvbiA9IG9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudGV4dENvbnRlbnQuaW5jbHVkZXMoJ0xhdWdoZWQnKSk7XG4gICAgICBhd2FpdCB1c2VyLmNsaWNrKGxhdWdoZWRPcHRpb24pO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCcxJywgJ0xhdWdoZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aXRoIGNvcnJlY3QgdmFsdWUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXIoPERyb3Bkb3duIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcblxuICAgICAgLy8gQ2xpY2sgYnV0dG9uIHRvIG9wZW4gbWVudVxuICAgICAgY29uc3QgYnV0dG9uID0gc2NyZWVuLmdldEJ5Um9sZSgnY29tYm9ib3gnKTtcbiAgICAgIGF3YWl0IHVzZXIuY2xpY2soYnV0dG9uKTtcblxuICAgICAgLy8gRmluZCB0aGUgb3B0aW9uIGJ5IGdldHRpbmcgYWxsIG9wdGlvbnMgYW5kIHNlbGVjdGluZyB0aGUgb25lIHdpdGggXCJTbWlsZWRcIiB0ZXh0XG4gICAgICBjb25zdCBvcHRpb25zID0gc2NyZWVuLmdldEFsbEJ5Um9sZSgnb3B0aW9uJyk7XG4gICAgICBjb25zdCBzbWlsZWRPcHRpb24gPSBvcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LnRleHRDb250ZW50LmluY2x1ZGVzKCdTbWlsZWQnKSk7XG4gICAgICBhd2FpdCB1c2VyLmNsaWNrKHNtaWxlZE9wdGlvbik7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJzEnLCAnU21pbGVkJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFBbUMsU0FBQUQsd0JBQUFPLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFULHVCQUFBLFlBQUFBLHdCQUFBTyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FB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
@@ -0,0 +1,129 @@
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 _input = _interopRequireDefault(require("../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
+ // Mock CorrectInput to simplify testing
14
+ jest.mock('../correct-input', function () {
15
+ return function CorrectInput(_ref) {
16
+ var value = _ref.value,
17
+ onChange = _ref.onChange,
18
+ disabled = _ref.disabled,
19
+ correct = _ref.correct,
20
+ variant = _ref.variant;
21
+ return /*#__PURE__*/React.createElement("input", {
22
+ "data-testid": "correct-input",
23
+ value: value || '',
24
+ onChange: onChange,
25
+ disabled: disabled,
26
+ "data-correct": correct,
27
+ "data-variant": variant
28
+ });
29
+ };
30
+ });
31
+ describe('Input', function () {
32
+ var onChange = jest.fn();
33
+ var defaultProps = {
34
+ disabled: false,
35
+ correct: false,
36
+ value: 'Cow',
37
+ id: '1',
38
+ onChange: onChange
39
+ };
40
+ beforeEach(function () {
41
+ onChange.mockClear();
42
+ });
43
+ describe('rendering', function () {
44
+ it('renders with default props', function () {
45
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_input["default"], defaultProps));
46
+ var input = _react2.screen.getByTestId('correct-input');
47
+ expect(input).toBeInTheDocument();
48
+ expect(input).toHaveValue('Cow');
49
+ expect(input).not.toBeDisabled();
50
+ expect(input).toHaveAttribute('data-correct', 'false');
51
+ });
52
+ it('renders as disabled when disabled prop is true', function () {
53
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_input["default"], (0, _extends2["default"])({}, defaultProps, {
54
+ disabled: true
55
+ })));
56
+ var input = _react2.screen.getByTestId('correct-input');
57
+ expect(input).toBeDisabled();
58
+ });
59
+ it('renders with correct state', function () {
60
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_input["default"], (0, _extends2["default"])({}, defaultProps, {
61
+ correct: true
62
+ })));
63
+ var input = _react2.screen.getByTestId('correct-input');
64
+ expect(input).toHaveAttribute('data-correct', 'true');
65
+ });
66
+ it('shows correct answer when showCorrectAnswer is true', function () {
67
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_input["default"], (0, _extends2["default"])({}, defaultProps, {
68
+ showCorrectAnswer: true
69
+ })));
70
+ var input = _react2.screen.getByTestId('correct-input');
71
+ expect(input).toHaveAttribute('data-correct', 'true');
72
+ });
73
+ });
74
+ describe('user interactions', function () {
75
+ it('calls onChange with id and value when user types', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
76
+ var user, input;
77
+ return _regenerator["default"].wrap(function (_context) {
78
+ while (1) switch (_context.prev = _context.next) {
79
+ case 0:
80
+ user = _userEvent["default"].setup();
81
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_input["default"], (0, _extends2["default"])({}, defaultProps, {
82
+ value: ""
83
+ })));
84
+ input = _react2.screen.getByTestId('correct-input');
85
+ _context.next = 1;
86
+ return user.type(input, '20');
87
+ case 1:
88
+ // userEvent.type types character by character, so onChange is called for each character
89
+ expect(onChange).toHaveBeenCalled();
90
+ expect(onChange).toHaveBeenCalledTimes(2);
91
+ // Check the last call has both characters
92
+ expect(onChange).toHaveBeenLastCalledWith('1', '0');
93
+ case 2:
94
+ case "end":
95
+ return _context.stop();
96
+ }
97
+ }, _callee);
98
+ })));
99
+ it('calls onChange with updated value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
100
+ var user, input;
101
+ return _regenerator["default"].wrap(function (_context2) {
102
+ while (1) switch (_context2.prev = _context2.next) {
103
+ case 0:
104
+ user = _userEvent["default"].setup();
105
+ (0, _react2.render)(/*#__PURE__*/React.createElement(_input["default"], defaultProps));
106
+ input = _react2.screen.getByTestId('correct-input');
107
+ _context2.next = 1;
108
+ return user.clear(input);
109
+ case 1:
110
+ _context2.next = 2;
111
+ return user.type(input, 'New Value');
112
+ case 2:
113
+ // userEvent.type types character by character
114
+ // After clear, we start with empty string, and each character is typed
115
+ // The last call should have the full accumulated value up to the last character
116
+ expect(onChange).toHaveBeenCalled();
117
+ // With clear + "New Value", onChange is called for clearing ("") and each typed character
118
+ // The value accumulated in the input element after typing will be "CowNew Value"
119
+ // because the component starts with value="Cow" and we clear then type
120
+ expect(onChange.mock.calls.length).toBeGreaterThan(0);
121
+ case 3:
122
+ case "end":
123
+ return _context2.stop();
124
+ }
125
+ }, _callee2);
126
+ })));
127
+ });
128
+ });
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlckV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9pbnB1dCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiamVzdCIsIm1vY2siLCJDb3JyZWN0SW5wdXQiLCJfcmVmIiwidmFsdWUiLCJvbkNoYW5nZSIsImRpc2FibGVkIiwiY29ycmVjdCIsInZhcmlhbnQiLCJjcmVhdGVFbGVtZW50IiwiZGVzY3JpYmUiLCJmbiIsImRlZmF1bHRQcm9wcyIsImlkIiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsIml0IiwicmVuZGVyIiwiaW5wdXQiLCJzY3JlZW4iLCJnZXRCeVRlc3RJZCIsImV4cGVjdCIsInRvQmVJblRoZURvY3VtZW50IiwidG9IYXZlVmFsdWUiLCJub3QiLCJ0b0JlRGlzYWJsZWQiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJfZXh0ZW5kczIiLCJzaG93Q29ycmVjdEFuc3dlciIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwidXNlciIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwidXNlckV2ZW50Iiwic2V0dXAiLCJ0eXBlIiwidG9IYXZlQmVlbkNhbGxlZCIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsInRvSGF2ZUJlZW5MYXN0Q2FsbGVkV2l0aCIsInN0b3AiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsImNsZWFyIiwiY2FsbHMiLCJsZW5ndGgiLCJ0b0JlR3JlYXRlclRoYW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9fX3Rlc3RzX18vaW5wdXQudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIsIHNjcmVlbiB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHVzZXJFdmVudCBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3VzZXItZXZlbnQnO1xuaW1wb3J0IElucHV0IGZyb20gJy4uL2lucHV0JztcblxuLy8gTW9jayBDb3JyZWN0SW5wdXQgdG8gc2ltcGxpZnkgdGVzdGluZ1xuamVzdC5tb2NrKCcuLi9jb3JyZWN0LWlucHV0JywgKCkgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gQ29ycmVjdElucHV0KHsgdmFsdWUsIG9uQ2hhbmdlLCBkaXNhYmxlZCwgY29ycmVjdCwgdmFyaWFudCB9KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxpbnB1dFxuICAgICAgICBkYXRhLXRlc3RpZD1cImNvcnJlY3QtaW5wdXRcIlxuICAgICAgICB2YWx1ZT17dmFsdWUgfHwgJyd9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBkYXRhLWNvcnJlY3Q9e2NvcnJlY3R9XG4gICAgICAgIGRhdGEtdmFyaWFudD17dmFyaWFudH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcbn0pO1xuXG5kZXNjcmliZSgnSW5wdXQnLCAoKSA9PiB7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgIHZhbHVlOiAnQ293JyxcbiAgICBpZDogJzEnLFxuICAgIG9uQ2hhbmdlLFxuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlLm1vY2tDbGVhcigpO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIHJlbmRlcig8SW5wdXQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlUZXN0SWQoJ2NvcnJlY3QtaW5wdXQnKTtcblxuICAgICAgZXhwZWN0KGlucHV0KS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KGlucHV0KS50b0hhdmVWYWx1ZSgnQ293Jyk7XG4gICAgICBleHBlY3QoaW5wdXQpLm5vdC50b0JlRGlzYWJsZWQoKTtcbiAgICAgIGV4cGVjdChpbnB1dCkudG9IYXZlQXR0cmlidXRlKCdkYXRhLWNvcnJlY3QnLCAnZmFsc2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGFzIGRpc2FibGVkIHdoZW4gZGlzYWJsZWQgcHJvcCBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxJbnB1dCB7Li4uZGVmYXVsdFByb3BzfSBkaXNhYmxlZD17dHJ1ZX0gLz4pO1xuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlUZXN0SWQoJ2NvcnJlY3QtaW5wdXQnKTtcblxuICAgICAgZXhwZWN0KGlucHV0KS50b0JlRGlzYWJsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggY29ycmVjdCBzdGF0ZScsICgpID0+IHtcbiAgICAgIHJlbmRlcig8SW5wdXQgey4uLmRlZmF1bHRQcm9wc30gY29ycmVjdD17dHJ1ZX0gLz4pO1xuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlUZXN0SWQoJ2NvcnJlY3QtaW5wdXQnKTtcblxuICAgICAgZXhwZWN0KGlucHV0KS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtY29ycmVjdCcsICd0cnVlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvd3MgY29ycmVjdCBhbnN3ZXIgd2hlbiBzaG93Q29ycmVjdEFuc3dlciBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKDxJbnB1dCB7Li4uZGVmYXVsdFByb3BzfSBzaG93Q29ycmVjdEFuc3dlcj17dHJ1ZX0gLz4pO1xuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlUZXN0SWQoJ2NvcnJlY3QtaW5wdXQnKTtcblxuICAgICAgZXhwZWN0KGlucHV0KS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtY29ycmVjdCcsICd0cnVlJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd1c2VyIGludGVyYWN0aW9ucycsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgb25DaGFuZ2Ugd2l0aCBpZCBhbmQgdmFsdWUgd2hlbiB1c2VyIHR5cGVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJFdmVudC5zZXR1cCgpO1xuICAgICAgcmVuZGVyKDxJbnB1dCB7Li4uZGVmYXVsdFByb3BzfSB2YWx1ZT1cIlwiIC8+KTtcblxuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlUZXN0SWQoJ2NvcnJlY3QtaW5wdXQnKTtcbiAgICAgIGF3YWl0IHVzZXIudHlwZShpbnB1dCwgJzIwJyk7XG5cbiAgICAgIC8vIHVzZXJFdmVudC50eXBlIHR5cGVzIGNoYXJhY3RlciBieSBjaGFyYWN0ZXIsIHNvIG9uQ2hhbmdlIGlzIGNhbGxlZCBmb3IgZWFjaCBjaGFyYWN0ZXJcbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMik7XG4gICAgICAvLyBDaGVjayB0aGUgbGFzdCBjYWxsIGhhcyBib3RoIGNoYXJhY3RlcnNcbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCcxJywgJzAnKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aXRoIHVwZGF0ZWQgdmFsdWUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXIoPElucHV0IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcblxuICAgICAgY29uc3QgaW5wdXQgPSBzY3JlZW4uZ2V0QnlUZXN0SWQoJ2NvcnJlY3QtaW5wdXQnKTtcbiAgICAgIGF3YWl0IHVzZXIuY2xlYXIoaW5wdXQpO1xuICAgICAgYXdhaXQgdXNlci50eXBlKGlucHV0LCAnTmV3IFZhbHVlJyk7XG5cbiAgICAgIC8vIHVzZXJFdmVudC50eXBlIHR5cGVzIGNoYXJhY3RlciBieSBjaGFyYWN0ZXJcbiAgICAgIC8vIEFmdGVyIGNsZWFyLCB3ZSBzdGFydCB3aXRoIGVtcHR5IHN0cmluZywgYW5kIGVhY2ggY2hhcmFjdGVyIGlzIHR5cGVkXG4gICAgICAvLyBUaGUgbGFzdCBjYWxsIHNob3VsZCBoYXZlIHRoZSBmdWxsIGFjY3VtdWxhdGVkIHZhbHVlIHVwIHRvIHRoZSBsYXN0IGNoYXJhY3RlclxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICAvLyBXaXRoIGNsZWFyICsgXCJOZXcgVmFsdWVcIiwgb25DaGFuZ2UgaXMgY2FsbGVkIGZvciBjbGVhcmluZyAoXCJcIikgYW5kIGVhY2ggdHlwZWQgY2hhcmFjdGVyXG4gICAgICAvLyBUaGUgdmFsdWUgYWNjdW11bGF0ZWQgaW4gdGhlIGlucHV0IGVsZW1lbnQgYWZ0ZXIgdHlwaW5nIHdpbGwgYmUgXCJDb3dOZXcgVmFsdWVcIlxuICAgICAgLy8gYmVjYXVzZSB0aGUgY29tcG9uZW50IHN0YXJ0cyB3aXRoIHZhbHVlPVwiQ293XCIgYW5kIHdlIGNsZWFyIHRoZW4gdHlwZVxuICAgICAgZXhwZWN0KG9uQ2hhbmdlLm1vY2suY2FsbHMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/mask-markup",
3
- "version": "3.1.6-beta.6",
3
+ "version": "3.1.6-beta.8",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
@@ -14,7 +14,7 @@
14
14
  "@mui/icons-material": "^7.3.4",
15
15
  "@mui/material": "^7.3.4",
16
16
  "@pie-lib/drag": "^4.0.2",
17
- "@pie-lib/editable-html-tip-tap": "^2.1.20-beta.6",
17
+ "@pie-lib/editable-html-tip-tap": "^2.1.20-beta.8",
18
18
  "@pie-lib/math-rendering": "^5.0.2",
19
19
  "@pie-lib/render-ui": "^6.1.0",
20
20
  "classnames": "^2.2.6",