@pie-element/ebsr 12.3.4-next.0 → 13.0.0-beta.0
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/configure/lib/defaults.js +23 -36
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +114 -202
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +188 -271
- package/configure/lib/main.js.map +1 -1
- package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.json +1972 -0
- package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.md +4213 -0
- package/configure/node_modules/@pie-element/multiple-choice/PRINT.md +35 -0
- package/configure/node_modules/@pie-element/multiple-choice/README.md +56 -0
- package/configure/node_modules/@pie-element/multiple-choice/choice.png +0 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.json +1387 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.md +3351 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/__tests__/root.test.js +248 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js +200 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js +211 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js +477 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js +18 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/package.json +22 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.json +527 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.md +2316 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/__tests__/index.test.js +520 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/__tests__/utils.test.js +8 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js +33 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js +251 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js +16 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/package.json +15 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json +2993 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json.md +2217 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/config.js +8 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/generate.js +61 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/index.html +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/pie.manifest.json +11 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/session.js +7 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json +1332 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json.md +1015 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/choice-input-test.js +117 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/index-test.js +151 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/key-events-test.js +95 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/multiple-choice-test.js +223 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/session-updater-test.js +70 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js +370 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js +197 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js +130 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/index.js +292 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/main.js +54 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/main.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js +386 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/print.js +92 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/print.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js +37 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/package.json +39 -0
- package/configure/package.json +9 -6
- package/configure/src/__tests__/index.test.js +99 -108
- package/configure/src/index.js +13 -6
- package/configure/src/main.jsx +14 -18
- package/controller/lib/defaults.js +20 -32
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +224 -349
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +4 -18
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +3 -3
- package/lib/index.js +113 -181
- package/lib/index.js.map +1 -1
- package/lib/print.js +120 -204
- package/lib/print.js.map +1 -1
- package/package.json +5 -9
- package/src/__tests__/index.test.js +18 -5
- package/configure/src/__tests__/__snapshots__/index.test.js.snap +0 -83
- package/module/configure.js +0 -1
- package/module/controller.js +0 -6469
- package/module/demo.js +0 -77
- package/module/element.js +0 -1
- package/module/index.html +0 -21
- package/module/manifest.json +0 -14
- package/module/print-demo.js +0 -115
- package/module/print.html +0 -18
- package/module/print.js +0 -1
package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/choice-input-test.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
var _enzyme = require("enzyme");
|
|
7
|
+
var _choiceInput = require("../choice-input");
|
|
8
|
+
var _enzymeToJson = _interopRequireDefault(require("enzyme-to-json"));
|
|
9
|
+
describe('ChoiceInput', () => {
|
|
10
|
+
let onChange, wrapper;
|
|
11
|
+
const mkWrapper = (opts = {}) => {
|
|
12
|
+
const defaultOpts = {
|
|
13
|
+
checked: false,
|
|
14
|
+
disabled: false,
|
|
15
|
+
choiceMode: 'checkbox',
|
|
16
|
+
label: 'label',
|
|
17
|
+
displayKey: '1',
|
|
18
|
+
correctness: 'correct',
|
|
19
|
+
value: 'value',
|
|
20
|
+
classes: {
|
|
21
|
+
label: 'label'
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const finalOpts = {
|
|
25
|
+
...defaultOpts,
|
|
26
|
+
...opts
|
|
27
|
+
};
|
|
28
|
+
return (0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_choiceInput.ChoiceInput, (0, _extends2.default)({}, finalOpts, {
|
|
29
|
+
onChange: onChange
|
|
30
|
+
})));
|
|
31
|
+
};
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
onChange = jest.fn();
|
|
34
|
+
wrapper = mkWrapper();
|
|
35
|
+
});
|
|
36
|
+
describe('snapshots', () => {
|
|
37
|
+
describe('radio', () => {
|
|
38
|
+
it('renders', () => {
|
|
39
|
+
const wrapper = mkWrapper({
|
|
40
|
+
choiceMode: 'radio'
|
|
41
|
+
});
|
|
42
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('checkbox', () => {
|
|
46
|
+
it('renders', () => {
|
|
47
|
+
const wrapper = mkWrapper({
|
|
48
|
+
choiceMode: 'checkbox'
|
|
49
|
+
});
|
|
50
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe('radio with incorrect', () => {
|
|
54
|
+
it('renders', () => {
|
|
55
|
+
const wrapper = mkWrapper({
|
|
56
|
+
choiceMode: 'radio',
|
|
57
|
+
correctness: 'incorrect'
|
|
58
|
+
});
|
|
59
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe('rationale', () => {
|
|
63
|
+
it('does not render', () => {
|
|
64
|
+
const wrapper = mkWrapper();
|
|
65
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
66
|
+
});
|
|
67
|
+
it('renders', () => {
|
|
68
|
+
const wrapper = mkWrapper({
|
|
69
|
+
rationale: 'This is rationale'
|
|
70
|
+
});
|
|
71
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe('onToggleChoice', () => {
|
|
76
|
+
it('calls handler', () => {
|
|
77
|
+
wrapper.instance().onToggleChoice({
|
|
78
|
+
target: {
|
|
79
|
+
checked: true
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
expect(onChange).toBeCalledWith({
|
|
83
|
+
value: 'value',
|
|
84
|
+
selected: true
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
/** we're mocking preview prompt - so this won't pass */
|
|
90
|
+
describe.skip('clicking on choice text triggers toggle choice', () => {
|
|
91
|
+
it('calls handler', () => {
|
|
92
|
+
const onChange = jest.fn();
|
|
93
|
+
const props = {
|
|
94
|
+
checked: false,
|
|
95
|
+
disabled: false,
|
|
96
|
+
choiceMode: 'checkbox',
|
|
97
|
+
label: 'label',
|
|
98
|
+
displayKey: '1',
|
|
99
|
+
correctness: 'correct',
|
|
100
|
+
value: 'value',
|
|
101
|
+
classes: {
|
|
102
|
+
label: 'label'
|
|
103
|
+
},
|
|
104
|
+
onChange
|
|
105
|
+
};
|
|
106
|
+
console.log(_choiceInput.ChoiceInput);
|
|
107
|
+
const item = (0, _enzyme.mount)(/*#__PURE__*/_react.default.createElement(_choiceInput.ChoiceInput, props));
|
|
108
|
+
const label = item.find('.label');
|
|
109
|
+
label.simulate('click');
|
|
110
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
111
|
+
value: 'value',
|
|
112
|
+
selected: true
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9lbnp5bWUiLCJfY2hvaWNlSW5wdXQiLCJfZW56eW1lVG9Kc29uIiwiZGVzY3JpYmUiLCJvbkNoYW5nZSIsIndyYXBwZXIiLCJta1dyYXBwZXIiLCJvcHRzIiwiZGVmYXVsdE9wdHMiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJjaG9pY2VNb2RlIiwibGFiZWwiLCJkaXNwbGF5S2V5IiwiY29ycmVjdG5lc3MiLCJ2YWx1ZSIsImNsYXNzZXMiLCJmaW5hbE9wdHMiLCJzaGFsbG93IiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJDaG9pY2VJbnB1dCIsIl9leHRlbmRzMiIsImJlZm9yZUVhY2giLCJqZXN0IiwiZm4iLCJpdCIsImV4cGVjdCIsInRvSnNvbiIsInRvTWF0Y2hTbmFwc2hvdCIsInJhdGlvbmFsZSIsImluc3RhbmNlIiwib25Ub2dnbGVDaG9pY2UiLCJ0YXJnZXQiLCJ0b0JlQ2FsbGVkV2l0aCIsInNlbGVjdGVkIiwic2tpcCIsInByb3BzIiwiY29uc29sZSIsImxvZyIsIml0ZW0iLCJtb3VudCIsImZpbmQiLCJzaW11bGF0ZSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9jaG9pY2UtaW5wdXQtdGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHNoYWxsb3csIG1vdW50IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCB7IENob2ljZUlucHV0IH0gZnJvbSAnLi4vY2hvaWNlLWlucHV0JztcbmltcG9ydCB0b0pzb24gZnJvbSAnZW56eW1lLXRvLWpzb24nO1xuXG5kZXNjcmliZSgnQ2hvaWNlSW5wdXQnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSwgd3JhcHBlcjtcblxuIGNvbnN0IG1rV3JhcHBlciA9IChvcHRzID0ge30pID0+IHtcbiAgY29uc3QgZGVmYXVsdE9wdHMgPSB7XG4gICAgY2hlY2tlZDogZmFsc2UsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGNob2ljZU1vZGU6ICdjaGVja2JveCcsXG4gICAgbGFiZWw6ICdsYWJlbCcsXG4gICAgZGlzcGxheUtleTogJzEnLFxuICAgIGNvcnJlY3RuZXNzOiAnY29ycmVjdCcsXG4gICAgdmFsdWU6ICd2YWx1ZScsXG4gICAgY2xhc3Nlczoge1xuICAgICAgbGFiZWw6ICdsYWJlbCcsXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBmaW5hbE9wdHMgPSB7IC4uLmRlZmF1bHRPcHRzLCAuLi5vcHRzIH07XG5cbiAgcmV0dXJuIHNoYWxsb3coPENob2ljZUlucHV0IHsuLi5maW5hbE9wdHN9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4pO1xufTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICB3cmFwcGVyID0gbWtXcmFwcGVyKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdHMnLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ3JhZGlvJywgKCkgPT4ge1xuICAgICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBta1dyYXBwZXIoeyBjaG9pY2VNb2RlOiAncmFkaW8nIH0pO1xuICAgICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NoZWNrYm94JywgKCkgPT4ge1xuICAgICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBta1dyYXBwZXIoeyBjaG9pY2VNb2RlOiAnY2hlY2tib3gnIH0pO1xuICAgICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3JhZGlvIHdpdGggaW5jb3JyZWN0JywgKCkgPT4ge1xuICAgICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBta1dyYXBwZXIoe1xuICAgICAgICAgIGNob2ljZU1vZGU6ICdyYWRpbycsXG4gICAgICAgICAgY29ycmVjdG5lc3M6ICdpbmNvcnJlY3QnLFxuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdyYXRpb25hbGUnLCAoKSA9PiB7XG4gICAgICBpdCgnZG9lcyBub3QgcmVuZGVyJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKCk7XG4gICAgICAgIGV4cGVjdCh0b0pzb24od3JhcHBlcikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHsgcmF0aW9uYWxlOiAnVGhpcyBpcyByYXRpb25hbGUnIH0pO1xuICAgICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnb25Ub2dnbGVDaG9pY2UnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIGhhbmRsZXInLCAoKSA9PiB7XG4gICAgICB3cmFwcGVyLmluc3RhbmNlKCkub25Ub2dnbGVDaG9pY2UoeyB0YXJnZXQ6IHsgY2hlY2tlZDogdHJ1ZSB9IH0pO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgIHZhbHVlOiAndmFsdWUnLFxuICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICAvKiogd2UncmUgbW9ja2luZyBwcmV2aWV3IHByb21wdCAtIHNvIHRoaXMgd29uJ3QgcGFzcyAqL1xuICBkZXNjcmliZS5za2lwKCdjbGlja2luZyBvbiBjaG9pY2UgdGV4dCB0cmlnZ2VycyB0b2dnbGUgY2hvaWNlJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBoYW5kbGVyJywgKCkgPT4ge1xuICAgICAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY2hvaWNlTW9kZTogJ2NoZWNrYm94JyxcbiAgICAgICAgbGFiZWw6ICdsYWJlbCcsXG4gICAgICAgIGRpc3BsYXlLZXk6ICcxJyxcbiAgICAgICAgY29ycmVjdG5lc3M6ICdjb3JyZWN0JyxcbiAgICAgICAgdmFsdWU6ICd2YWx1ZScsXG4gICAgICAgIGNsYXNzZXM6IHtcbiAgICAgICAgICBsYWJlbDogJ2xhYmVsJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25DaGFuZ2UsXG4gICAgICB9O1xuXG4gICAgICBjb25zb2xlLmxvZyhDaG9pY2VJbnB1dCk7XG4gICAgICBjb25zdCBpdGVtID0gbW91bnQoPENob2ljZUlucHV0IHsuLi5wcm9wc30gLz4pO1xuICAgICAgY29uc3QgbGFiZWwgPSBpdGVtLmZpbmQoJy5sYWJlbCcpO1xuXG4gICAgICBsYWJlbC5zaW11bGF0ZSgnY2xpY2snKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IHZhbHVlOiAndmFsdWUnLCBzZWxlY3RlZDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBSSxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU07RUFDNUIsSUFBSUMsUUFBUSxFQUFFQyxPQUFPO0VBRXRCLE1BQU1DLFNBQVMsR0FBR0EsQ0FBQ0MsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLO0lBQ2hDLE1BQU1DLFdBQVcsR0FBRztNQUNsQkMsT0FBTyxFQUFFLEtBQUs7TUFDZEMsUUFBUSxFQUFFLEtBQUs7TUFDZkMsVUFBVSxFQUFFLFVBQVU7TUFDdEJDLEtBQUssRUFBRSxPQUFPO01BQ2RDLFVBQVUsRUFBRSxHQUFHO01BQ2ZDLFdBQVcsRUFBRSxTQUFTO01BQ3RCQyxLQUFLLEVBQUUsT0FBTztNQUNkQyxPQUFPLEVBQUU7UUFDUEosS0FBSyxFQUFFO01BQ1Q7SUFDRixDQUFDO0lBRUQsTUFBTUssU0FBUyxHQUFHO01BQUUsR0FBR1QsV0FBVztNQUFFLEdBQUdEO0lBQUssQ0FBQztJQUU3QyxPQUFPLElBQUFXLGVBQU8sZUFBQ3JCLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDbkIsWUFBQSxDQUFBb0IsV0FBVyxNQUFBQyxTQUFBLENBQUFILE9BQUEsTUFBS0YsU0FBUztNQUFFYixRQUFRLEVBQUVBO0lBQVMsRUFBRSxDQUFDLENBQUM7RUFDcEUsQ0FBQztFQUVDbUIsVUFBVSxDQUFDLE1BQU07SUFDZm5CLFFBQVEsR0FBR29CLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDcEJwQixPQUFPLEdBQUdDLFNBQVMsQ0FBQyxDQUFDO0VBQ3ZCLENBQUMsQ0FBQztFQUVGSCxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU07SUFDMUJBLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTTtNQUN0QnVCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTTtRQUNsQixNQUFNckIsT0FBTyxHQUFHQyxTQUFTLENBQUM7VUFBRUssVUFBVSxFQUFFO1FBQVEsQ0FBQyxDQUFDO1FBQ2xEZ0IsTUFBTSxDQUFDLElBQUFDLHFCQUFNLEVBQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFDd0IsZUFBZSxDQUFDLENBQUM7TUFDM0MsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUYxQixRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU07TUFDekJ1QixFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU07UUFDbEIsTUFBTXJCLE9BQU8sR0FBR0MsU0FBUyxDQUFDO1VBQUVLLFVBQVUsRUFBRTtRQUFXLENBQUMsQ0FBQztRQUNyRGdCLE1BQU0sQ0FBQyxJQUFBQyxxQkFBTSxFQUFDdkIsT0FBTyxDQUFDLENBQUMsQ0FBQ3dCLGVBQWUsQ0FBQyxDQUFDO01BQzNDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGMUIsUUFBUSxDQUFDLHNCQUFzQixFQUFFLE1BQU07TUFDckN1QixFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU07UUFDbEIsTUFBTXJCLE9BQU8sR0FBR0MsU0FBUyxDQUFDO1VBQ3hCSyxVQUFVLEVBQUUsT0FBTztVQUNuQkcsV0FBVyxFQUFFO1FBQ2YsQ0FBQyxDQUFDO1FBQ0ZhLE1BQU0sQ0FBQyxJQUFBQyxxQkFBTSxFQUFDdkIsT0FBTyxDQUFDLENBQUMsQ0FBQ3dCLGVBQWUsQ0FBQyxDQUFDO01BQzNDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGMUIsUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNO01BQzFCdUIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLE1BQU07UUFDMUIsTUFBTXJCLE9BQU8sR0FBR0MsU0FBUyxDQUFDLENBQUM7UUFDM0JxQixNQUFNLENBQUMsSUFBQUMscUJBQU0sRUFBQ3ZCLE9BQU8sQ0FBQyxDQUFDLENBQUN3QixlQUFlLENBQUMsQ0FBQztNQUMzQyxDQUFDLENBQUM7TUFFRkgsRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNO1FBQ2xCLE1BQU1yQixPQUFPLEdBQUdDLFNBQVMsQ0FBQztVQUFFd0IsU0FBUyxFQUFFO1FBQW9CLENBQUMsQ0FBQztRQUM3REgsTUFBTSxDQUFDLElBQUFDLHFCQUFNLEVBQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFDd0IsZUFBZSxDQUFDLENBQUM7TUFDM0MsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUYxQixRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTTtJQUMvQnVCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsTUFBTTtNQUN4QnJCLE9BQU8sQ0FBQzBCLFFBQVEsQ0FBQyxDQUFDLENBQUNDLGNBQWMsQ0FBQztRQUFFQyxNQUFNLEVBQUU7VUFBRXhCLE9BQU8sRUFBRTtRQUFLO01BQUUsQ0FBQyxDQUFDO01BQ2hFa0IsTUFBTSxDQUFDdkIsUUFBUSxDQUFDLENBQUM4QixjQUFjLENBQUM7UUFDOUJuQixLQUFLLEVBQUUsT0FBTztRQUNkb0IsUUFBUSxFQUFFO01BQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDOztFQUVGO0VBQ0FoQyxRQUFRLENBQUNpQyxJQUFJLENBQUMsZ0RBQWdELEVBQUUsTUFBTTtJQUNwRVYsRUFBRSxDQUFDLGVBQWUsRUFBRSxNQUFNO01BQ3hCLE1BQU10QixRQUFRLEdBQUdvQixJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO01BQzFCLE1BQU1ZLEtBQUssR0FBRztRQUNaNUIsT0FBTyxFQUFFLEtBQUs7UUFDZEMsUUFBUSxFQUFFLEtBQUs7UUFDZkMsVUFBVSxFQUFFLFVBQVU7UUFDdEJDLEtBQUssRUFBRSxPQUFPO1FBQ2RDLFVBQVUsRUFBRSxHQUFHO1FBQ2ZDLFdBQVcsRUFBRSxTQUFTO1FBQ3RCQyxLQUFLLEVBQUUsT0FBTztRQUNkQyxPQUFPLEVBQUU7VUFDUEosS0FBSyxFQUFFO1FBQ1QsQ0FBQztRQUNEUjtNQUNGLENBQUM7TUFFRGtDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDbEIsd0JBQVcsQ0FBQztNQUN4QixNQUFNbUIsSUFBSSxHQUFHLElBQUFDLGFBQUssZUFBQzVDLE1BQUEsQ0FBQXNCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDbkIsWUFBQSxDQUFBb0IsV0FBVyxFQUFLZ0IsS0FBUSxDQUFDLENBQUM7TUFDOUMsTUFBTXpCLEtBQUssR0FBRzRCLElBQUksQ0FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQztNQUVqQzlCLEtBQUssQ0FBQytCLFFBQVEsQ0FBQyxPQUFPLENBQUM7TUFFdkJoQixNQUFNLENBQUN2QixRQUFRLENBQUMsQ0FBQ3dDLG9CQUFvQixDQUFDO1FBQUU3QixLQUFLLEVBQUUsT0FBTztRQUFFb0IsUUFBUSxFQUFFO01BQUssQ0FBQyxDQUFDO0lBQzNFLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _enzyme = require("enzyme");
|
|
6
|
+
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
7
|
+
var _main = _interopRequireDefault(require("../main"));
|
|
8
|
+
var _index = _interopRequireWildcard(require("../index"));
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
jest.useFakeTimers();
|
|
11
|
+
jest.mock('@pie-lib/math-rendering', () => ({
|
|
12
|
+
renderMath: jest.fn()
|
|
13
|
+
}));
|
|
14
|
+
jest.mock('lodash/debounce', () => jest.fn(fn => fn));
|
|
15
|
+
describe('isComplete', () => {
|
|
16
|
+
it.each`
|
|
17
|
+
session | expected
|
|
18
|
+
${{
|
|
19
|
+
value: [1, 2, 3]
|
|
20
|
+
}} | ${true}
|
|
21
|
+
${{
|
|
22
|
+
value: []
|
|
23
|
+
}} | ${false}
|
|
24
|
+
${{}} | ${false}
|
|
25
|
+
${null} | ${false}
|
|
26
|
+
${undefined} | ${false}
|
|
27
|
+
`('session = $session is complete => $expected', ({
|
|
28
|
+
session,
|
|
29
|
+
expected
|
|
30
|
+
}) => {
|
|
31
|
+
expect((0, _index.isComplete)(session)).toEqual(expected);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe('multiple-choice', () => {
|
|
35
|
+
describe('renders', () => {
|
|
36
|
+
let wrapper = props => {
|
|
37
|
+
let defaultProps = {
|
|
38
|
+
model: {
|
|
39
|
+
...props
|
|
40
|
+
},
|
|
41
|
+
session: {},
|
|
42
|
+
classes: {}
|
|
43
|
+
};
|
|
44
|
+
return (0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_main.default, defaultProps));
|
|
45
|
+
};
|
|
46
|
+
it('snapshot', () => {
|
|
47
|
+
const w = wrapper();
|
|
48
|
+
expect(w).toMatchSnapshot();
|
|
49
|
+
});
|
|
50
|
+
it('snapshot with rationale', () => {
|
|
51
|
+
const w = wrapper({
|
|
52
|
+
rationale: 'This is rationale'
|
|
53
|
+
});
|
|
54
|
+
expect(w).toMatchSnapshot();
|
|
55
|
+
});
|
|
56
|
+
it('snapshot with teacherInstructions', () => {
|
|
57
|
+
const w = wrapper({
|
|
58
|
+
teacherInstructions: 'These are teacher instructions'
|
|
59
|
+
});
|
|
60
|
+
expect(w).toMatchSnapshot();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('events', () => {
|
|
64
|
+
describe('model', () => {
|
|
65
|
+
it('dispatches model set event', () => {
|
|
66
|
+
const el = new _index.default();
|
|
67
|
+
el.tagName = 'mc-el';
|
|
68
|
+
el.model = {};
|
|
69
|
+
expect(el.dispatchEvent).toBeCalledWith(new _piePlayerEvents.ModelSetEvent('mc-el', false, true));
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('onChange', () => {
|
|
73
|
+
it('dispatches session changed event - add answer (checkbox)', () => {
|
|
74
|
+
const el = new _index.default();
|
|
75
|
+
el.tagName = 'mc-el';
|
|
76
|
+
el.model = {
|
|
77
|
+
choiceMode: 'checkbox'
|
|
78
|
+
};
|
|
79
|
+
el.session = {
|
|
80
|
+
value: []
|
|
81
|
+
};
|
|
82
|
+
el._onChange({
|
|
83
|
+
value: 'a',
|
|
84
|
+
selected: true
|
|
85
|
+
});
|
|
86
|
+
expect(el.dispatchEvent).toBeCalledWith(new _piePlayerEvents.SessionChangedEvent('mc-el', true));
|
|
87
|
+
});
|
|
88
|
+
it('dispatches session changed event - remove answer (checkbox)', () => {
|
|
89
|
+
const el = new _index.default();
|
|
90
|
+
el.tagName = 'mc-el';
|
|
91
|
+
el.model = {
|
|
92
|
+
choiceMode: 'checkbox'
|
|
93
|
+
};
|
|
94
|
+
el.session = {
|
|
95
|
+
value: ['a']
|
|
96
|
+
};
|
|
97
|
+
el._onChange({
|
|
98
|
+
value: 'a',
|
|
99
|
+
selected: false
|
|
100
|
+
});
|
|
101
|
+
expect(el.dispatchEvent).toBeCalledWith(new _piePlayerEvents.SessionChangedEvent('mc-el', false));
|
|
102
|
+
});
|
|
103
|
+
it('dispatches session changed event - add/remove answer (checkbox)', () => {
|
|
104
|
+
const el = new _index.default();
|
|
105
|
+
el.tagName = 'mc-el';
|
|
106
|
+
el.model = {
|
|
107
|
+
choiceMode: 'checkbox'
|
|
108
|
+
};
|
|
109
|
+
el.session = {
|
|
110
|
+
value: ['1']
|
|
111
|
+
};
|
|
112
|
+
el._onChange({
|
|
113
|
+
id: '2',
|
|
114
|
+
selected: true
|
|
115
|
+
});
|
|
116
|
+
expect(el.dispatchEvent).toBeCalledWith(new _piePlayerEvents.SessionChangedEvent('mc-el', true));
|
|
117
|
+
el._onChange({
|
|
118
|
+
id: '1',
|
|
119
|
+
selected: false
|
|
120
|
+
});
|
|
121
|
+
expect(el.dispatchEvent).toBeCalledWith(new _piePlayerEvents.SessionChangedEvent('mc-el', true));
|
|
122
|
+
el._onChange({
|
|
123
|
+
id: '2',
|
|
124
|
+
selected: false
|
|
125
|
+
});
|
|
126
|
+
expect(el.dispatchEvent).toBeCalledWith(new _piePlayerEvents.SessionChangedEvent('mc-el', false));
|
|
127
|
+
});
|
|
128
|
+
it('dispatches session changed event - add/change answer (radio)', () => {
|
|
129
|
+
const el = new _index.default();
|
|
130
|
+
el.tagName = 'mc-el';
|
|
131
|
+
el.model = {
|
|
132
|
+
choiceMode: 'radio'
|
|
133
|
+
};
|
|
134
|
+
el.session = {
|
|
135
|
+
value: []
|
|
136
|
+
};
|
|
137
|
+
el._onChange({
|
|
138
|
+
value: 'a',
|
|
139
|
+
selected: true
|
|
140
|
+
});
|
|
141
|
+
expect(el.dispatchEvent).toBeCalledWith(new _piePlayerEvents.SessionChangedEvent('mc-el', true));
|
|
142
|
+
el._onChange({
|
|
143
|
+
value: 'b',
|
|
144
|
+
selected: true
|
|
145
|
+
});
|
|
146
|
+
expect(el.dispatchEvent).toBeCalledWith(new _piePlayerEvents.SessionChangedEvent('mc-el', true));
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9lbnp5bWUiLCJfcGllUGxheWVyRXZlbnRzIiwiX21haW4iLCJfaW5kZXgiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImplc3QiLCJ1c2VGYWtlVGltZXJzIiwibW9jayIsInJlbmRlck1hdGgiLCJmbiIsImRlc2NyaWJlIiwiaXQiLCJlYWNoIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJzZXNzaW9uIiwiZXhwZWN0ZWQiLCJleHBlY3QiLCJpc0NvbXBsZXRlIiwidG9FcXVhbCIsIndyYXBwZXIiLCJwcm9wcyIsImRlZmF1bHRQcm9wcyIsIm1vZGVsIiwiY2xhc3NlcyIsInNoYWxsb3ciLCJjcmVhdGVFbGVtZW50IiwidyIsInRvTWF0Y2hTbmFwc2hvdCIsInJhdGlvbmFsZSIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJlbCIsIk11bHRpcGxlQ2hvaWNlIiwidGFnTmFtZSIsImRpc3BhdGNoRXZlbnQiLCJ0b0JlQ2FsbGVkV2l0aCIsIk1vZGVsU2V0RXZlbnQiLCJjaG9pY2VNb2RlIiwiX29uQ2hhbmdlIiwic2VsZWN0ZWQiLCJTZXNzaW9uQ2hhbmdlZEV2ZW50IiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2luZGV4LXRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCB7IE1vZGVsU2V0RXZlbnQsIFNlc3Npb25DaGFuZ2VkRXZlbnQgfSBmcm9tICdAcGllLWZyYW1ld29yay9waWUtcGxheWVyLWV2ZW50cyc7XG5pbXBvcnQgTXVsdGlwbGVDaG9pY2VDb21wb25lbnQgZnJvbSAnLi4vbWFpbic7XG5pbXBvcnQgTXVsdGlwbGVDaG9pY2UgZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgaXNDb21wbGV0ZSB9IGZyb20gJy4uL2luZGV4JztcblxuamVzdC51c2VGYWtlVGltZXJzKCk7XG5qZXN0Lm1vY2soJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJywgKCkgPT4gKHsgcmVuZGVyTWF0aDogamVzdC5mbigpIH0pKTtcbmplc3QubW9jaygnbG9kYXNoL2RlYm91bmNlJywgKCkgPT4gamVzdC5mbigoZm4pID0+IGZuKSk7XG5cbmRlc2NyaWJlKCdpc0NvbXBsZXRlJywgKCkgPT4ge1xuICBpdC5lYWNoYFxuICAgIHNlc3Npb24gICAgICAgICAgICAgICAgIHwgZXhwZWN0ZWRcbiAgICAke3sgdmFsdWU6IFsxLCAyLCAzXSB9fSB8ICR7dHJ1ZX1cbiAgICAke3sgdmFsdWU6IFtdIH19ICAgICAgICB8ICR7ZmFsc2V9XG4gICAgJHt7fX0gICAgICAgICAgICAgICAgICAgfCAke2ZhbHNlfVxuICAgICR7bnVsbH0gICAgICAgICAgICAgICAgIHwgJHtmYWxzZX1cbiAgICAke3VuZGVmaW5lZH0gICAgICAgICAgICB8ICR7ZmFsc2V9XG4gIGAoJ3Nlc3Npb24gPSAkc2Vzc2lvbiBpcyBjb21wbGV0ZSA9PiAkZXhwZWN0ZWQnLCAoeyBzZXNzaW9uLCBleHBlY3RlZCB9KSA9PiB7XG4gICAgZXhwZWN0KGlzQ29tcGxldGUoc2Vzc2lvbikpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnbXVsdGlwbGUtY2hvaWNlJywgKCkgPT4ge1xuICBkZXNjcmliZSgncmVuZGVycycsICgpID0+IHtcbiAgICBsZXQgd3JhcHBlciA9IChwcm9wcykgPT4ge1xuICAgICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgfSxcbiAgICAgICAgc2Vzc2lvbjoge30sXG4gICAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHNoYWxsb3coPE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICB9O1xuXG4gICAgaXQoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgICAgY29uc3QgdyA9IHdyYXBwZXIoKTtcbiAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzbmFwc2hvdCB3aXRoIHJhdGlvbmFsZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHcgPSB3cmFwcGVyKHsgcmF0aW9uYWxlOiAnVGhpcyBpcyByYXRpb25hbGUnIH0pO1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3NuYXBzaG90IHdpdGggdGVhY2hlckluc3RydWN0aW9ucycsICgpID0+IHtcbiAgICAgIGNvbnN0IHcgPSB3cmFwcGVyKHsgdGVhY2hlckluc3RydWN0aW9uczogJ1RoZXNlIGFyZSB0ZWFjaGVyIGluc3RydWN0aW9ucycgfSk7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdldmVudHMnLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ21vZGVsJywgKCkgPT4ge1xuICAgICAgaXQoJ2Rpc3BhdGNoZXMgbW9kZWwgc2V0IGV2ZW50JywgKCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IG5ldyBNdWx0aXBsZUNob2ljZSgpO1xuICAgICAgICBlbC50YWdOYW1lID0gJ21jLWVsJztcbiAgICAgICAgZWwubW9kZWwgPSB7fTtcbiAgICAgICAgZXhwZWN0KGVsLmRpc3BhdGNoRXZlbnQpLnRvQmVDYWxsZWRXaXRoKG5ldyBNb2RlbFNldEV2ZW50KCdtYy1lbCcsIGZhbHNlLCB0cnVlKSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdvbkNoYW5nZScsICgpID0+IHtcbiAgICAgIGl0KCdkaXNwYXRjaGVzIHNlc3Npb24gY2hhbmdlZCBldmVudCAtIGFkZCBhbnN3ZXIgKGNoZWNrYm94KScsICgpID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSBuZXcgTXVsdGlwbGVDaG9pY2UoKTtcbiAgICAgICAgZWwudGFnTmFtZSA9ICdtYy1lbCc7XG4gICAgICAgIGVsLm1vZGVsID0geyBjaG9pY2VNb2RlOiAnY2hlY2tib3gnIH07XG4gICAgICAgIGVsLnNlc3Npb24gPSB7IHZhbHVlOiBbXSB9O1xuICAgICAgICBlbC5fb25DaGFuZ2UoeyB2YWx1ZTogJ2EnLCBzZWxlY3RlZDogdHJ1ZSB9KTtcbiAgICAgICAgZXhwZWN0KGVsLmRpc3BhdGNoRXZlbnQpLnRvQmVDYWxsZWRXaXRoKG5ldyBTZXNzaW9uQ2hhbmdlZEV2ZW50KCdtYy1lbCcsIHRydWUpKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGlzcGF0Y2hlcyBzZXNzaW9uIGNoYW5nZWQgZXZlbnQgLSByZW1vdmUgYW5zd2VyIChjaGVja2JveCknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gbmV3IE11bHRpcGxlQ2hvaWNlKCk7XG4gICAgICAgIGVsLnRhZ05hbWUgPSAnbWMtZWwnO1xuICAgICAgICBlbC5tb2RlbCA9IHsgY2hvaWNlTW9kZTogJ2NoZWNrYm94JyB9O1xuICAgICAgICBlbC5zZXNzaW9uID0geyB2YWx1ZTogWydhJ10gfTtcbiAgICAgICAgZWwuX29uQ2hhbmdlKHsgdmFsdWU6ICdhJywgc2VsZWN0ZWQ6IGZhbHNlIH0pO1xuICAgICAgICBleHBlY3QoZWwuZGlzcGF0Y2hFdmVudCkudG9CZUNhbGxlZFdpdGgobmV3IFNlc3Npb25DaGFuZ2VkRXZlbnQoJ21jLWVsJywgZmFsc2UpKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGlzcGF0Y2hlcyBzZXNzaW9uIGNoYW5nZWQgZXZlbnQgLSBhZGQvcmVtb3ZlIGFuc3dlciAoY2hlY2tib3gpJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IG5ldyBNdWx0aXBsZUNob2ljZSgpO1xuICAgICAgICBlbC50YWdOYW1lID0gJ21jLWVsJztcbiAgICAgICAgZWwubW9kZWwgPSB7IGNob2ljZU1vZGU6ICdjaGVja2JveCcgfTtcbiAgICAgICAgZWwuc2Vzc2lvbiA9IHsgdmFsdWU6IFsnMSddIH07XG4gICAgICAgIGVsLl9vbkNoYW5nZSh7IGlkOiAnMicsIHNlbGVjdGVkOiB0cnVlIH0pO1xuICAgICAgICBleHBlY3QoZWwuZGlzcGF0Y2hFdmVudCkudG9CZUNhbGxlZFdpdGgobmV3IFNlc3Npb25DaGFuZ2VkRXZlbnQoJ21jLWVsJywgdHJ1ZSkpO1xuXG4gICAgICAgIGVsLl9vbkNoYW5nZSh7IGlkOiAnMScsIHNlbGVjdGVkOiBmYWxzZSB9KTtcbiAgICAgICAgZXhwZWN0KGVsLmRpc3BhdGNoRXZlbnQpLnRvQmVDYWxsZWRXaXRoKG5ldyBTZXNzaW9uQ2hhbmdlZEV2ZW50KCdtYy1lbCcsIHRydWUpKTtcblxuICAgICAgICBlbC5fb25DaGFuZ2UoeyBpZDogJzInLCBzZWxlY3RlZDogZmFsc2UgfSk7XG4gICAgICAgIGV4cGVjdChlbC5kaXNwYXRjaEV2ZW50KS50b0JlQ2FsbGVkV2l0aChuZXcgU2Vzc2lvbkNoYW5nZWRFdmVudCgnbWMtZWwnLCBmYWxzZSkpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkaXNwYXRjaGVzIHNlc3Npb24gY2hhbmdlZCBldmVudCAtIGFkZC9jaGFuZ2UgYW5zd2VyIChyYWRpbyknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gbmV3IE11bHRpcGxlQ2hvaWNlKCk7XG4gICAgICAgIGVsLnRhZ05hbWUgPSAnbWMtZWwnO1xuICAgICAgICBlbC5tb2RlbCA9IHsgY2hvaWNlTW9kZTogJ3JhZGlvJyB9O1xuICAgICAgICBlbC5zZXNzaW9uID0geyB2YWx1ZTogW10gfTtcbiAgICAgICAgZWwuX29uQ2hhbmdlKHsgdmFsdWU6ICdhJywgc2VsZWN0ZWQ6IHRydWUgfSk7XG4gICAgICAgIGV4cGVjdChlbC5kaXNwYXRjaEV2ZW50KS50b0JlQ2FsbGVkV2l0aChuZXcgU2Vzc2lvbkNoYW5nZWRFdmVudCgnbWMtZWwnLCB0cnVlKSk7XG4gICAgICAgIGVsLl9vbkNoYW5nZSh7IHZhbHVlOiAnYicsIHNlbGVjdGVkOiB0cnVlIH0pO1xuICAgICAgICBleHBlY3QoZWwuZGlzcGF0Y2hFdmVudCkudG9CZUNhbGxlZFdpdGgobmV3IFNlc3Npb25DaGFuZ2VkRXZlbnQoJ21jLWVsJywgdHJ1ZSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFBc0MsU0FBQUssd0JBQUFDLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFILHVCQUFBLFlBQUFBLENBQUFDLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENB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
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _multipleChoice = _interopRequireDefault(require("../multiple-choice"));
|
|
5
|
+
describe('MultipleChoice', () => {
|
|
6
|
+
let instance;
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
instance = new _multipleChoice.default();
|
|
9
|
+
instance._model = {
|
|
10
|
+
choices: [{
|
|
11
|
+
value: '1'
|
|
12
|
+
}, {
|
|
13
|
+
value: '2'
|
|
14
|
+
}, {
|
|
15
|
+
value: '3'
|
|
16
|
+
}],
|
|
17
|
+
choiceMode: 'checkbox'
|
|
18
|
+
};
|
|
19
|
+
instance._session = {
|
|
20
|
+
value: []
|
|
21
|
+
};
|
|
22
|
+
instance._onChange = jest.fn();
|
|
23
|
+
});
|
|
24
|
+
describe('handleKeyDown', () => {
|
|
25
|
+
const simulateKeyDown = key => {
|
|
26
|
+
const event = new KeyboardEvent('keydown', {
|
|
27
|
+
key
|
|
28
|
+
});
|
|
29
|
+
instance.handleKeyDown(event);
|
|
30
|
+
};
|
|
31
|
+
it('selects a choice on valid numeric key (checkbox)', () => {
|
|
32
|
+
simulateKeyDown('1');
|
|
33
|
+
expect(instance._onChange).toHaveBeenCalledWith({
|
|
34
|
+
value: '1',
|
|
35
|
+
selected: true
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
it('toggles a choice on valid numeric key (checkbox)', () => {
|
|
39
|
+
instance._session.value = ['1'];
|
|
40
|
+
simulateKeyDown('1');
|
|
41
|
+
expect(instance._onChange).toHaveBeenCalledWith({
|
|
42
|
+
value: '1',
|
|
43
|
+
selected: false
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
it('selects a choice on valid alphabetic key (checkbox)', () => {
|
|
47
|
+
simulateKeyDown('a');
|
|
48
|
+
expect(instance._onChange).toHaveBeenCalledWith({
|
|
49
|
+
value: '1',
|
|
50
|
+
selected: true
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
it('does nothing on invalid key', () => {
|
|
54
|
+
simulateKeyDown('z');
|
|
55
|
+
expect(instance._onChange).not.toHaveBeenCalled();
|
|
56
|
+
});
|
|
57
|
+
it('selects a choice in radio mode', () => {
|
|
58
|
+
instance._model.choiceMode = 'radio';
|
|
59
|
+
simulateKeyDown('2');
|
|
60
|
+
expect(instance._onChange).toHaveBeenCalledWith({
|
|
61
|
+
value: '2',
|
|
62
|
+
selected: true
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
it('replaces the selected choice in radio mode', () => {
|
|
66
|
+
instance._model.choiceMode = 'radio';
|
|
67
|
+
instance._session.value = ['1'];
|
|
68
|
+
simulateKeyDown('3');
|
|
69
|
+
expect(instance._onChange).toHaveBeenCalledWith({
|
|
70
|
+
value: '3',
|
|
71
|
+
selected: true
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
it('does not toggle the same choice in radio mode', () => {
|
|
75
|
+
instance._model.choiceMode = 'radio';
|
|
76
|
+
instance._session.value = ['1'];
|
|
77
|
+
simulateKeyDown('1');
|
|
78
|
+
expect(instance._onChange).toHaveBeenCalledWith({
|
|
79
|
+
value: '1',
|
|
80
|
+
selected: true
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
it('does nothing if model is missing', () => {
|
|
84
|
+
instance._model = null;
|
|
85
|
+
simulateKeyDown('1');
|
|
86
|
+
expect(instance._onChange).not.toHaveBeenCalled();
|
|
87
|
+
});
|
|
88
|
+
it('does nothing if session is missing', () => {
|
|
89
|
+
instance._session = null;
|
|
90
|
+
simulateKeyDown('1');
|
|
91
|
+
expect(instance._onChange).not.toHaveBeenCalled();
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbXVsdGlwbGVDaG9pY2UiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImRlc2NyaWJlIiwiaW5zdGFuY2UiLCJiZWZvcmVFYWNoIiwiTXVsdGlwbGVDaG9pY2UiLCJfbW9kZWwiLCJjaG9pY2VzIiwidmFsdWUiLCJjaG9pY2VNb2RlIiwiX3Nlc3Npb24iLCJfb25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJzaW11bGF0ZUtleURvd24iLCJrZXkiLCJldmVudCIsIktleWJvYXJkRXZlbnQiLCJoYW5kbGVLZXlEb3duIiwiaXQiLCJleHBlY3QiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInNlbGVjdGVkIiwibm90IiwidG9IYXZlQmVlbkNhbGxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18va2V5LWV2ZW50cy10ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTXVsdGlwbGVDaG9pY2UgZnJvbSAnLi4vbXVsdGlwbGUtY2hvaWNlJztcblxuZGVzY3JpYmUoJ011bHRpcGxlQ2hvaWNlJywgKCkgPT4ge1xuICBsZXQgaW5zdGFuY2U7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgaW5zdGFuY2UgPSBuZXcgTXVsdGlwbGVDaG9pY2UoKTtcbiAgICBpbnN0YW5jZS5fbW9kZWwgPSB7XG4gICAgICBjaG9pY2VzOiBbXG4gICAgICAgIHsgdmFsdWU6ICcxJyB9LFxuICAgICAgICB7IHZhbHVlOiAnMicgfSxcbiAgICAgICAgeyB2YWx1ZTogJzMnIH0sXG4gICAgICBdLFxuICAgICAgY2hvaWNlTW9kZTogJ2NoZWNrYm94JyxcbiAgICB9O1xuICAgIGluc3RhbmNlLl9zZXNzaW9uID0geyB2YWx1ZTogW10gfTtcbiAgICBpbnN0YW5jZS5fb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdoYW5kbGVLZXlEb3duJywgKCkgPT4ge1xuICAgIGNvbnN0IHNpbXVsYXRlS2V5RG93biA9IChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB7IGtleSB9KTtcbiAgICAgIGluc3RhbmNlLmhhbmRsZUtleURvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBpdCgnc2VsZWN0cyBhIGNob2ljZSBvbiB2YWxpZCBudW1lcmljIGtleSAoY2hlY2tib3gpJywgKCkgPT4ge1xuICAgICAgc2ltdWxhdGVLZXlEb3duKCcxJyk7XG4gICAgICBleHBlY3QoaW5zdGFuY2UuX29uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICAgIHZhbHVlOiAnMScsXG4gICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgndG9nZ2xlcyBhIGNob2ljZSBvbiB2YWxpZCBudW1lcmljIGtleSAoY2hlY2tib3gpJywgKCkgPT4ge1xuICAgICAgaW5zdGFuY2UuX3Nlc3Npb24udmFsdWUgPSBbJzEnXTtcbiAgICAgIHNpbXVsYXRlS2V5RG93bignMScpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLl9vbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgICB2YWx1ZTogJzEnLFxuICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzZWxlY3RzIGEgY2hvaWNlIG9uIHZhbGlkIGFscGhhYmV0aWMga2V5IChjaGVja2JveCknLCAoKSA9PiB7XG4gICAgICBzaW11bGF0ZUtleURvd24oJ2EnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5fb25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgdmFsdWU6ICcxJyxcbiAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdGhpbmcgb24gaW52YWxpZCBrZXknLCAoKSA9PiB7XG4gICAgICBzaW11bGF0ZUtleURvd24oJ3onKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5fb25DaGFuZ2UpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2VsZWN0cyBhIGNob2ljZSBpbiByYWRpbyBtb2RlJywgKCkgPT4ge1xuICAgICAgaW5zdGFuY2UuX21vZGVsLmNob2ljZU1vZGUgPSAncmFkaW8nO1xuICAgICAgc2ltdWxhdGVLZXlEb3duKCcyJyk7XG4gICAgICBleHBlY3QoaW5zdGFuY2UuX29uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICAgIHZhbHVlOiAnMicsXG4gICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVwbGFjZXMgdGhlIHNlbGVjdGVkIGNob2ljZSBpbiByYWRpbyBtb2RlJywgKCkgPT4ge1xuICAgICAgaW5zdGFuY2UuX21vZGVsLmNob2ljZU1vZGUgPSAncmFkaW8nO1xuICAgICAgaW5zdGFuY2UuX3Nlc3Npb24udmFsdWUgPSBbJzEnXTtcbiAgICAgIHNpbXVsYXRlS2V5RG93bignMycpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLl9vbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgICB2YWx1ZTogJzMnLFxuICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IHRvZ2dsZSB0aGUgc2FtZSBjaG9pY2UgaW4gcmFkaW8gbW9kZScsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLl9tb2RlbC5jaG9pY2VNb2RlID0gJ3JhZGlvJztcbiAgICAgIGluc3RhbmNlLl9zZXNzaW9uLnZhbHVlID0gWycxJ107XG4gICAgICBzaW11bGF0ZUtleURvd24oJzEnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5fb25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgdmFsdWU6ICcxJyxcbiAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdGhpbmcgaWYgbW9kZWwgaXMgbWlzc2luZycsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLl9tb2RlbCA9IG51bGw7XG4gICAgICBzaW11bGF0ZUtleURvd24oJzEnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5fb25DaGFuZ2UpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3RoaW5nIGlmIHNlc3Npb24gaXMgbWlzc2luZycsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLl9zZXNzaW9uID0gbnVsbDtcbiAgICAgIHNpbXVsYXRlS2V5RG93bignMScpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLl9vbkNoYW5nZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsZUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNO0VBQy9CLElBQUlDLFFBQVE7RUFFWkMsVUFBVSxDQUFDLE1BQU07SUFDZkQsUUFBUSxHQUFHLElBQUlFLHVCQUFjLENBQUMsQ0FBQztJQUMvQkYsUUFBUSxDQUFDRyxNQUFNLEdBQUc7TUFDaEJDLE9BQU8sRUFBRSxDQUNQO1FBQUVDLEtBQUssRUFBRTtNQUFJLENBQUMsRUFDZDtRQUFFQSxLQUFLLEVBQUU7TUFBSSxDQUFDLEVBQ2Q7UUFBRUEsS0FBSyxFQUFFO01BQUksQ0FBQyxDQUNmO01BQ0RDLFVBQVUsRUFBRTtJQUNkLENBQUM7SUFDRE4sUUFBUSxDQUFDTyxRQUFRLEdBQUc7TUFBRUYsS0FBSyxFQUFFO0lBQUcsQ0FBQztJQUNqQ0wsUUFBUSxDQUFDUSxTQUFTLEdBQUdDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7RUFDaEMsQ0FBQyxDQUFDO0VBRUZYLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBTTtJQUM5QixN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
|