@pie-lib/config-ui 12.2.0-next.2 → 12.2.0-next.21
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 +80 -28
- package/LICENSE.md +5 -0
- package/lib/alert-dialog.js +1 -1
- package/lib/checkbox.js +1 -1
- package/lib/choice-configuration/feedback-menu.js +1 -1
- package/lib/choice-configuration/index.js +1 -1
- package/lib/choice-utils.js +1 -1
- package/lib/feedback-config/feedback-selector.js +1 -1
- package/lib/feedback-config/group.js +1 -1
- package/lib/feedback-config/index.js +1 -1
- package/lib/form-section.js +1 -1
- package/lib/help.js +1 -1
- package/lib/index.js +1 -1
- package/lib/input.js +1 -1
- package/lib/inputs.js +1 -1
- package/lib/langs.js +1 -1
- package/lib/layout/config-layout.js +1 -1
- package/lib/layout/index.js +1 -1
- package/lib/layout/layout-contents.js +1 -1
- package/lib/layout/settings-box.js +1 -1
- package/lib/mui-box/index.js +1 -1
- package/lib/number-text-field-custom.js +1 -1
- package/lib/number-text-field.js +2 -2
- package/lib/number-text-field.js.map +1 -1
- package/lib/radio-with-label.js +1 -1
- package/lib/settings/display-size.js +1 -1
- package/lib/settings/index.js +1 -1
- package/lib/settings/panel.js +1 -1
- package/lib/settings/settings-radio-label.js +1 -1
- package/lib/settings/toggle.js +1 -1
- package/lib/tabs/index.js +1 -1
- package/lib/tags-input/index.js +1 -1
- package/lib/two-choice.js +1 -1
- package/lib/with-stateful-model.js +1 -1
- package/package.json +5 -5
- package/src/number-text-field.jsx +1 -1
- package/lib/__tests__/alert-dialog.test.js +0 -262
- package/lib/__tests__/checkbox.test.js +0 -227
- package/lib/__tests__/choice-utils.test.js +0 -14
- package/lib/__tests__/form-section.test.js +0 -252
- package/lib/__tests__/help.test.js +0 -270
- package/lib/__tests__/input.test.js +0 -268
- package/lib/__tests__/langs.test.js +0 -541
- package/lib/__tests__/number-text-field-custom.test.js +0 -362
- package/lib/__tests__/number-text-field.test.js +0 -421
- package/lib/__tests__/radio-with-label.test.js +0 -233
- package/lib/__tests__/settings-panel.test.js +0 -184
- package/lib/__tests__/settings.test.js +0 -653
- package/lib/__tests__/tabs.test.js +0 -211
- package/lib/__tests__/two-choice.test.js +0 -124
- package/lib/__tests__/with-stateful-model.test.js +0 -221
- package/lib/choice-configuration/__tests__/feedback-menu.test.js +0 -287
- package/lib/choice-configuration/__tests__/index.test.js +0 -253
- package/lib/feedback-config/__tests__/feedback-config.test.js +0 -201
- package/lib/feedback-config/__tests__/feedback-selector.test.js +0 -177
- package/lib/layout/__tests__/config.layout.test.js +0 -70
- package/lib/layout/__tests__/layout-content.test.js +0 -6
- package/lib/tags-input/__tests__/index.test.js +0 -183
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
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 _index = require("../index");
|
|
11
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
-
jest.mock('@pie-lib/editable-html-tip-tap', function () {
|
|
14
|
-
return {
|
|
15
|
-
__esModule: true,
|
|
16
|
-
"default": function _default(_ref) {
|
|
17
|
-
var markup = _ref.markup,
|
|
18
|
-
_onChange = _ref.onChange,
|
|
19
|
-
disabled = _ref.disabled;
|
|
20
|
-
return /*#__PURE__*/_react["default"].createElement("textarea", {
|
|
21
|
-
"data-testid": "editable-html",
|
|
22
|
-
defaultValue: markup || '',
|
|
23
|
-
onChange: function onChange(e) {
|
|
24
|
-
return _onChange(e.target.value);
|
|
25
|
-
},
|
|
26
|
-
disabled: disabled
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
});
|
|
31
|
-
var defaultFeedback = {
|
|
32
|
-
correct: 'Correct',
|
|
33
|
-
incorrect: 'Incorrect'
|
|
34
|
-
};
|
|
35
|
-
var data = {
|
|
36
|
-
correct: true,
|
|
37
|
-
value: 'foo',
|
|
38
|
-
label: 'Foo',
|
|
39
|
-
feedback: {
|
|
40
|
-
type: 'custom'
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
var classes = {
|
|
44
|
-
choiceConfiguration: 'choiceConfiguration'
|
|
45
|
-
};
|
|
46
|
-
describe('ChoiceConfiguration', function () {
|
|
47
|
-
var onChange = jest.fn();
|
|
48
|
-
beforeEach(function () {
|
|
49
|
-
onChange.mockClear();
|
|
50
|
-
});
|
|
51
|
-
describe('rendering', function () {
|
|
52
|
-
it('renders correctly with default props', function () {
|
|
53
|
-
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
54
|
-
classes: classes,
|
|
55
|
-
defaultFeedback: defaultFeedback,
|
|
56
|
-
data: data,
|
|
57
|
-
onChange: onChange
|
|
58
|
-
})),
|
|
59
|
-
container = _render.container;
|
|
60
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
61
|
-
});
|
|
62
|
-
it('renders with checked state', function () {
|
|
63
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
64
|
-
classes: classes,
|
|
65
|
-
defaultFeedback: defaultFeedback,
|
|
66
|
-
data: data,
|
|
67
|
-
onChange: onChange,
|
|
68
|
-
mode: "checkbox"
|
|
69
|
-
}));
|
|
70
|
-
var checkbox = _react2.screen.getByRole('checkbox');
|
|
71
|
-
expect(checkbox).toBeChecked();
|
|
72
|
-
});
|
|
73
|
-
it('renders without feedback when allowFeedBack is false', function () {
|
|
74
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
75
|
-
allowFeedBack: false,
|
|
76
|
-
classes: classes,
|
|
77
|
-
defaultFeedback: defaultFeedback,
|
|
78
|
-
data: data,
|
|
79
|
-
onChange: onChange
|
|
80
|
-
}));
|
|
81
|
-
expect(_react2.screen.queryByRole('button', {
|
|
82
|
-
name: /feedback/i
|
|
83
|
-
})).not.toBeInTheDocument();
|
|
84
|
-
});
|
|
85
|
-
it('renders without delete button when allowDelete is false', function () {
|
|
86
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
87
|
-
allowDelete: false,
|
|
88
|
-
classes: classes,
|
|
89
|
-
defaultFeedback: defaultFeedback,
|
|
90
|
-
data: data,
|
|
91
|
-
onChange: onChange
|
|
92
|
-
}));
|
|
93
|
-
expect(_react2.screen.queryByRole('button', {
|
|
94
|
-
name: /delete/i
|
|
95
|
-
})).not.toBeInTheDocument();
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
describe('user interactions', function () {
|
|
99
|
-
it('calls onChange when label is edited', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
100
|
-
var user, editableHtmlElements, editableHtml;
|
|
101
|
-
return _regenerator["default"].wrap(function (_context) {
|
|
102
|
-
while (1) switch (_context.prev = _context.next) {
|
|
103
|
-
case 0:
|
|
104
|
-
user = _userEvent["default"].setup();
|
|
105
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
106
|
-
classes: classes,
|
|
107
|
-
defaultFeedback: defaultFeedback,
|
|
108
|
-
data: data,
|
|
109
|
-
onChange: onChange
|
|
110
|
-
}));
|
|
111
|
-
editableHtmlElements = _react2.screen.getAllByTestId('editable-html');
|
|
112
|
-
editableHtml = editableHtmlElements[0];
|
|
113
|
-
_context.next = 1;
|
|
114
|
-
return user.clear(editableHtml);
|
|
115
|
-
case 1:
|
|
116
|
-
_context.next = 2;
|
|
117
|
-
return user.type(editableHtml, 'new label');
|
|
118
|
-
case 2:
|
|
119
|
-
expect(onChange).toHaveBeenCalled();
|
|
120
|
-
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
121
|
-
label: expect.stringContaining('new label')
|
|
122
|
-
}));
|
|
123
|
-
case 3:
|
|
124
|
-
case "end":
|
|
125
|
-
return _context.stop();
|
|
126
|
-
}
|
|
127
|
-
}, _callee);
|
|
128
|
-
})));
|
|
129
|
-
it('calls onChange when checkbox is toggled', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
130
|
-
var user, checkbox;
|
|
131
|
-
return _regenerator["default"].wrap(function (_context2) {
|
|
132
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
133
|
-
case 0:
|
|
134
|
-
user = _userEvent["default"].setup();
|
|
135
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
136
|
-
classes: classes,
|
|
137
|
-
defaultFeedback: defaultFeedback,
|
|
138
|
-
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
139
|
-
correct: false
|
|
140
|
-
}),
|
|
141
|
-
onChange: onChange,
|
|
142
|
-
mode: "checkbox"
|
|
143
|
-
}));
|
|
144
|
-
checkbox = _react2.screen.getByRole('checkbox');
|
|
145
|
-
_context2.next = 1;
|
|
146
|
-
return user.click(checkbox);
|
|
147
|
-
case 1:
|
|
148
|
-
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
149
|
-
correct: true
|
|
150
|
-
}));
|
|
151
|
-
case 2:
|
|
152
|
-
case "end":
|
|
153
|
-
return _context2.stop();
|
|
154
|
-
}
|
|
155
|
-
}, _callee2);
|
|
156
|
-
})));
|
|
157
|
-
});
|
|
158
|
-
describe('prop variations', function () {
|
|
159
|
-
it('renders with radio mode instead of checkbox', function () {
|
|
160
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
161
|
-
classes: classes,
|
|
162
|
-
defaultFeedback: defaultFeedback,
|
|
163
|
-
data: data,
|
|
164
|
-
onChange: onChange,
|
|
165
|
-
mode: "radio"
|
|
166
|
-
}));
|
|
167
|
-
var radio = _react2.screen.getByRole('radio');
|
|
168
|
-
expect(radio).toBeInTheDocument();
|
|
169
|
-
});
|
|
170
|
-
it('renders with disabled state', function () {
|
|
171
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
172
|
-
classes: classes,
|
|
173
|
-
defaultFeedback: defaultFeedback,
|
|
174
|
-
data: data,
|
|
175
|
-
onChange: onChange,
|
|
176
|
-
disabled: true,
|
|
177
|
-
mode: "checkbox"
|
|
178
|
-
}));
|
|
179
|
-
var checkbox = _react2.screen.getByRole('checkbox');
|
|
180
|
-
expect(checkbox).toBeInTheDocument();
|
|
181
|
-
});
|
|
182
|
-
it('renders with custom feedback type', function () {
|
|
183
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
184
|
-
classes: classes,
|
|
185
|
-
defaultFeedback: defaultFeedback,
|
|
186
|
-
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
187
|
-
feedback: {
|
|
188
|
-
type: 'custom'
|
|
189
|
-
}
|
|
190
|
-
}),
|
|
191
|
-
onChange: onChange,
|
|
192
|
-
mode: "checkbox"
|
|
193
|
-
}));
|
|
194
|
-
var editableElements = _react2.screen.getAllByTestId('editable-html');
|
|
195
|
-
expect(editableElements.length).toBeGreaterThan(0);
|
|
196
|
-
});
|
|
197
|
-
it('renders with incorrect answer', function () {
|
|
198
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
199
|
-
classes: classes,
|
|
200
|
-
defaultFeedback: defaultFeedback,
|
|
201
|
-
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
202
|
-
correct: false
|
|
203
|
-
}),
|
|
204
|
-
onChange: onChange,
|
|
205
|
-
mode: "checkbox"
|
|
206
|
-
}));
|
|
207
|
-
var checkbox = _react2.screen.getByRole('checkbox');
|
|
208
|
-
expect(checkbox).not.toBeChecked();
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
describe('edge cases', function () {
|
|
212
|
-
it('handles data with empty label', function () {
|
|
213
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
214
|
-
classes: classes,
|
|
215
|
-
defaultFeedback: defaultFeedback,
|
|
216
|
-
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
217
|
-
label: ''
|
|
218
|
-
}),
|
|
219
|
-
onChange: onChange
|
|
220
|
-
}));
|
|
221
|
-
var editableElements = _react2.screen.getAllByTestId('editable-html');
|
|
222
|
-
expect(editableElements.length).toBeGreaterThan(0);
|
|
223
|
-
});
|
|
224
|
-
it('handles multiple feedback types', function () {
|
|
225
|
-
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
226
|
-
classes: classes,
|
|
227
|
-
defaultFeedback: defaultFeedback,
|
|
228
|
-
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
229
|
-
feedback: {
|
|
230
|
-
type: 'default'
|
|
231
|
-
}
|
|
232
|
-
}),
|
|
233
|
-
onChange: onChange
|
|
234
|
-
})),
|
|
235
|
-
rerender = _render2.rerender;
|
|
236
|
-
var editableElements = _react2.screen.getAllByTestId('editable-html');
|
|
237
|
-
expect(editableElements.length).toBeGreaterThan(0);
|
|
238
|
-
rerender(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
|
|
239
|
-
classes: classes,
|
|
240
|
-
defaultFeedback: defaultFeedback,
|
|
241
|
-
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
242
|
-
feedback: {
|
|
243
|
-
type: 'custom'
|
|
244
|
-
}
|
|
245
|
-
}),
|
|
246
|
-
onChange: onChange
|
|
247
|
-
}));
|
|
248
|
-
editableElements = _react2.screen.getAllByTestId('editable-html');
|
|
249
|
-
expect(editableElements.length).toBeGreaterThan(0);
|
|
250
|
-
});
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlckV2ZW50IiwiX2luZGV4Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX3JlZiIsIm1hcmt1cCIsIm9uQ2hhbmdlIiwiZGlzYWJsZWQiLCJjcmVhdGVFbGVtZW50IiwiZGVmYXVsdFZhbHVlIiwidGFyZ2V0IiwidmFsdWUiLCJkZWZhdWx0RmVlZGJhY2siLCJjb3JyZWN0IiwiaW5jb3JyZWN0IiwiZGF0YSIsImxhYmVsIiwiZmVlZGJhY2siLCJ0eXBlIiwiY2xhc3NlcyIsImNob2ljZUNvbmZpZ3VyYXRpb24iLCJkZXNjcmliZSIsImZuIiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsIml0IiwiX3JlbmRlciIsInJlbmRlciIsIkNob2ljZUNvbmZpZ3VyYXRpb24iLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJtb2RlIiwiY2hlY2tib3giLCJzY3JlZW4iLCJnZXRCeVJvbGUiLCJ0b0JlQ2hlY2tlZCIsImFsbG93RmVlZEJhY2siLCJxdWVyeUJ5Um9sZSIsIm5hbWUiLCJub3QiLCJhbGxvd0RlbGV0ZSIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwidXNlciIsImVkaXRhYmxlSHRtbEVsZW1lbnRzIiwiZWRpdGFibGVIdG1sIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImdldEFsbEJ5VGVzdElkIiwiY2xlYXIiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJvYmplY3RDb250YWluaW5nIiwic3RyaW5nQ29udGFpbmluZyIsInN0b3AiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsImNsaWNrIiwicmFkaW8iLCJlZGl0YWJsZUVsZW1lbnRzIiwidG9CZUdyZWF0ZXJUaGFuIiwiX3JlbmRlcjIiLCJyZXJlbmRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jaG9pY2UtY29uZmlndXJhdGlvbi9fX3Rlc3RzX18vaW5kZXgudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciwgc2NyZWVuIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgdXNlckV2ZW50IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvdXNlci1ldmVudCc7XG5pbXBvcnQgeyBDaG9pY2VDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwtdGlwLXRhcCcsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6ICh7IG1hcmt1cCwgb25DaGFuZ2UsIGRpc2FibGVkIH0pID0+IChcbiAgICA8dGV4dGFyZWFcbiAgICAgIGRhdGEtdGVzdGlkPVwiZWRpdGFibGUtaHRtbFwiXG4gICAgICBkZWZhdWx0VmFsdWU9e21hcmt1cCB8fCAnJ31cbiAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gb25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgIC8+XG4gICksXG59KSk7XG5cbmNvbnN0IGRlZmF1bHRGZWVkYmFjayA9IHtcbiAgY29ycmVjdDogJ0NvcnJlY3QnLFxuICBpbmNvcnJlY3Q6ICdJbmNvcnJlY3QnLFxufTtcblxuY29uc3QgZGF0YSA9IHtcbiAgY29ycmVjdDogdHJ1ZSxcbiAgdmFsdWU6ICdmb28nLFxuICBsYWJlbDogJ0ZvbycsXG4gIGZlZWRiYWNrOiB7XG4gICAgdHlwZTogJ2N1c3RvbScsXG4gIH0sXG59O1xuXG5jb25zdCBjbGFzc2VzID0ge1xuICBjaG9pY2VDb25maWd1cmF0aW9uOiAnY2hvaWNlQ29uZmlndXJhdGlvbicsXG59O1xuXG5kZXNjcmliZSgnQ2hvaWNlQ29uZmlndXJhdGlvbicsICgpID0+IHtcbiAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UubW9ja0NsZWFyKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uIGNsYXNzZXM9e2NsYXNzZXN9IGRlZmF1bHRGZWVkYmFjaz17ZGVmYXVsdEZlZWRiYWNrfSBkYXRhPXtkYXRhfSBvbkNoYW5nZT17b25DaGFuZ2V9IC8+LFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggY2hlY2tlZCBzdGF0ZScsICgpID0+IHtcbiAgICAgIHJlbmRlcihcbiAgICAgICAgPENob2ljZUNvbmZpZ3VyYXRpb25cbiAgICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICAgIGRlZmF1bHRGZWVkYmFjaz17ZGVmYXVsdEZlZWRiYWNrfVxuICAgICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIG1vZGU9XCJjaGVja2JveFwiXG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNoZWNrYm94ID0gc2NyZWVuLmdldEJ5Um9sZSgnY2hlY2tib3gnKTtcbiAgICAgIGV4cGVjdChjaGVja2JveCkudG9CZUNoZWNrZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgZmVlZGJhY2sgd2hlbiBhbGxvd0ZlZWRCYWNrIGlzIGZhbHNlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKFxuICAgICAgICA8Q2hvaWNlQ29uZmlndXJhdGlvblxuICAgICAgICAgIGFsbG93RmVlZEJhY2s9e2ZhbHNlfVxuICAgICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAgICAgZGVmYXVsdEZlZWRiYWNrPXtkZWZhdWx0RmVlZGJhY2t9XG4gICAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogL2ZlZWRiYWNrL2kgfSkpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBkZWxldGUgYnV0dG9uIHdoZW4gYWxsb3dEZWxldGUgaXMgZmFsc2UnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoXG4gICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uXG4gICAgICAgICAgYWxsb3dEZWxldGU9e2ZhbHNlfVxuICAgICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAgICAgZGVmYXVsdEZlZWRiYWNrPXtkZWZhdWx0RmVlZGJhY2t9XG4gICAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogL2RlbGV0ZS9pIH0pKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3VzZXIgaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aGVuIGxhYmVsIGlzIGVkaXRlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlcihcbiAgICAgICAgPENob2ljZUNvbmZpZ3VyYXRpb24gY2xhc3Nlcz17Y2xhc3Nlc30gZGVmYXVsdEZlZWRiYWNrPXtkZWZhdWx0RmVlZGJhY2t9IGRhdGE9e2RhdGF9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBlZGl0YWJsZUh0bWxFbGVtZW50cyA9IHNjcmVlbi5nZXRBbGxCeVRlc3RJZCgnZWRpdGFibGUtaHRtbCcpO1xuICAgICAgY29uc3QgZWRpdGFibGVIdG1sID0gZWRpdGFibGVIdG1sRWxlbWVudHNbMF07XG4gICAgICBhd2FpdCB1c2VyLmNsZWFyKGVkaXRhYmxlSHRtbCk7XG4gICAgICBhd2FpdCB1c2VyLnR5cGUoZWRpdGFibGVIdG1sLCAnbmV3IGxhYmVsJyk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGxhYmVsOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnbmV3IGxhYmVsJyksXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aGVuIGNoZWNrYm94IGlzIHRvZ2dsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXIoXG4gICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uXG4gICAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgICBkZWZhdWx0RmVlZGJhY2s9e2RlZmF1bHRGZWVkYmFja31cbiAgICAgICAgICBkYXRhPXt7IC4uLmRhdGEsIGNvcnJlY3Q6IGZhbHNlIH19XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIG1vZGU9XCJjaGVja2JveFwiXG4gICAgICAgIC8+LFxuICAgICAgKTtcblxuICAgICAgY29uc3QgY2hlY2tib3ggPSBzY3JlZW4uZ2V0QnlSb2xlKCdjaGVja2JveCcpO1xuICAgICAgYXdhaXQgdXNlci5jbGljayhjaGVja2JveCk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwcm9wIHZhcmlhdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCByYWRpbyBtb2RlIGluc3RlYWQgb2YgY2hlY2tib3gnLCAoKSA9PiB7XG4gICAgICByZW5kZXIoXG4gICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uXG4gICAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgICBkZWZhdWx0RmVlZGJhY2s9e2RlZmF1bHRGZWVkYmFja31cbiAgICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBtb2RlPVwicmFkaW9cIlxuICAgICAgICAvPixcbiAgICAgICk7XG4gICAgICBjb25zdCByYWRpbyA9IHNjcmVlbi5nZXRCeVJvbGUoJ3JhZGlvJyk7XG4gICAgICBleHBlY3QocmFkaW8pLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGRpc2FibGVkIHN0YXRlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKFxuICAgICAgICA8Q2hvaWNlQ29uZmlndXJhdGlvblxuICAgICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAgICAgZGVmYXVsdEZlZWRiYWNrPXtkZWZhdWx0RmVlZGJhY2t9XG4gICAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgZGlzYWJsZWQ9e3RydWV9XG4gICAgICAgICAgbW9kZT1cImNoZWNrYm94XCJcbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgICAgY29uc3QgY2hlY2tib3ggPSBzY3JlZW4uZ2V0QnlSb2xlKCdjaGVja2JveCcpO1xuICAgICAgZXhwZWN0KGNoZWNrYm94KS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBjdXN0b20gZmVlZGJhY2sgdHlwZScsICgpID0+IHtcbiAgICAgIHJlbmRlcihcbiAgICAgICAgPENob2ljZUNvbmZpZ3VyYXRpb25cbiAgICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICAgIGRlZmF1bHRGZWVkYmFjaz17ZGVmYXVsdEZlZWRiYWNrfVxuICAgICAgICAgIGRhdGE9e3sgLi4uZGF0YSwgZmVlZGJhY2s6IHsgdHlwZTogJ2N1c3RvbScgfSB9fVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBtb2RlPVwiY2hlY2tib3hcIlxuICAgICAgICAvPixcbiAgICAgICk7XG4gICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnRzID0gc2NyZWVuLmdldEFsbEJ5VGVzdElkKCdlZGl0YWJsZS1odG1sJyk7XG4gICAgICBleHBlY3QoZWRpdGFibGVFbGVtZW50cy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggaW5jb3JyZWN0IGFuc3dlcicsICgpID0+IHtcbiAgICAgIHJlbmRlcihcbiAgICAgICAgPENob2ljZUNvbmZpZ3VyYXRpb25cbiAgICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICAgIGRlZmF1bHRGZWVkYmFjaz17ZGVmYXVsdEZlZWRiYWNrfVxuICAgICAgICAgIGRhdGE9e3sgLi4uZGF0YSwgY29ycmVjdDogZmFsc2UgfX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgbW9kZT1cImNoZWNrYm94XCJcbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgICAgY29uc3QgY2hlY2tib3ggPSBzY3JlZW4uZ2V0QnlSb2xlKCdjaGVja2JveCcpO1xuICAgICAgZXhwZWN0KGNoZWNrYm94KS5ub3QudG9CZUNoZWNrZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2VkZ2UgY2FzZXMnLCAoKSA9PiB7XG4gICAgaXQoJ2hhbmRsZXMgZGF0YSB3aXRoIGVtcHR5IGxhYmVsJywgKCkgPT4ge1xuICAgICAgcmVuZGVyKFxuICAgICAgICA8Q2hvaWNlQ29uZmlndXJhdGlvblxuICAgICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAgICAgZGVmYXVsdEZlZWRiYWNrPXtkZWZhdWx0RmVlZGJhY2t9XG4gICAgICAgICAgZGF0YT17eyAuLi5kYXRhLCBsYWJlbDogJycgfX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGVkaXRhYmxlRWxlbWVudHMgPSBzY3JlZW4uZ2V0QWxsQnlUZXN0SWQoJ2VkaXRhYmxlLWh0bWwnKTtcbiAgICAgIGV4cGVjdChlZGl0YWJsZUVsZW1lbnRzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbXVsdGlwbGUgZmVlZGJhY2sgdHlwZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IHJlcmVuZGVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uXG4gICAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgICBkZWZhdWx0RmVlZGJhY2s9e2RlZmF1bHRGZWVkYmFja31cbiAgICAgICAgICBkYXRhPXt7IC4uLmRhdGEsIGZlZWRiYWNrOiB7IHR5cGU6ICdkZWZhdWx0JyB9IH19XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAvPixcbiAgICAgICk7XG5cbiAgICAgIGxldCBlZGl0YWJsZUVsZW1lbnRzID0gc2NyZWVuLmdldEFsbEJ5VGVzdElkKCdlZGl0YWJsZS1odG1sJyk7XG4gICAgICBleHBlY3QoZWRpdGFibGVFbGVtZW50cy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKTtcblxuICAgICAgcmVyZW5kZXIoXG4gICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uXG4gICAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgICBkZWZhdWx0RmVlZGJhY2s9e2RlZmF1bHRGZWVkYmFja31cbiAgICAgICAgICBkYXRhPXt7IC4uLmRhdGEsIGZlZWRiYWNrOiB7IHR5cGU6ICdjdXN0b20nIH0gfX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIC8+LFxuICAgICAgKTtcblxuICAgICAgZWRpdGFibGVFbGVtZW50cyA9IHNjcmVlbi5nZXRBbGxCeVRlc3RJZCgnZWRpdGFibGUtaHRtbCcpO1xuICAgICAgZXhwZWN0KGVkaXRhYmxlRWxlbWVudHMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUgsc0JBQUEs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
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _react2 = require("@testing-library/react");
|
|
9
|
-
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
|
-
var _index = require("../index");
|
|
11
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
-
// Mock FeedbackSelector to simplify testing
|
|
14
|
-
jest.mock('../feedback-selector', function () {
|
|
15
|
-
return function FeedbackSelector(_ref) {
|
|
16
|
-
var label = _ref.label,
|
|
17
|
-
feedback = _ref.feedback,
|
|
18
|
-
_onChange = _ref.onChange;
|
|
19
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
20
|
-
"data-testid": "feedback-selector"
|
|
21
|
-
}, /*#__PURE__*/_react["default"].createElement("label", null, label), /*#__PURE__*/_react["default"].createElement("select", {
|
|
22
|
-
"aria-label": label,
|
|
23
|
-
value: feedback.type,
|
|
24
|
-
onChange: function onChange(e) {
|
|
25
|
-
return _onChange(_objectSpread(_objectSpread({}, feedback), {}, {
|
|
26
|
-
type: e.target.value
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
}, /*#__PURE__*/_react["default"].createElement("option", {
|
|
30
|
-
value: "default"
|
|
31
|
-
}, "Default"), /*#__PURE__*/_react["default"].createElement("option", {
|
|
32
|
-
value: "custom"
|
|
33
|
-
}, "Custom"), /*#__PURE__*/_react["default"].createElement("option", {
|
|
34
|
-
value: "none"
|
|
35
|
-
}, "None")));
|
|
36
|
-
};
|
|
37
|
-
});
|
|
38
|
-
describe('FeedbackConfig', function () {
|
|
39
|
-
var onChange = jest.fn();
|
|
40
|
-
beforeEach(function () {
|
|
41
|
-
onChange.mockClear();
|
|
42
|
-
});
|
|
43
|
-
describe('rendering', function () {
|
|
44
|
-
it('renders with default feedback types', function () {
|
|
45
|
-
var feedback = (0, _index.buildDefaults)();
|
|
46
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
|
|
47
|
-
feedback: feedback,
|
|
48
|
-
onChange: onChange
|
|
49
|
-
}));
|
|
50
|
-
expect(_react2.screen.getByText('Feedback')).toBeInTheDocument();
|
|
51
|
-
expect(_react2.screen.getByText('If correct, show')).toBeInTheDocument();
|
|
52
|
-
expect(_react2.screen.getByText('If partially correct, show')).toBeInTheDocument();
|
|
53
|
-
expect(_react2.screen.getByText('If incorrect, show')).toBeInTheDocument();
|
|
54
|
-
});
|
|
55
|
-
it('renders all three feedback selectors by default', function () {
|
|
56
|
-
var feedback = (0, _index.buildDefaults)();
|
|
57
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
|
|
58
|
-
feedback: feedback,
|
|
59
|
-
onChange: onChange
|
|
60
|
-
}));
|
|
61
|
-
var selectors = _react2.screen.getAllByTestId('feedback-selector');
|
|
62
|
-
expect(selectors).toHaveLength(3);
|
|
63
|
-
});
|
|
64
|
-
it('does not render partial feedback selector when allowPartial is false', function () {
|
|
65
|
-
var feedback = (0, _index.buildDefaults)();
|
|
66
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
|
|
67
|
-
allowPartial: false,
|
|
68
|
-
feedback: feedback,
|
|
69
|
-
onChange: onChange
|
|
70
|
-
}));
|
|
71
|
-
expect(_react2.screen.getByText('If correct, show')).toBeInTheDocument();
|
|
72
|
-
expect(_react2.screen.queryByText('If partially correct, show')).not.toBeInTheDocument();
|
|
73
|
-
expect(_react2.screen.getByText('If incorrect, show')).toBeInTheDocument();
|
|
74
|
-
var selectors = _react2.screen.getAllByTestId('feedback-selector');
|
|
75
|
-
expect(selectors).toHaveLength(2);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe('user interactions', function () {
|
|
79
|
-
it('calls onChange when correct feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
80
|
-
var user, feedback, correctSelect;
|
|
81
|
-
return _regenerator["default"].wrap(function (_context) {
|
|
82
|
-
while (1) switch (_context.prev = _context.next) {
|
|
83
|
-
case 0:
|
|
84
|
-
user = _userEvent["default"].setup();
|
|
85
|
-
feedback = (0, _index.buildDefaults)();
|
|
86
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
|
|
87
|
-
feedback: feedback,
|
|
88
|
-
onChange: onChange
|
|
89
|
-
}));
|
|
90
|
-
correctSelect = _react2.screen.getByLabelText('If correct, show');
|
|
91
|
-
_context.next = 1;
|
|
92
|
-
return user.selectOptions(correctSelect, 'custom');
|
|
93
|
-
case 1:
|
|
94
|
-
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
95
|
-
correct: expect.objectContaining({
|
|
96
|
-
type: 'custom'
|
|
97
|
-
})
|
|
98
|
-
}));
|
|
99
|
-
case 2:
|
|
100
|
-
case "end":
|
|
101
|
-
return _context.stop();
|
|
102
|
-
}
|
|
103
|
-
}, _callee);
|
|
104
|
-
})));
|
|
105
|
-
it('calls onChange when incorrect feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
106
|
-
var user, feedback, incorrectSelect;
|
|
107
|
-
return _regenerator["default"].wrap(function (_context2) {
|
|
108
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
109
|
-
case 0:
|
|
110
|
-
user = _userEvent["default"].setup();
|
|
111
|
-
feedback = (0, _index.buildDefaults)();
|
|
112
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
|
|
113
|
-
feedback: feedback,
|
|
114
|
-
onChange: onChange
|
|
115
|
-
}));
|
|
116
|
-
incorrectSelect = _react2.screen.getByLabelText('If incorrect, show');
|
|
117
|
-
_context2.next = 1;
|
|
118
|
-
return user.selectOptions(incorrectSelect, 'none');
|
|
119
|
-
case 1:
|
|
120
|
-
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
121
|
-
incorrect: expect.objectContaining({
|
|
122
|
-
type: 'none'
|
|
123
|
-
})
|
|
124
|
-
}));
|
|
125
|
-
case 2:
|
|
126
|
-
case "end":
|
|
127
|
-
return _context2.stop();
|
|
128
|
-
}
|
|
129
|
-
}, _callee2);
|
|
130
|
-
})));
|
|
131
|
-
it('calls onChange when partial feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
132
|
-
var user, feedback, partialSelect;
|
|
133
|
-
return _regenerator["default"].wrap(function (_context3) {
|
|
134
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
135
|
-
case 0:
|
|
136
|
-
user = _userEvent["default"].setup();
|
|
137
|
-
feedback = (0, _index.buildDefaults)();
|
|
138
|
-
(0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
|
|
139
|
-
feedback: feedback,
|
|
140
|
-
onChange: onChange
|
|
141
|
-
}));
|
|
142
|
-
partialSelect = _react2.screen.getByLabelText('If partially correct, show');
|
|
143
|
-
_context3.next = 1;
|
|
144
|
-
return user.selectOptions(partialSelect, 'custom');
|
|
145
|
-
case 1:
|
|
146
|
-
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
|
|
147
|
-
partial: expect.objectContaining({
|
|
148
|
-
type: 'custom'
|
|
149
|
-
})
|
|
150
|
-
}));
|
|
151
|
-
case 2:
|
|
152
|
-
case "end":
|
|
153
|
-
return _context3.stop();
|
|
154
|
-
}
|
|
155
|
-
}, _callee3);
|
|
156
|
-
})));
|
|
157
|
-
});
|
|
158
|
-
describe('buildDefaults helper', function () {
|
|
159
|
-
it('returns default feedback configuration', function () {
|
|
160
|
-
var defaults = (0, _index.buildDefaults)();
|
|
161
|
-
expect(defaults).toEqual({
|
|
162
|
-
correct: {
|
|
163
|
-
type: 'default',
|
|
164
|
-
"default": 'Correct'
|
|
165
|
-
},
|
|
166
|
-
incorrect: {
|
|
167
|
-
type: 'default',
|
|
168
|
-
"default": 'Incorrect'
|
|
169
|
-
},
|
|
170
|
-
partial: {
|
|
171
|
-
type: 'default',
|
|
172
|
-
"default": 'Nearly'
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
it('merges custom values with defaults', function () {
|
|
177
|
-
var defaults = (0, _index.buildDefaults)({
|
|
178
|
-
correct: {
|
|
179
|
-
type: 'custom',
|
|
180
|
-
custom: 'Great job!'
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
expect(defaults).toEqual({
|
|
184
|
-
correct: {
|
|
185
|
-
type: 'custom',
|
|
186
|
-
"default": 'Correct',
|
|
187
|
-
custom: 'Great job!'
|
|
188
|
-
},
|
|
189
|
-
incorrect: {
|
|
190
|
-
type: 'default',
|
|
191
|
-
"default": 'Incorrect'
|
|
192
|
-
},
|
|
193
|
-
partial: {
|
|
194
|
-
type: 'default',
|
|
195
|
-
"default": 'Nearly'
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
});
|
|
201
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlckV2ZW50IiwiX2luZGV4Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsIkZlZWRiYWNrU2VsZWN0b3IiLCJfcmVmIiwibGFiZWwiLCJmZWVkYmFjayIsIm9uQ2hhbmdlIiwiY3JlYXRlRWxlbWVudCIsInZhbHVlIiwidHlwZSIsInRhcmdldCIsImRlc2NyaWJlIiwiZm4iLCJiZWZvcmVFYWNoIiwibW9ja0NsZWFyIiwiaXQiLCJidWlsZERlZmF1bHRzIiwicmVuZGVyIiwiRmVlZGJhY2tDb25maWciLCJleHBlY3QiLCJzY3JlZW4iLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNlbGVjdG9ycyIsImdldEFsbEJ5VGVzdElkIiwidG9IYXZlTGVuZ3RoIiwiYWxsb3dQYXJ0aWFsIiwicXVlcnlCeVRleHQiLCJub3QiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInVzZXIiLCJjb3JyZWN0U2VsZWN0Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImdldEJ5TGFiZWxUZXh0Iiwic2VsZWN0T3B0aW9ucyIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwib2JqZWN0Q29udGFpbmluZyIsImNvcnJlY3QiLCJzdG9wIiwiX2NhbGxlZTIiLCJpbmNvcnJlY3RTZWxlY3QiLCJfY29udGV4dDIiLCJpbmNvcnJlY3QiLCJfY2FsbGVlMyIsInBhcnRpYWxTZWxlY3QiLCJfY29udGV4dDMiLCJwYXJ0aWFsIiwiZGVmYXVsdHMiLCJ0b0VxdWFsIiwiY3VzdG9tIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZlZWRiYWNrLWNvbmZpZy9fX3Rlc3RzX18vZmVlZGJhY2stY29uZmlnLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIsIHNjcmVlbiB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHVzZXJFdmVudCBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3VzZXItZXZlbnQnO1xuaW1wb3J0IHsgYnVpbGREZWZhdWx0cywgRmVlZGJhY2tDb25maWcgfSBmcm9tICcuLi9pbmRleCc7XG5cbi8vIE1vY2sgRmVlZGJhY2tTZWxlY3RvciB0byBzaW1wbGlmeSB0ZXN0aW5nXG5qZXN0Lm1vY2soJy4uL2ZlZWRiYWNrLXNlbGVjdG9yJywgKCkgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gRmVlZGJhY2tTZWxlY3Rvcih7IGxhYmVsLCBmZWVkYmFjaywgb25DaGFuZ2UgfSkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGRhdGEtdGVzdGlkPVwiZmVlZGJhY2stc2VsZWN0b3JcIj5cbiAgICAgICAgPGxhYmVsPntsYWJlbH08L2xhYmVsPlxuICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgdmFsdWU9e2ZlZWRiYWNrLnR5cGV9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBvbkNoYW5nZSh7IC4uLmZlZWRiYWNrLCB0eXBlOiBlLnRhcmdldC52YWx1ZSB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkZWZhdWx0XCI+RGVmYXVsdDwvb3B0aW9uPlxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJjdXN0b21cIj5DdXN0b208L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibm9uZVwiPk5vbmU8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xufSk7XG5cbmRlc2NyaWJlKCdGZWVkYmFja0NvbmZpZycsICgpID0+IHtcbiAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UubW9ja0NsZWFyKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkZWZhdWx0IGZlZWRiYWNrIHR5cGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmVlZGJhY2sgPSBidWlsZERlZmF1bHRzKCk7XG5cbiAgICAgIHJlbmRlcig8RmVlZGJhY2tDb25maWcgZmVlZGJhY2s9e2ZlZWRiYWNrfSBvbkNoYW5nZT17b25DaGFuZ2V9IC8+KTtcblxuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0ZlZWRiYWNrJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnSWYgY29ycmVjdCwgc2hvdycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0lmIHBhcnRpYWxseSBjb3JyZWN0LCBzaG93JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnSWYgaW5jb3JyZWN0LCBzaG93JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbGwgdGhyZWUgZmVlZGJhY2sgc2VsZWN0b3JzIGJ5IGRlZmF1bHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmZWVkYmFjayA9IGJ1aWxkRGVmYXVsdHMoKTtcblxuICAgICAgcmVuZGVyKDxGZWVkYmFja0NvbmZpZyBmZWVkYmFjaz17ZmVlZGJhY2t9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4pO1xuXG4gICAgICBjb25zdCBzZWxlY3RvcnMgPSBzY3JlZW4uZ2V0QWxsQnlUZXN0SWQoJ2ZlZWRiYWNrLXNlbGVjdG9yJyk7XG4gICAgICBleHBlY3Qoc2VsZWN0b3JzKS50b0hhdmVMZW5ndGgoMyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgcmVuZGVyIHBhcnRpYWwgZmVlZGJhY2sgc2VsZWN0b3Igd2hlbiBhbGxvd1BhcnRpYWwgaXMgZmFsc2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmZWVkYmFjayA9IGJ1aWxkRGVmYXVsdHMoKTtcblxuICAgICAgcmVuZGVyKDxGZWVkYmFja0NvbmZpZyBhbGxvd1BhcnRpYWw9e2ZhbHNlfSBmZWVkYmFjaz17ZmVlZGJhY2t9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4pO1xuXG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnSWYgY29ycmVjdCwgc2hvdycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgnSWYgcGFydGlhbGx5IGNvcnJlY3QsIHNob3cnKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnSWYgaW5jb3JyZWN0LCBzaG93JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG5cbiAgICAgIGNvbnN0IHNlbGVjdG9ycyA9IHNjcmVlbi5nZXRBbGxCeVRlc3RJZCgnZmVlZGJhY2stc2VsZWN0b3InKTtcbiAgICAgIGV4cGVjdChzZWxlY3RvcnMpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3VzZXIgaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aGVuIGNvcnJlY3QgZmVlZGJhY2sgdHlwZSBjaGFuZ2VzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJFdmVudC5zZXR1cCgpO1xuICAgICAgY29uc3QgZmVlZGJhY2sgPSBidWlsZERlZmF1bHRzKCk7XG5cbiAgICAgIHJlbmRlcig8RmVlZGJhY2tDb25maWcgZmVlZGJhY2s9e2ZlZWRiYWNrfSBvbkNoYW5nZT17b25DaGFuZ2V9IC8+KTtcblxuICAgICAgY29uc3QgY29ycmVjdFNlbGVjdCA9IHNjcmVlbi5nZXRCeUxhYmVsVGV4dCgnSWYgY29ycmVjdCwgc2hvdycpO1xuICAgICAgYXdhaXQgdXNlci5zZWxlY3RPcHRpb25zKGNvcnJlY3RTZWxlY3QsICdjdXN0b20nKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvcnJlY3Q6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHsgdHlwZTogJ2N1c3RvbScgfSksXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aGVuIGluY29ycmVjdCBmZWVkYmFjayB0eXBlIGNoYW5nZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICBjb25zdCBmZWVkYmFjayA9IGJ1aWxkRGVmYXVsdHMoKTtcblxuICAgICAgcmVuZGVyKDxGZWVkYmFja0NvbmZpZyBmZWVkYmFjaz17ZmVlZGJhY2t9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4pO1xuXG4gICAgICBjb25zdCBpbmNvcnJlY3RTZWxlY3QgPSBzY3JlZW4uZ2V0QnlMYWJlbFRleHQoJ0lmIGluY29ycmVjdCwgc2hvdycpO1xuICAgICAgYXdhaXQgdXNlci5zZWxlY3RPcHRpb25zKGluY29ycmVjdFNlbGVjdCwgJ25vbmUnKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGluY29ycmVjdDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyB0eXBlOiAnbm9uZScgfSksXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aGVuIHBhcnRpYWwgZmVlZGJhY2sgdHlwZSBjaGFuZ2VzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJFdmVudC5zZXR1cCgpO1xuICAgICAgY29uc3QgZmVlZGJhY2sgPSBidWlsZERlZmF1bHRzKCk7XG5cbiAgICAgIHJlbmRlcig8RmVlZGJhY2tDb25maWcgZmVlZGJhY2s9e2ZlZWRiYWNrfSBvbkNoYW5nZT17b25DaGFuZ2V9IC8+KTtcblxuICAgICAgY29uc3QgcGFydGlhbFNlbGVjdCA9IHNjcmVlbi5nZXRCeUxhYmVsVGV4dCgnSWYgcGFydGlhbGx5IGNvcnJlY3QsIHNob3cnKTtcbiAgICAgIGF3YWl0IHVzZXIuc2VsZWN0T3B0aW9ucyhwYXJ0aWFsU2VsZWN0LCAnY3VzdG9tJyk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBwYXJ0aWFsOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7IHR5cGU6ICdjdXN0b20nIH0pLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdidWlsZERlZmF1bHRzIGhlbHBlcicsICgpID0+IHtcbiAgICBpdCgncmV0dXJucyBkZWZhdWx0IGZlZWRiYWNrIGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0cyA9IGJ1aWxkRGVmYXVsdHMoKTtcblxuICAgICAgZXhwZWN0KGRlZmF1bHRzKS50b0VxdWFsKHtcbiAgICAgICAgY29ycmVjdDogeyB0eXBlOiAnZGVmYXVsdCcsIGRlZmF1bHQ6ICdDb3JyZWN0JyB9LFxuICAgICAgICBpbmNvcnJlY3Q6IHsgdHlwZTogJ2RlZmF1bHQnLCBkZWZhdWx0OiAnSW5jb3JyZWN0JyB9LFxuICAgICAgICBwYXJ0aWFsOiB7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ05lYXJseScgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ21lcmdlcyBjdXN0b20gdmFsdWVzIHdpdGggZGVmYXVsdHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0cyA9IGJ1aWxkRGVmYXVsdHMoe1xuICAgICAgICBjb3JyZWN0OiB7IHR5cGU6ICdjdXN0b20nLCBjdXN0b206ICdHcmVhdCBqb2IhJyB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkZWZhdWx0cykudG9FcXVhbCh7XG4gICAgICAgIGNvcnJlY3Q6IHsgdHlwZTogJ2N1c3RvbScsIGRlZmF1bHQ6ICdDb3JyZWN0JywgY3VzdG9tOiAnR3JlYXQgam9iIScgfSxcbiAgICAgICAgaW5jb3JyZWN0OiB7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ0luY29ycmVjdCcgfSxcbiAgICAgICAgcGFydGlhbDogeyB0eXBlOiAnZGVmYXVsdCcsIGRlZmF1bHQ6ICdOZWFybHknIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQXlELFNBQUFJLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxN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
|