@pie-lib/config-ui 13.0.13 → 13.1.0-beta
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 +0 -42
- package/lib/__tests__/alert-dialog.test.js +262 -0
- package/lib/__tests__/alert-dialog.test.js.map +1 -0
- package/lib/__tests__/checkbox.test.js +227 -0
- package/lib/__tests__/checkbox.test.js.map +1 -0
- package/lib/__tests__/choice-utils.test.js +14 -0
- package/lib/__tests__/choice-utils.test.js.map +1 -0
- package/lib/__tests__/form-section.test.js +252 -0
- package/lib/__tests__/form-section.test.js.map +1 -0
- package/lib/__tests__/help.test.js +270 -0
- package/lib/__tests__/help.test.js.map +1 -0
- package/lib/__tests__/input.test.js +268 -0
- package/lib/__tests__/input.test.js.map +1 -0
- package/lib/__tests__/langs.test.js +541 -0
- package/lib/__tests__/langs.test.js.map +1 -0
- package/lib/__tests__/number-text-field-custom.test.js +362 -0
- package/lib/__tests__/number-text-field-custom.test.js.map +1 -0
- package/lib/__tests__/number-text-field.test.js +421 -0
- package/lib/__tests__/number-text-field.test.js.map +1 -0
- package/lib/__tests__/radio-with-label.test.js +233 -0
- package/lib/__tests__/radio-with-label.test.js.map +1 -0
- package/lib/__tests__/settings-panel.test.js +184 -0
- package/lib/__tests__/settings-panel.test.js.map +1 -0
- package/lib/__tests__/settings.test.js +653 -0
- package/lib/__tests__/settings.test.js.map +1 -0
- package/lib/__tests__/tabs.test.js +211 -0
- package/lib/__tests__/tabs.test.js.map +1 -0
- package/lib/__tests__/two-choice.test.js +124 -0
- package/lib/__tests__/two-choice.test.js.map +1 -0
- package/lib/__tests__/with-stateful-model.test.js +221 -0
- package/lib/__tests__/with-stateful-model.test.js.map +1 -0
- package/lib/choice-configuration/__tests__/feedback-menu.test.js +287 -0
- package/lib/choice-configuration/__tests__/feedback-menu.test.js.map +1 -0
- package/lib/choice-configuration/__tests__/index.test.js +253 -0
- package/lib/choice-configuration/__tests__/index.test.js.map +1 -0
- package/lib/feedback-config/__tests__/feedback-config.test.js +201 -0
- package/lib/feedback-config/__tests__/feedback-config.test.js.map +1 -0
- package/lib/feedback-config/__tests__/feedback-selector.test.js +177 -0
- package/lib/feedback-config/__tests__/feedback-selector.test.js.map +1 -0
- package/lib/layout/__tests__/config.layout.test.js +70 -0
- package/lib/layout/__tests__/config.layout.test.js.map +1 -0
- package/lib/layout/__tests__/layout-content.test.js +6 -0
- package/lib/layout/__tests__/layout-content.test.js.map +1 -0
- package/lib/tags-input/__tests__/index.test.js +183 -0
- package/lib/tags-input/__tests__/index.test.js.map +1 -0
- package/package.json +5 -5
- package/LICENSE.md +0 -5
|
@@ -0,0 +1,653 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _react2 = require("@testing-library/react");
|
|
9
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
|
+
var _toggle = _interopRequireDefault(require("../settings/toggle"));
|
|
11
|
+
var _displaySize = _interopRequireDefault(require("../settings/display-size"));
|
|
12
|
+
var _settingsRadioLabel = _interopRequireDefault(require("../settings/settings-radio-label"));
|
|
13
|
+
var _panel = require("../settings/panel");
|
|
14
|
+
describe('Settings Components', function () {
|
|
15
|
+
describe('Toggle', function () {
|
|
16
|
+
it('renders toggle with label', function () {
|
|
17
|
+
var toggle = jest.fn();
|
|
18
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_toggle["default"], {
|
|
19
|
+
label: "Enable Feature",
|
|
20
|
+
checked: false,
|
|
21
|
+
toggle: toggle
|
|
22
|
+
}));
|
|
23
|
+
expect(_react2.screen.getByText('Enable Feature')).toBeInTheDocument();
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
describe('DisplaySize', function () {
|
|
27
|
+
var defaultProps = {
|
|
28
|
+
size: {
|
|
29
|
+
width: 500,
|
|
30
|
+
height: 400
|
|
31
|
+
},
|
|
32
|
+
label: 'Display Size',
|
|
33
|
+
onChange: jest.fn()
|
|
34
|
+
};
|
|
35
|
+
beforeEach(function () {
|
|
36
|
+
jest.clearAllMocks();
|
|
37
|
+
});
|
|
38
|
+
it('renders label and input fields', function () {
|
|
39
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], defaultProps));
|
|
40
|
+
expect(_react2.screen.getByText('Display Size')).toBeInTheDocument();
|
|
41
|
+
expect(_react2.screen.getByLabelText('Width')).toBeInTheDocument();
|
|
42
|
+
expect(_react2.screen.getByLabelText('Height')).toBeInTheDocument();
|
|
43
|
+
});
|
|
44
|
+
it('displays width and height values', function () {
|
|
45
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], defaultProps));
|
|
46
|
+
var widthInput = _react2.screen.getByLabelText('Width');
|
|
47
|
+
var heightInput = _react2.screen.getByLabelText('Height');
|
|
48
|
+
expect(widthInput).toHaveValue(500);
|
|
49
|
+
expect(heightInput).toHaveValue(400);
|
|
50
|
+
});
|
|
51
|
+
it('calls onChange when width changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
52
|
+
var user, onChange, widthInput;
|
|
53
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
54
|
+
while (1) switch (_context.prev = _context.next) {
|
|
55
|
+
case 0:
|
|
56
|
+
user = _userEvent["default"].setup();
|
|
57
|
+
onChange = jest.fn();
|
|
58
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
59
|
+
onChange: onChange
|
|
60
|
+
})));
|
|
61
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
62
|
+
_context.next = 1;
|
|
63
|
+
return user.clear(widthInput);
|
|
64
|
+
case 1:
|
|
65
|
+
_context.next = 2;
|
|
66
|
+
return user.type(widthInput, '600');
|
|
67
|
+
case 2:
|
|
68
|
+
_react2.fireEvent.blur(widthInput);
|
|
69
|
+
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
70
|
+
width: 600
|
|
71
|
+
}));
|
|
72
|
+
case 3:
|
|
73
|
+
case "end":
|
|
74
|
+
return _context.stop();
|
|
75
|
+
}
|
|
76
|
+
}, _callee);
|
|
77
|
+
})));
|
|
78
|
+
it('calls onChange when height changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
79
|
+
var user, onChange, heightInput;
|
|
80
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
81
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
82
|
+
case 0:
|
|
83
|
+
user = _userEvent["default"].setup();
|
|
84
|
+
onChange = jest.fn();
|
|
85
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
86
|
+
onChange: onChange
|
|
87
|
+
})));
|
|
88
|
+
heightInput = _react2.screen.getByLabelText('Height');
|
|
89
|
+
_context2.next = 1;
|
|
90
|
+
return user.clear(heightInput);
|
|
91
|
+
case 1:
|
|
92
|
+
_context2.next = 2;
|
|
93
|
+
return user.type(heightInput, '500');
|
|
94
|
+
case 2:
|
|
95
|
+
_react2.fireEvent.blur(heightInput);
|
|
96
|
+
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
97
|
+
height: 500
|
|
98
|
+
}));
|
|
99
|
+
case 3:
|
|
100
|
+
case "end":
|
|
101
|
+
return _context2.stop();
|
|
102
|
+
}
|
|
103
|
+
}, _callee2);
|
|
104
|
+
})));
|
|
105
|
+
it('maintains other dimension when one changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
106
|
+
var user, onChange, widthInput;
|
|
107
|
+
return _regenerator["default"].wrap(function (_context3) {
|
|
108
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
109
|
+
case 0:
|
|
110
|
+
user = _userEvent["default"].setup();
|
|
111
|
+
onChange = jest.fn();
|
|
112
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
113
|
+
onChange: onChange
|
|
114
|
+
})));
|
|
115
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
116
|
+
_context3.next = 1;
|
|
117
|
+
return user.clear(widthInput);
|
|
118
|
+
case 1:
|
|
119
|
+
_context3.next = 2;
|
|
120
|
+
return user.type(widthInput, '700');
|
|
121
|
+
case 2:
|
|
122
|
+
_react2.fireEvent.blur(widthInput);
|
|
123
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
124
|
+
width: 700,
|
|
125
|
+
height: 400
|
|
126
|
+
});
|
|
127
|
+
case 3:
|
|
128
|
+
case "end":
|
|
129
|
+
return _context3.stop();
|
|
130
|
+
}
|
|
131
|
+
}, _callee3);
|
|
132
|
+
})));
|
|
133
|
+
it('enforces min value constraint', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
134
|
+
var user, onChange, widthInput;
|
|
135
|
+
return _regenerator["default"].wrap(function (_context4) {
|
|
136
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
137
|
+
case 0:
|
|
138
|
+
user = _userEvent["default"].setup();
|
|
139
|
+
onChange = jest.fn();
|
|
140
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
141
|
+
onChange: onChange
|
|
142
|
+
})));
|
|
143
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
144
|
+
_context4.next = 1;
|
|
145
|
+
return user.clear(widthInput);
|
|
146
|
+
case 1:
|
|
147
|
+
_context4.next = 2;
|
|
148
|
+
return user.type(widthInput, '100');
|
|
149
|
+
case 2:
|
|
150
|
+
_react2.fireEvent.blur(widthInput);
|
|
151
|
+
|
|
152
|
+
// Should clamp to minimum 150
|
|
153
|
+
expect(widthInput).toHaveValue(150);
|
|
154
|
+
case 3:
|
|
155
|
+
case "end":
|
|
156
|
+
return _context4.stop();
|
|
157
|
+
}
|
|
158
|
+
}, _callee4);
|
|
159
|
+
})));
|
|
160
|
+
it('enforces max value constraint', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
161
|
+
var user, onChange, widthInput;
|
|
162
|
+
return _regenerator["default"].wrap(function (_context5) {
|
|
163
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
164
|
+
case 0:
|
|
165
|
+
user = _userEvent["default"].setup();
|
|
166
|
+
onChange = jest.fn();
|
|
167
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
168
|
+
onChange: onChange
|
|
169
|
+
})));
|
|
170
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
171
|
+
_context5.next = 1;
|
|
172
|
+
return user.clear(widthInput);
|
|
173
|
+
case 1:
|
|
174
|
+
_context5.next = 2;
|
|
175
|
+
return user.type(widthInput, '2000');
|
|
176
|
+
case 2:
|
|
177
|
+
_react2.fireEvent.blur(widthInput);
|
|
178
|
+
|
|
179
|
+
// Should clamp to maximum 1000
|
|
180
|
+
expect(widthInput).toHaveValue(1000);
|
|
181
|
+
case 3:
|
|
182
|
+
case "end":
|
|
183
|
+
return _context5.stop();
|
|
184
|
+
}
|
|
185
|
+
}, _callee5);
|
|
186
|
+
})));
|
|
187
|
+
it('updates when size prop changes', function () {
|
|
188
|
+
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], defaultProps)),
|
|
189
|
+
rerender = _render.rerender;
|
|
190
|
+
var widthInput = _react2.screen.getByLabelText('Width');
|
|
191
|
+
expect(widthInput).toHaveValue(500);
|
|
192
|
+
rerender(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
193
|
+
size: {
|
|
194
|
+
width: 800,
|
|
195
|
+
height: 600
|
|
196
|
+
}
|
|
197
|
+
})));
|
|
198
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
199
|
+
expect(widthInput).toHaveValue(800);
|
|
200
|
+
});
|
|
201
|
+
it('handles boundary values at minimum', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
202
|
+
var user, onChange, widthInput, heightInput;
|
|
203
|
+
return _regenerator["default"].wrap(function (_context6) {
|
|
204
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
205
|
+
case 0:
|
|
206
|
+
user = _userEvent["default"].setup();
|
|
207
|
+
onChange = jest.fn();
|
|
208
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
209
|
+
onChange: onChange
|
|
210
|
+
})));
|
|
211
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
212
|
+
heightInput = _react2.screen.getByLabelText('Height');
|
|
213
|
+
_context6.next = 1;
|
|
214
|
+
return user.clear(widthInput);
|
|
215
|
+
case 1:
|
|
216
|
+
_context6.next = 2;
|
|
217
|
+
return user.type(widthInput, '150');
|
|
218
|
+
case 2:
|
|
219
|
+
_react2.fireEvent.blur(widthInput);
|
|
220
|
+
_context6.next = 3;
|
|
221
|
+
return user.clear(heightInput);
|
|
222
|
+
case 3:
|
|
223
|
+
_context6.next = 4;
|
|
224
|
+
return user.type(heightInput, '150');
|
|
225
|
+
case 4:
|
|
226
|
+
_react2.fireEvent.blur(heightInput);
|
|
227
|
+
expect(widthInput).toHaveValue(150);
|
|
228
|
+
expect(heightInput).toHaveValue(150);
|
|
229
|
+
case 5:
|
|
230
|
+
case "end":
|
|
231
|
+
return _context6.stop();
|
|
232
|
+
}
|
|
233
|
+
}, _callee6);
|
|
234
|
+
})));
|
|
235
|
+
it('handles boundary values at maximum', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
236
|
+
var user, onChange, widthInput, heightInput;
|
|
237
|
+
return _regenerator["default"].wrap(function (_context7) {
|
|
238
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
239
|
+
case 0:
|
|
240
|
+
user = _userEvent["default"].setup();
|
|
241
|
+
onChange = jest.fn();
|
|
242
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
243
|
+
onChange: onChange
|
|
244
|
+
})));
|
|
245
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
246
|
+
heightInput = _react2.screen.getByLabelText('Height');
|
|
247
|
+
_context7.next = 1;
|
|
248
|
+
return user.clear(widthInput);
|
|
249
|
+
case 1:
|
|
250
|
+
_context7.next = 2;
|
|
251
|
+
return user.type(widthInput, '1000');
|
|
252
|
+
case 2:
|
|
253
|
+
_react2.fireEvent.blur(widthInput);
|
|
254
|
+
_context7.next = 3;
|
|
255
|
+
return user.clear(heightInput);
|
|
256
|
+
case 3:
|
|
257
|
+
_context7.next = 4;
|
|
258
|
+
return user.type(heightInput, '1000');
|
|
259
|
+
case 4:
|
|
260
|
+
_react2.fireEvent.blur(heightInput);
|
|
261
|
+
expect(widthInput).toHaveValue(1000);
|
|
262
|
+
expect(heightInput).toHaveValue(1000);
|
|
263
|
+
case 5:
|
|
264
|
+
case "end":
|
|
265
|
+
return _context7.stop();
|
|
266
|
+
}
|
|
267
|
+
}, _callee7);
|
|
268
|
+
})));
|
|
269
|
+
it('handles decimal input values', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
270
|
+
var user, onChange, widthInput;
|
|
271
|
+
return _regenerator["default"].wrap(function (_context8) {
|
|
272
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
273
|
+
case 0:
|
|
274
|
+
user = _userEvent["default"].setup();
|
|
275
|
+
onChange = jest.fn();
|
|
276
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
277
|
+
onChange: onChange
|
|
278
|
+
})));
|
|
279
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
280
|
+
_context8.next = 1;
|
|
281
|
+
return user.clear(widthInput);
|
|
282
|
+
case 1:
|
|
283
|
+
_context8.next = 2;
|
|
284
|
+
return user.type(widthInput, '500.5');
|
|
285
|
+
case 2:
|
|
286
|
+
_react2.fireEvent.blur(widthInput);
|
|
287
|
+
expect(widthInput).toBeInTheDocument();
|
|
288
|
+
case 3:
|
|
289
|
+
case "end":
|
|
290
|
+
return _context8.stop();
|
|
291
|
+
}
|
|
292
|
+
}, _callee8);
|
|
293
|
+
})));
|
|
294
|
+
it('handles empty input and resets to min', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
295
|
+
var user, onChange, widthInput;
|
|
296
|
+
return _regenerator["default"].wrap(function (_context9) {
|
|
297
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
298
|
+
case 0:
|
|
299
|
+
user = _userEvent["default"].setup();
|
|
300
|
+
onChange = jest.fn();
|
|
301
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
302
|
+
onChange: onChange
|
|
303
|
+
})));
|
|
304
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
305
|
+
_context9.next = 1;
|
|
306
|
+
return user.clear(widthInput);
|
|
307
|
+
case 1:
|
|
308
|
+
_react2.fireEvent.blur(widthInput);
|
|
309
|
+
|
|
310
|
+
// Should reset to minimum value
|
|
311
|
+
expect(widthInput).toHaveValue(150);
|
|
312
|
+
case 2:
|
|
313
|
+
case "end":
|
|
314
|
+
return _context9.stop();
|
|
315
|
+
}
|
|
316
|
+
}, _callee9);
|
|
317
|
+
})));
|
|
318
|
+
it('handles rapid width and height changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() {
|
|
319
|
+
var user, onChange, widthInput;
|
|
320
|
+
return _regenerator["default"].wrap(function (_context0) {
|
|
321
|
+
while (1) switch (_context0.prev = _context0.next) {
|
|
322
|
+
case 0:
|
|
323
|
+
user = _userEvent["default"].setup();
|
|
324
|
+
onChange = jest.fn();
|
|
325
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
326
|
+
onChange: onChange
|
|
327
|
+
})));
|
|
328
|
+
widthInput = _react2.screen.getByLabelText('Width');
|
|
329
|
+
_context0.next = 1;
|
|
330
|
+
return user.clear(widthInput);
|
|
331
|
+
case 1:
|
|
332
|
+
_context0.next = 2;
|
|
333
|
+
return user.type(widthInput, '6');
|
|
334
|
+
case 2:
|
|
335
|
+
_context0.next = 3;
|
|
336
|
+
return user.type(widthInput, '0');
|
|
337
|
+
case 3:
|
|
338
|
+
_context0.next = 4;
|
|
339
|
+
return user.type(widthInput, '0');
|
|
340
|
+
case 4:
|
|
341
|
+
_react2.fireEvent.blur(widthInput);
|
|
342
|
+
expect(onChange).toHaveBeenCalled();
|
|
343
|
+
case 5:
|
|
344
|
+
case "end":
|
|
345
|
+
return _context0.stop();
|
|
346
|
+
}
|
|
347
|
+
}, _callee0);
|
|
348
|
+
})));
|
|
349
|
+
it('clamps height at both boundaries', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() {
|
|
350
|
+
var user, onChange, heightInput;
|
|
351
|
+
return _regenerator["default"].wrap(function (_context1) {
|
|
352
|
+
while (1) switch (_context1.prev = _context1.next) {
|
|
353
|
+
case 0:
|
|
354
|
+
user = _userEvent["default"].setup();
|
|
355
|
+
onChange = jest.fn();
|
|
356
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
357
|
+
onChange: onChange
|
|
358
|
+
})));
|
|
359
|
+
heightInput = _react2.screen.getByLabelText('Height'); // Test below min
|
|
360
|
+
_context1.next = 1;
|
|
361
|
+
return user.clear(heightInput);
|
|
362
|
+
case 1:
|
|
363
|
+
_context1.next = 2;
|
|
364
|
+
return user.type(heightInput, '50');
|
|
365
|
+
case 2:
|
|
366
|
+
_react2.fireEvent.blur(heightInput);
|
|
367
|
+
expect(heightInput).toHaveValue(150);
|
|
368
|
+
|
|
369
|
+
// Test above max
|
|
370
|
+
_context1.next = 3;
|
|
371
|
+
return user.clear(heightInput);
|
|
372
|
+
case 3:
|
|
373
|
+
_context1.next = 4;
|
|
374
|
+
return user.type(heightInput, '2500');
|
|
375
|
+
case 4:
|
|
376
|
+
_react2.fireEvent.blur(heightInput);
|
|
377
|
+
expect(heightInput).toHaveValue(1000);
|
|
378
|
+
case 5:
|
|
379
|
+
case "end":
|
|
380
|
+
return _context1.stop();
|
|
381
|
+
}
|
|
382
|
+
}, _callee1);
|
|
383
|
+
})));
|
|
384
|
+
it('displays custom label text', function () {
|
|
385
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], {
|
|
386
|
+
size: {
|
|
387
|
+
width: 500,
|
|
388
|
+
height: 400
|
|
389
|
+
},
|
|
390
|
+
label: "Custom Size Settings",
|
|
391
|
+
onChange: jest.fn()
|
|
392
|
+
}));
|
|
393
|
+
expect(_react2.screen.getByText('Custom Size Settings')).toBeInTheDocument();
|
|
394
|
+
});
|
|
395
|
+
it('renders with variant outlined', function () {
|
|
396
|
+
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_displaySize["default"], defaultProps)),
|
|
397
|
+
container = _render2.container;
|
|
398
|
+
var inputs = container.querySelectorAll('input');
|
|
399
|
+
expect(inputs.length).toBe(2);
|
|
400
|
+
});
|
|
401
|
+
});
|
|
402
|
+
describe('SettingsRadioLabel', function () {
|
|
403
|
+
it('renders radio label', function () {
|
|
404
|
+
var onChange = jest.fn();
|
|
405
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_settingsRadioLabel["default"], {
|
|
406
|
+
label: "Option 1",
|
|
407
|
+
value: "option1",
|
|
408
|
+
checked: false,
|
|
409
|
+
onChange: onChange
|
|
410
|
+
}));
|
|
411
|
+
expect(_react2.screen.getByText('Option 1')).toBeInTheDocument();
|
|
412
|
+
expect(_react2.screen.getByRole('radio')).toBeInTheDocument();
|
|
413
|
+
});
|
|
414
|
+
it('renders checked state', function () {
|
|
415
|
+
var onChange = jest.fn();
|
|
416
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_settingsRadioLabel["default"], {
|
|
417
|
+
label: "Option 1",
|
|
418
|
+
value: "option1",
|
|
419
|
+
checked: true,
|
|
420
|
+
onChange: onChange
|
|
421
|
+
}));
|
|
422
|
+
var radio = _react2.screen.getByRole('radio');
|
|
423
|
+
expect(radio).toBeChecked();
|
|
424
|
+
});
|
|
425
|
+
it('renders unchecked state', function () {
|
|
426
|
+
var onChange = jest.fn();
|
|
427
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_settingsRadioLabel["default"], {
|
|
428
|
+
label: "Option 1",
|
|
429
|
+
value: "option1",
|
|
430
|
+
checked: false,
|
|
431
|
+
onChange: onChange
|
|
432
|
+
}));
|
|
433
|
+
var radio = _react2.screen.getByRole('radio');
|
|
434
|
+
expect(radio).not.toBeChecked();
|
|
435
|
+
});
|
|
436
|
+
it('calls onChange when radio is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
437
|
+
var user, onChange, radio;
|
|
438
|
+
return _regenerator["default"].wrap(function (_context10) {
|
|
439
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
440
|
+
case 0:
|
|
441
|
+
user = _userEvent["default"].setup();
|
|
442
|
+
onChange = jest.fn();
|
|
443
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_settingsRadioLabel["default"], {
|
|
444
|
+
label: "Option 1",
|
|
445
|
+
value: "option1",
|
|
446
|
+
checked: false,
|
|
447
|
+
onChange: onChange
|
|
448
|
+
}));
|
|
449
|
+
radio = _react2.screen.getByRole('radio');
|
|
450
|
+
_context10.next = 1;
|
|
451
|
+
return user.click(radio);
|
|
452
|
+
case 1:
|
|
453
|
+
expect(onChange).toHaveBeenCalled();
|
|
454
|
+
case 2:
|
|
455
|
+
case "end":
|
|
456
|
+
return _context10.stop();
|
|
457
|
+
}
|
|
458
|
+
}, _callee10);
|
|
459
|
+
})));
|
|
460
|
+
it('displays label text correctly', function () {
|
|
461
|
+
var onChange = jest.fn();
|
|
462
|
+
var labelText = 'Custom Option Label';
|
|
463
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_settingsRadioLabel["default"], {
|
|
464
|
+
label: labelText,
|
|
465
|
+
value: "custom",
|
|
466
|
+
checked: false,
|
|
467
|
+
onChange: onChange
|
|
468
|
+
}));
|
|
469
|
+
expect(_react2.screen.getByText(labelText)).toBeInTheDocument();
|
|
470
|
+
});
|
|
471
|
+
});
|
|
472
|
+
describe('Panel', function () {
|
|
473
|
+
var defaultProps = {
|
|
474
|
+
model: {
|
|
475
|
+
toggleSetting: true,
|
|
476
|
+
numberValue: 5
|
|
477
|
+
},
|
|
478
|
+
configuration: {
|
|
479
|
+
configValue: 'test'
|
|
480
|
+
},
|
|
481
|
+
groups: {
|
|
482
|
+
'General Settings': {
|
|
483
|
+
toggleSetting: {
|
|
484
|
+
type: 'toggle',
|
|
485
|
+
label: 'Enable Feature'
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
|
+
onChangeModel: jest.fn(),
|
|
490
|
+
onChangeConfiguration: jest.fn()
|
|
491
|
+
};
|
|
492
|
+
beforeEach(function () {
|
|
493
|
+
jest.clearAllMocks();
|
|
494
|
+
});
|
|
495
|
+
it('renders panel with group label', function () {
|
|
496
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, defaultProps));
|
|
497
|
+
expect(_react2.screen.getByText('General Settings')).toBeInTheDocument();
|
|
498
|
+
});
|
|
499
|
+
it('renders empty when groups is undefined', function () {
|
|
500
|
+
var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, (0, _extends2["default"])({}, defaultProps, {
|
|
501
|
+
groups: undefined
|
|
502
|
+
}))),
|
|
503
|
+
container = _render3.container;
|
|
504
|
+
expect(container.firstChild.children.length).toBe(0);
|
|
505
|
+
});
|
|
506
|
+
it('renders empty when groups is empty', function () {
|
|
507
|
+
var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, (0, _extends2["default"])({}, defaultProps, {
|
|
508
|
+
groups: {}
|
|
509
|
+
}))),
|
|
510
|
+
container = _render4.container;
|
|
511
|
+
expect(container.firstChild.children.length).toBe(0);
|
|
512
|
+
});
|
|
513
|
+
it('calls onChangeModel when model changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11() {
|
|
514
|
+
var user, onChangeModel, _render5, container, switchElement;
|
|
515
|
+
return _regenerator["default"].wrap(function (_context11) {
|
|
516
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
517
|
+
case 0:
|
|
518
|
+
user = _userEvent["default"].setup();
|
|
519
|
+
onChangeModel = jest.fn();
|
|
520
|
+
_render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, (0, _extends2["default"])({}, defaultProps, {
|
|
521
|
+
onChangeModel: onChangeModel
|
|
522
|
+
}))), container = _render5.container;
|
|
523
|
+
switchElement = container.querySelector('input[type="checkbox"]');
|
|
524
|
+
_context11.next = 1;
|
|
525
|
+
return user.click(switchElement);
|
|
526
|
+
case 1:
|
|
527
|
+
expect(onChangeModel).toHaveBeenCalled();
|
|
528
|
+
case 2:
|
|
529
|
+
case "end":
|
|
530
|
+
return _context11.stop();
|
|
531
|
+
}
|
|
532
|
+
}, _callee11);
|
|
533
|
+
})));
|
|
534
|
+
it('calls onChangeConfiguration when configuration changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
535
|
+
var user, onChangeConfiguration, _render6, container, switchElement;
|
|
536
|
+
return _regenerator["default"].wrap(function (_context12) {
|
|
537
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
538
|
+
case 0:
|
|
539
|
+
user = _userEvent["default"].setup();
|
|
540
|
+
onChangeConfiguration = jest.fn();
|
|
541
|
+
_render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, (0, _extends2["default"])({}, defaultProps, {
|
|
542
|
+
groups: {
|
|
543
|
+
'Config Group': {
|
|
544
|
+
configValue: {
|
|
545
|
+
type: 'toggle',
|
|
546
|
+
label: 'Config Toggle',
|
|
547
|
+
isConfigProperty: true
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
},
|
|
551
|
+
onChangeConfiguration: onChangeConfiguration
|
|
552
|
+
}))), container = _render6.container;
|
|
553
|
+
switchElement = container.querySelector('input[type="checkbox"]');
|
|
554
|
+
_context12.next = 1;
|
|
555
|
+
return user.click(switchElement);
|
|
556
|
+
case 1:
|
|
557
|
+
expect(onChangeConfiguration).toHaveBeenCalled();
|
|
558
|
+
case 2:
|
|
559
|
+
case "end":
|
|
560
|
+
return _context12.stop();
|
|
561
|
+
}
|
|
562
|
+
}, _callee12);
|
|
563
|
+
})));
|
|
564
|
+
it('renders with modal when provided', function () {
|
|
565
|
+
var modal = /*#__PURE__*/_react["default"].createElement("div", {
|
|
566
|
+
"data-testid": "test-modal"
|
|
567
|
+
}, "Modal Content");
|
|
568
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, (0, _extends2["default"])({}, defaultProps, {
|
|
569
|
+
modal: modal
|
|
570
|
+
})));
|
|
571
|
+
expect(_react2.screen.getByTestId('test-modal')).toBeInTheDocument();
|
|
572
|
+
expect(_react2.screen.getByText('Modal Content')).toBeInTheDocument();
|
|
573
|
+
});
|
|
574
|
+
it('renders multiple groups', function () {
|
|
575
|
+
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, (0, _extends2["default"])({}, defaultProps, {
|
|
576
|
+
groups: {
|
|
577
|
+
'Group One': {
|
|
578
|
+
setting1: {
|
|
579
|
+
type: 'toggle',
|
|
580
|
+
label: 'Setting One'
|
|
581
|
+
}
|
|
582
|
+
},
|
|
583
|
+
'Group Two': {
|
|
584
|
+
setting2: {
|
|
585
|
+
type: 'toggle',
|
|
586
|
+
label: 'Setting Two'
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
model: {
|
|
591
|
+
setting1: true,
|
|
592
|
+
setting2: false
|
|
593
|
+
}
|
|
594
|
+
})));
|
|
595
|
+
expect(_react2.screen.getByText('Group One')).toBeInTheDocument();
|
|
596
|
+
expect(_react2.screen.getByText('Group Two')).toBeInTheDocument();
|
|
597
|
+
});
|
|
598
|
+
it('uses default callbacks when not provided', function () {
|
|
599
|
+
var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, {
|
|
600
|
+
model: {
|
|
601
|
+
test: true
|
|
602
|
+
},
|
|
603
|
+
groups: {
|
|
604
|
+
'Test Group': {
|
|
605
|
+
test: {
|
|
606
|
+
type: 'toggle',
|
|
607
|
+
label: 'Test'
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
})),
|
|
612
|
+
container = _render7.container;
|
|
613
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
614
|
+
});
|
|
615
|
+
it('filters out empty groups', function () {
|
|
616
|
+
var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, (0, _extends2["default"])({}, defaultProps, {
|
|
617
|
+
groups: {
|
|
618
|
+
'Empty Group': {},
|
|
619
|
+
'General Settings': {
|
|
620
|
+
toggleSetting: {
|
|
621
|
+
type: 'toggle',
|
|
622
|
+
label: 'Enable Feature'
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
},
|
|
626
|
+
model: {
|
|
627
|
+
toggleSetting: true
|
|
628
|
+
}
|
|
629
|
+
}))),
|
|
630
|
+
container = _render8.container;
|
|
631
|
+
expect(_react2.screen.getByText('General Settings')).toBeInTheDocument();
|
|
632
|
+
expect(_react2.screen.queryByText('Empty Group')).not.toBeInTheDocument();
|
|
633
|
+
});
|
|
634
|
+
it('renders with null model', function () {
|
|
635
|
+
var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_panel.Panel, {
|
|
636
|
+
model: null,
|
|
637
|
+
configuration: {},
|
|
638
|
+
groups: {
|
|
639
|
+
'General Settings': {
|
|
640
|
+
toggleSetting: {
|
|
641
|
+
type: 'toggle',
|
|
642
|
+
label: 'Enable Feature'
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
onChangeModel: jest.fn()
|
|
647
|
+
})),
|
|
648
|
+
container = _render9.container;
|
|
649
|
+
expect(_react2.screen.getByText('General Settings')).toBeInTheDocument();
|
|
650
|
+
});
|
|
651
|
+
});
|
|
652
|
+
});
|
|
653
|
+
//# sourceMappingURL=settings.test.js.map
|