@pie-element/drag-in-the-blank 10.2.2-beta.2 → 10.2.2
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 +53 -26
- package/configure/CHANGELOG.md +49 -25
- package/configure/lib/choice.js +4 -3
- package/configure/lib/choice.js.map +1 -1
- package/configure/package.json +4 -4
- package/controller/CHANGELOG.md +6 -38
- package/controller/package.json +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/package.json +6 -6
- package/configure/lib/__tests__/choice.test.js +0 -114
- package/configure/lib/__tests__/choices.test.js +0 -157
- package/configure/lib/__tests__/main.test.js +0 -167
- package/configure/lib/__tests__/markupUtils.test.js +0 -105
- package/controller/lib/__tests__/index.test.js +0 -775
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/index.test.js +0 -118
- package/lib/__tests__/main.test.js +0 -139
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _react = _interopRequireDefault(require("react"));
|
|
5
|
-
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
6
|
-
var _index = _interopRequireDefault(require("../index"));
|
|
7
|
-
// Mock react-dom/client
|
|
8
|
-
const mockRender = jest.fn();
|
|
9
|
-
const mockUnmount = jest.fn();
|
|
10
|
-
jest.mock('react-dom/client', () => ({
|
|
11
|
-
createRoot: jest.fn(() => ({
|
|
12
|
-
render: mockRender,
|
|
13
|
-
unmount: mockUnmount
|
|
14
|
-
}))
|
|
15
|
-
}));
|
|
16
|
-
jest.mock('@pie-lib/math-rendering', () => ({
|
|
17
|
-
renderMath: jest.fn()
|
|
18
|
-
}));
|
|
19
|
-
describe('drag-in-the-blank', () => {
|
|
20
|
-
let el;
|
|
21
|
-
beforeAll(() => {
|
|
22
|
-
// Register the custom element if not already registered
|
|
23
|
-
if (!customElements.get('drag-in-the-blank-test')) {
|
|
24
|
-
customElements.define('drag-in-the-blank-test', _index.default);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
beforeEach(() => {
|
|
28
|
-
el = document.createElement('drag-in-the-blank-test');
|
|
29
|
-
|
|
30
|
-
// Mock _render to avoid jsdom innerHTML issues
|
|
31
|
-
el._render = jest.fn();
|
|
32
|
-
|
|
33
|
-
// Mock dispatchEvent
|
|
34
|
-
el.dispatchEvent = jest.fn();
|
|
35
|
-
});
|
|
36
|
-
describe('events', () => {
|
|
37
|
-
describe('model', () => {
|
|
38
|
-
it('dispatches model set event', () => {
|
|
39
|
-
el.model = {};
|
|
40
|
-
expect(el.dispatchEvent).toHaveBeenCalled();
|
|
41
|
-
const event = el.dispatchEvent.mock.calls[el.dispatchEvent.mock.calls.length - 1][0];
|
|
42
|
-
expect(event).toBeInstanceOf(_piePlayerEvents.ModelSetEvent);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
describe('changeSession', () => {
|
|
46
|
-
beforeEach(() => {
|
|
47
|
-
el.session = {
|
|
48
|
-
value: {}
|
|
49
|
-
};
|
|
50
|
-
el.model = {
|
|
51
|
-
responseAreasToBeFilled: 1
|
|
52
|
-
};
|
|
53
|
-
// Clear previous dispatch calls
|
|
54
|
-
el.dispatchEvent.mockClear();
|
|
55
|
-
});
|
|
56
|
-
it('dispatches session changed event - add answer', () => {
|
|
57
|
-
el.changeSession({
|
|
58
|
-
0: '1'
|
|
59
|
-
});
|
|
60
|
-
expect(el.dispatchEvent).toHaveBeenCalled();
|
|
61
|
-
const event = el.dispatchEvent.mock.calls[el.dispatchEvent.mock.calls.length - 1][0];
|
|
62
|
-
expect(event).toBeInstanceOf(_piePlayerEvents.SessionChangedEvent);
|
|
63
|
-
});
|
|
64
|
-
it('dispatches session changed event - remove answer', () => {
|
|
65
|
-
el.model = {
|
|
66
|
-
responseAreasToBeFilled: 1
|
|
67
|
-
};
|
|
68
|
-
el.session = {
|
|
69
|
-
value: {
|
|
70
|
-
0: '1'
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
el.dispatchEvent.mockClear();
|
|
74
|
-
el.changeSession({
|
|
75
|
-
0: undefined
|
|
76
|
-
});
|
|
77
|
-
expect(el.dispatchEvent).toHaveBeenCalled();
|
|
78
|
-
const event = el.dispatchEvent.mock.calls[el.dispatchEvent.mock.calls.length - 1][0];
|
|
79
|
-
expect(event).toBeInstanceOf(_piePlayerEvents.SessionChangedEvent);
|
|
80
|
-
});
|
|
81
|
-
it('dispatches session changed event - add/remove answer', () => {
|
|
82
|
-
el.model = {
|
|
83
|
-
responseAreasToBeFilled: 2
|
|
84
|
-
};
|
|
85
|
-
el.session = {
|
|
86
|
-
value: {
|
|
87
|
-
0: '1'
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
el.dispatchEvent.mockClear();
|
|
91
|
-
el.changeSession({
|
|
92
|
-
0: '1',
|
|
93
|
-
1: '0'
|
|
94
|
-
});
|
|
95
|
-
expect(el.dispatchEvent).toHaveBeenCalled();
|
|
96
|
-
let event = el.dispatchEvent.mock.calls[el.dispatchEvent.mock.calls.length - 1][0];
|
|
97
|
-
expect(event).toBeInstanceOf(_piePlayerEvents.SessionChangedEvent);
|
|
98
|
-
el.dispatchEvent.mockClear();
|
|
99
|
-
el.changeSession({
|
|
100
|
-
0: '1',
|
|
101
|
-
1: undefined
|
|
102
|
-
});
|
|
103
|
-
expect(el.dispatchEvent).toHaveBeenCalled();
|
|
104
|
-
event = el.dispatchEvent.mock.calls[el.dispatchEvent.mock.calls.length - 1][0];
|
|
105
|
-
expect(event).toBeInstanceOf(_piePlayerEvents.SessionChangedEvent);
|
|
106
|
-
el.dispatchEvent.mockClear();
|
|
107
|
-
el.changeSession({
|
|
108
|
-
0: undefined,
|
|
109
|
-
1: undefined
|
|
110
|
-
});
|
|
111
|
-
expect(el.dispatchEvent).toHaveBeenCalled();
|
|
112
|
-
event = el.dispatchEvent.mock.calls[el.dispatchEvent.mock.calls.length - 1][0];
|
|
113
|
-
expect(event).toBeInstanceOf(_piePlayerEvents.SessionChangedEvent);
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9waWVQbGF5ZXJFdmVudHMiLCJfaW5kZXgiLCJtb2NrUmVuZGVyIiwiamVzdCIsImZuIiwibW9ja1VubW91bnQiLCJtb2NrIiwiY3JlYXRlUm9vdCIsInJlbmRlciIsInVubW91bnQiLCJyZW5kZXJNYXRoIiwiZGVzY3JpYmUiLCJlbCIsImJlZm9yZUFsbCIsImN1c3RvbUVsZW1lbnRzIiwiZ2V0IiwiZGVmaW5lIiwiRHJhZ0luVGhlQmxhbmsiLCJiZWZvcmVFYWNoIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiX3JlbmRlciIsImRpc3BhdGNoRXZlbnQiLCJpdCIsIm1vZGVsIiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZCIsImV2ZW50IiwiY2FsbHMiLCJsZW5ndGgiLCJ0b0JlSW5zdGFuY2VPZiIsIk1vZGVsU2V0RXZlbnQiLCJzZXNzaW9uIiwidmFsdWUiLCJyZXNwb25zZUFyZWFzVG9CZUZpbGxlZCIsIm1vY2tDbGVhciIsImNoYW5nZVNlc3Npb24iLCJTZXNzaW9uQ2hhbmdlZEV2ZW50IiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9pbmRleC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNb2RlbFNldEV2ZW50LCBTZXNzaW9uQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQHBpZS1mcmFtZXdvcmsvcGllLXBsYXllci1ldmVudHMnO1xuaW1wb3J0IERyYWdJblRoZUJsYW5rIGZyb20gJy4uL2luZGV4JztcblxuLy8gTW9jayByZWFjdC1kb20vY2xpZW50XG5jb25zdCBtb2NrUmVuZGVyID0gamVzdC5mbigpO1xuY29uc3QgbW9ja1VubW91bnQgPSBqZXN0LmZuKCk7XG5qZXN0Lm1vY2soJ3JlYWN0LWRvbS9jbGllbnQnLCAoKSA9PiAoe1xuICBjcmVhdGVSb290OiBqZXN0LmZuKCgpID0+ICh7XG4gICAgcmVuZGVyOiBtb2NrUmVuZGVyLFxuICAgIHVubW91bnQ6IG1vY2tVbm1vdW50LFxuICB9KSksXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnLCAoKSA9PiAoeyByZW5kZXJNYXRoOiBqZXN0LmZuKCkgfSkpO1xuXG5kZXNjcmliZSgnZHJhZy1pbi10aGUtYmxhbmsnLCAoKSA9PiB7XG4gIGxldCBlbDtcblxuICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgIC8vIFJlZ2lzdGVyIHRoZSBjdXN0b20gZWxlbWVudCBpZiBub3QgYWxyZWFkeSByZWdpc3RlcmVkXG4gICAgaWYgKCFjdXN0b21FbGVtZW50cy5nZXQoJ2RyYWctaW4tdGhlLWJsYW5rLXRlc3QnKSkge1xuICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdkcmFnLWluLXRoZS1ibGFuay10ZXN0JywgRHJhZ0luVGhlQmxhbmspO1xuICAgIH1cbiAgfSk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkcmFnLWluLXRoZS1ibGFuay10ZXN0Jyk7XG4gICAgXG4gICAgLy8gTW9jayBfcmVuZGVyIHRvIGF2b2lkIGpzZG9tIGlubmVySFRNTCBpc3N1ZXNcbiAgICBlbC5fcmVuZGVyID0gamVzdC5mbigpO1xuICAgIFxuICAgIC8vIE1vY2sgZGlzcGF0Y2hFdmVudFxuICAgIGVsLmRpc3BhdGNoRXZlbnQgPSBqZXN0LmZuKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdldmVudHMnLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ21vZGVsJywgKCkgPT4ge1xuICAgICAgaXQoJ2Rpc3BhdGNoZXMgbW9kZWwgc2V0IGV2ZW50JywgKCkgPT4ge1xuICAgICAgICBlbC5tb2RlbCA9IHt9O1xuICAgICAgICBleHBlY3QoZWwuZGlzcGF0Y2hFdmVudCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICBjb25zdCBldmVudCA9IGVsLmRpc3BhdGNoRXZlbnQubW9jay5jYWxsc1tlbC5kaXNwYXRjaEV2ZW50Lm1vY2suY2FsbHMubGVuZ3RoIC0gMV1bMF07XG4gICAgICAgIGV4cGVjdChldmVudCkudG9CZUluc3RhbmNlT2YoTW9kZWxTZXRFdmVudCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VTZXNzaW9uJywgKCkgPT4ge1xuICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICAgIGVsLnNlc3Npb24gPSB7IHZhbHVlOiB7fSB9O1xuICAgICAgICBlbC5tb2RlbCA9IHsgcmVzcG9uc2VBcmVhc1RvQmVGaWxsZWQ6IDEgfTtcbiAgICAgICAgLy8gQ2xlYXIgcHJldmlvdXMgZGlzcGF0Y2ggY2FsbHNcbiAgICAgICAgZWwuZGlzcGF0Y2hFdmVudC5tb2NrQ2xlYXIoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGlzcGF0Y2hlcyBzZXNzaW9uIGNoYW5nZWQgZXZlbnQgLSBhZGQgYW5zd2VyJywgKCkgPT4ge1xuICAgICAgICBlbC5jaGFuZ2VTZXNzaW9uKHsgMDogJzEnIH0pO1xuICAgICAgICBleHBlY3QoZWwuZGlzcGF0Y2hFdmVudCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICBjb25zdCBldmVudCA9IGVsLmRpc3BhdGNoRXZlbnQubW9jay5jYWxsc1tlbC5kaXNwYXRjaEV2ZW50Lm1vY2suY2FsbHMubGVuZ3RoIC0gMV1bMF07XG4gICAgICAgIGV4cGVjdChldmVudCkudG9CZUluc3RhbmNlT2YoU2Vzc2lvbkNoYW5nZWRFdmVudCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2Rpc3BhdGNoZXMgc2Vzc2lvbiBjaGFuZ2VkIGV2ZW50IC0gcmVtb3ZlIGFuc3dlcicsICgpID0+IHtcbiAgICAgICAgZWwubW9kZWwgPSB7IHJlc3BvbnNlQXJlYXNUb0JlRmlsbGVkOiAxIH07XG4gICAgICAgIGVsLnNlc3Npb24gPSB7IHZhbHVlOiB7IDA6ICcxJyB9IH07XG4gICAgICAgIGVsLmRpc3BhdGNoRXZlbnQubW9ja0NsZWFyKCk7XG4gICAgICAgIFxuICAgICAgICBlbC5jaGFuZ2VTZXNzaW9uKHsgMDogdW5kZWZpbmVkIH0pO1xuICAgICAgICBleHBlY3QoZWwuZGlzcGF0Y2hFdmVudCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICBjb25zdCBldmVudCA9IGVsLmRpc3BhdGNoRXZlbnQubW9jay5jYWxsc1tlbC5kaXNwYXRjaEV2ZW50Lm1vY2suY2FsbHMubGVuZ3RoIC0gMV1bMF07XG4gICAgICAgIGV4cGVjdChldmVudCkudG9CZUluc3RhbmNlT2YoU2Vzc2lvbkNoYW5nZWRFdmVudCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2Rpc3BhdGNoZXMgc2Vzc2lvbiBjaGFuZ2VkIGV2ZW50IC0gYWRkL3JlbW92ZSBhbnN3ZXInLCAoKSA9PiB7XG4gICAgICAgIGVsLm1vZGVsID0geyByZXNwb25zZUFyZWFzVG9CZUZpbGxlZDogMiB9O1xuICAgICAgICBlbC5zZXNzaW9uID0geyB2YWx1ZTogeyAwOiAnMScgfSB9O1xuICAgICAgICBlbC5kaXNwYXRjaEV2ZW50Lm1vY2tDbGVhcigpO1xuICAgICAgICBcbiAgICAgICAgZWwuY2hhbmdlU2Vzc2lvbih7IDA6ICcxJywgMTogJzAnIH0pO1xuICAgICAgICBleHBlY3QoZWwuZGlzcGF0Y2hFdmVudCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICBsZXQgZXZlbnQgPSBlbC5kaXNwYXRjaEV2ZW50Lm1vY2suY2FsbHNbZWwuZGlzcGF0Y2hFdmVudC5tb2NrLmNhbGxzLmxlbmd0aCAtIDFdWzBdO1xuICAgICAgICBleHBlY3QoZXZlbnQpLnRvQmVJbnN0YW5jZU9mKFNlc3Npb25DaGFuZ2VkRXZlbnQpO1xuXG4gICAgICAgIGVsLmRpc3BhdGNoRXZlbnQubW9ja0NsZWFyKCk7XG4gICAgICAgIGVsLmNoYW5nZVNlc3Npb24oeyAwOiAnMScsIDE6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgZXhwZWN0KGVsLmRpc3BhdGNoRXZlbnQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgICAgZXZlbnQgPSBlbC5kaXNwYXRjaEV2ZW50Lm1vY2suY2FsbHNbZWwuZGlzcGF0Y2hFdmVudC5tb2NrLmNhbGxzLmxlbmd0aCAtIDFdWzBdO1xuICAgICAgICBleHBlY3QoZXZlbnQpLnRvQmVJbnN0YW5jZU9mKFNlc3Npb25DaGFuZ2VkRXZlbnQpO1xuXG4gICAgICAgIGVsLmRpc3BhdGNoRXZlbnQubW9ja0NsZWFyKCk7XG4gICAgICAgIGVsLmNoYW5nZVNlc3Npb24oeyAwOiB1bmRlZmluZWQsIDE6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgZXhwZWN0KGVsLmRpc3BhdGNoRXZlbnQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgICAgZXZlbnQgPSBlbC5kaXNwYXRjaEV2ZW50Lm1vY2suY2FsbHNbZWwuZGlzcGF0Y2hFdmVudC5tb2NrLmNhbGxzLmxlbmd0aCAtIDFdWzBdO1xuICAgICAgICBleHBlY3QoZXZlbnQpLnRvQmVJbnN0YW5jZU9mKFNlc3Npb25DaGFuZ2VkRXZlbnQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQTtBQUNBLE1BQU1HLFVBQVUsR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztBQUM1QixNQUFNQyxXQUFXLEdBQUdGLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7QUFDN0JELElBQUksQ0FBQ0csSUFBSSxDQUFDLGtCQUFrQixFQUFFLE9BQU87RUFDbkNDLFVBQVUsRUFBRUosSUFBSSxDQUFDQyxFQUFFLENBQUMsT0FBTztJQUN6QkksTUFBTSxFQUFFTixVQUFVO0lBQ2xCTyxPQUFPLEVBQUVKO0VBQ1gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFD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
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _react = _interopRequireDefault(require("react"));
|
|
5
|
-
var _react2 = require("@testing-library/react");
|
|
6
|
-
var _styles = require("@mui/material/styles");
|
|
7
|
-
var _main = require("../main");
|
|
8
|
-
jest.mock('@pie-lib/render-ui', () => ({
|
|
9
|
-
PreviewPrompt: ({
|
|
10
|
-
prompt
|
|
11
|
-
}) => /*#__PURE__*/_react.default.createElement("div", {
|
|
12
|
-
"data-testid": "preview-prompt"
|
|
13
|
-
}, prompt),
|
|
14
|
-
Collapsible: ({
|
|
15
|
-
children
|
|
16
|
-
}) => /*#__PURE__*/_react.default.createElement("div", {
|
|
17
|
-
"data-testid": "collapsible"
|
|
18
|
-
}, children),
|
|
19
|
-
UiLayout: ({
|
|
20
|
-
children
|
|
21
|
-
}) => /*#__PURE__*/_react.default.createElement("div", {
|
|
22
|
-
"data-testid": "ui-layout"
|
|
23
|
-
}, children),
|
|
24
|
-
hasText: jest.fn(() => true),
|
|
25
|
-
hasMedia: jest.fn(() => false),
|
|
26
|
-
color: {
|
|
27
|
-
text: () => '#000',
|
|
28
|
-
background: () => '#fff'
|
|
29
|
-
}
|
|
30
|
-
}));
|
|
31
|
-
jest.mock('@pie-lib/correct-answer-toggle', () => ({
|
|
32
|
-
__esModule: true,
|
|
33
|
-
default: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
34
|
-
"data-testid": "correct-answer-toggle"
|
|
35
|
-
}, props.children)
|
|
36
|
-
}));
|
|
37
|
-
jest.mock('@pie-lib/mask-markup', () => ({
|
|
38
|
-
DragInTheBlank: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
39
|
-
"data-testid": "drag-in-the-blank"
|
|
40
|
-
}, props.children)
|
|
41
|
-
}));
|
|
42
|
-
const theme = (0, _styles.createTheme)();
|
|
43
|
-
describe('Main', () => {
|
|
44
|
-
let onChange;
|
|
45
|
-
beforeEach(() => {
|
|
46
|
-
onChange = jest.fn();
|
|
47
|
-
});
|
|
48
|
-
const renderMain = (extras = {}) => {
|
|
49
|
-
const props = {
|
|
50
|
-
model: {
|
|
51
|
-
prompt: 'Prompt',
|
|
52
|
-
mode: 'gather',
|
|
53
|
-
rationale: 'Rationale',
|
|
54
|
-
teacherInstructions: 'Teacher Instructions',
|
|
55
|
-
rationaleEnabled: true,
|
|
56
|
-
promptEnabled: true,
|
|
57
|
-
teacherInstructionsEnabled: true,
|
|
58
|
-
studentInstructionsEnabled: true,
|
|
59
|
-
id: '1',
|
|
60
|
-
element: 'drag-in-the-blank',
|
|
61
|
-
markup: '{{0}} + {{1}} = 15',
|
|
62
|
-
disabled: false,
|
|
63
|
-
choices: [{
|
|
64
|
-
value: '<div>9</div>',
|
|
65
|
-
id: '1'
|
|
66
|
-
}, {
|
|
67
|
-
value: '<div>6</div>',
|
|
68
|
-
id: '0'
|
|
69
|
-
}],
|
|
70
|
-
choicesPosition: 'below',
|
|
71
|
-
correctResponse: {
|
|
72
|
-
0: '0',
|
|
73
|
-
1: '1'
|
|
74
|
-
},
|
|
75
|
-
duplicates: true,
|
|
76
|
-
alternateResponses: [['1'], ['0']],
|
|
77
|
-
feedback: {},
|
|
78
|
-
...extras
|
|
79
|
-
},
|
|
80
|
-
value: {
|
|
81
|
-
0: '1',
|
|
82
|
-
1: '0'
|
|
83
|
-
},
|
|
84
|
-
onChange
|
|
85
|
-
};
|
|
86
|
-
return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
|
|
87
|
-
theme: theme
|
|
88
|
-
}, /*#__PURE__*/_react.default.createElement(_main.Main, props)));
|
|
89
|
-
};
|
|
90
|
-
describe('render', () => {
|
|
91
|
-
it('should render in gather mode', () => {
|
|
92
|
-
const {
|
|
93
|
-
container
|
|
94
|
-
} = renderMain();
|
|
95
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
96
|
-
});
|
|
97
|
-
it('should render in view mode', () => {
|
|
98
|
-
const {
|
|
99
|
-
container
|
|
100
|
-
} = renderMain({
|
|
101
|
-
mode: 'view'
|
|
102
|
-
});
|
|
103
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
104
|
-
});
|
|
105
|
-
it('should render in evaluate mode', () => {
|
|
106
|
-
const {
|
|
107
|
-
container
|
|
108
|
-
} = renderMain({
|
|
109
|
-
mode: 'evaluate'
|
|
110
|
-
});
|
|
111
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
112
|
-
});
|
|
113
|
-
it('should render without teacher instructions', () => {
|
|
114
|
-
const {
|
|
115
|
-
container
|
|
116
|
-
} = renderMain({
|
|
117
|
-
teacherInstructions: null
|
|
118
|
-
});
|
|
119
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
120
|
-
});
|
|
121
|
-
it('should render without rationale', () => {
|
|
122
|
-
const {
|
|
123
|
-
container
|
|
124
|
-
} = renderMain({
|
|
125
|
-
rationale: null
|
|
126
|
-
});
|
|
127
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
128
|
-
});
|
|
129
|
-
it('should render without prompt', () => {
|
|
130
|
-
const {
|
|
131
|
-
container
|
|
132
|
-
} = renderMain({
|
|
133
|
-
prompt: null
|
|
134
|
-
});
|
|
135
|
-
expect(container.firstChild).toBeInTheDocument();
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX21haW4iLCJqZXN0IiwibW9jayIsIlByZXZpZXdQcm9tcHQiLCJwcm9tcHQiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIkNvbGxhcHNpYmxlIiwiY2hpbGRyZW4iLCJVaUxheW91dCIsImhhc1RleHQiLCJmbiIsImhhc01lZGlhIiwiY29sb3IiLCJ0ZXh0IiwiYmFja2dyb3VuZCIsIl9fZXNNb2R1bGUiLCJwcm9wcyIsIkRyYWdJblRoZUJsYW5rIiwidGhlbWUiLCJjcmVhdGVUaGVtZSIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJiZWZvcmVFYWNoIiwicmVuZGVyTWFpbiIsImV4dHJhcyIsIm1vZGVsIiwibW9kZSIsInJhdGlvbmFsZSIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJyYXRpb25hbGVFbmFibGVkIiwicHJvbXB0RW5hYmxlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJpZCIsImVsZW1lbnQiLCJtYXJrdXAiLCJkaXNhYmxlZCIsImNob2ljZXMiLCJ2YWx1ZSIsImNob2ljZXNQb3NpdGlvbiIsImNvcnJlY3RSZXNwb25zZSIsImR1cGxpY2F0ZXMiLCJhbHRlcm5hdGVSZXNwb25zZXMiLCJmZWVkYmFjayIsInJlbmRlciIsIlRoZW1lUHJvdmlkZXIiLCJNYWluIiwiaXQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL21haW4udGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHsgVGhlbWVQcm92aWRlciwgY3JlYXRlVGhlbWUgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5cbmltcG9ydCB7IE1haW4gfSBmcm9tICcuLi9tYWluJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9yZW5kZXItdWknLCAoKSA9PiAoe1xuICBQcmV2aWV3UHJvbXB0OiAoeyBwcm9tcHQgfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cInByZXZpZXctcHJvbXB0XCI+e3Byb21wdH08L2Rpdj4sXG4gIENvbGxhcHNpYmxlOiAoeyBjaGlsZHJlbiB9KSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiY29sbGFwc2libGVcIj57Y2hpbGRyZW59PC9kaXY+LFxuICBVaUxheW91dDogKHsgY2hpbGRyZW4gfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cInVpLWxheW91dFwiPntjaGlsZHJlbn08L2Rpdj4sXG4gIGhhc1RleHQ6IGplc3QuZm4oKCkgPT4gdHJ1ZSksXG4gIGhhc01lZGlhOiBqZXN0LmZuKCgpID0+IGZhbHNlKSxcbiAgY29sb3I6IHtcbiAgICB0ZXh0OiAoKSA9PiAnIzAwMCcsXG4gICAgYmFja2dyb3VuZDogKCkgPT4gJyNmZmYnLFxuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvcnJlY3QtYW5zd2VyLXRvZ2dsZScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImNvcnJlY3QtYW5zd2VyLXRvZ2dsZVwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvbWFzay1tYXJrdXAnLCAoKSA9PiAoe1xuICBEcmFnSW5UaGVCbGFuazogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiZHJhZy1pbi10aGUtYmxhbmtcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxufSkpO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmRlc2NyaWJlKCdNYWluJywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2U7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbmRlck1haW4gPSAoZXh0cmFzID0ge30pID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIG1vZGVsOiB7XG4gICAgICAgIHByb21wdDogJ1Byb21wdCcsXG4gICAgICAgIG1vZGU6ICdnYXRoZXInLFxuICAgICAgICByYXRpb25hbGU6ICdSYXRpb25hbGUnLFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiAnVGVhY2hlciBJbnN0cnVjdGlvbnMnLFxuICAgICAgICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICAgICAgICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIGlkOiAnMScsXG4gICAgICAgIGVsZW1lbnQ6ICdkcmFnLWluLXRoZS1ibGFuaycsXG4gICAgICAgIG1hcmt1cDogJ3t7MH19ICsge3sxfX0gPSAxNScsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY2hvaWNlczogW1xuICAgICAgICAgIHsgdmFsdWU6ICc8ZGl2Pjk8L2Rpdj4nLCBpZDogJzEnIH0sXG4gICAgICAgICAgeyB2YWx1ZTogJzxkaXY+NjwvZGl2PicsIGlkOiAnMCcgfSxcbiAgICAgICAgXSxcbiAgICAgICAgY2hvaWNlc1Bvc2l0aW9uOiAnYmVsb3cnLFxuICAgICAgICBjb3JyZWN0UmVzcG9uc2U6IHsgMDogJzAnLCAxOiAnMScgfSxcbiAgICAgICAgZHVwbGljYXRlczogdHJ1ZSxcbiAgICAgICAgYWx0ZXJuYXRlUmVzcG9uc2VzOiBbWycxJ10sIFsnMCddXSxcbiAgICAgICAgZmVlZGJhY2s6IHt9LFxuICAgICAgICAuLi5leHRyYXMsXG4gICAgICB9LFxuICAgICAgdmFsdWU6IHsgMDogJzEnLCAxOiAnMCcgfSxcbiAgICAgIG9uQ2hhbmdlLFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVuZGVyKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgPE1haW4gey4uLnByb3BzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlbmRlciBpbiBnYXRoZXIgbW9kZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJNYWluKCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciBpbiB2aWV3IG1vZGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyTWFpbih7IG1vZGU6ICd2aWV3JyB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVuZGVyIGluIGV2YWx1YXRlIG1vZGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyTWFpbih7IG1vZGU6ICdldmFsdWF0ZScgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciB3aXRob3V0IHRlYWNoZXIgaW5zdHJ1Y3Rpb25zJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlck1haW4oeyB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgd2l0aG91dCByYXRpb25hbGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyTWFpbih7IHJhdGlvbmFsZTogbnVsbCB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVuZGVyIHdpdGhvdXQgcHJvbXB0JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlck1haW4oeyBwcm9tcHQ6IG51bGwgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUVBSSxJQUFJLENBQUNDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPO0VBQ3JDQyxhQUFhLEVBQUVBLENBQUM7SUFBRUM7RUFBTyxDQUFDLGtCQUFLVCxNQUFBLENBQUFVLE9BQUEsQ0FBQUMsYUFBQTtJQUFLLGVBQVk7RUFBZ0IsR0FBRUYsTUFBWSxDQUFDO0VBQy9FRyxXQUFXLEVBQUVBLENBQUM7SUFBRUM7RUFBUyxDQUFDLGtCQUFLYixNQUFBLENBQUFVLE9BQUEsQ0FBQUMsYUFBQTtJQUFLLGVBQVk7RUFBYSxHQUFFRSxRQUFjLENBQUM7RUFDOUVDLFFBQVEsRUFBRUEsQ0FBQztJQUFFRDtFQUFTLENBQUMsa0JBQUtiLE1BQUEsQ0FBQVUsT0FBQSxDQUFBQyxhQUFBO0lBQUssZUFBWTtFQUFXLEdBQUVFLFFBQWMsQ0FBQztFQUN6RUUs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LENBQUMsR0FBR3pCLFVBQVUsQ0FBQyxDQUFDO01BQ2xDMEIsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztJQUVGSixFQUFFLENBQUMsNEJBQTRCLEVBQUUsTUFBTTtNQUNyQyxNQUFNO1FBQUVDO01BQVUsQ0FBQyxHQUFHekIsVUFBVSxDQUFDO1FBQUVHLElBQUksRUFBRTtNQUFPLENBQUMsQ0FBQztNQUNsRHVCLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRkosRUFBRSxDQUFDLGdDQUFnQyxFQUFFLE1BQU07TUFDekMsTUFBTTtRQUFFQztNQUFVLENBQUMsR0FBR3pCLFVBQVUsQ0FBQztRQUFFRyxJQUFJLEVBQUU7TUFBVyxDQUFDLENBQUM7TUFDdER1QixNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0lBRUZKLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxNQUFNO01BQ3JELE1BQU07UUFBRUM7TUFBVSxDQUFDLEdBQUd6QixVQUFVLENBQUM7UUFBRUssbUJBQW1CLEVBQUU7TUFBSyxDQUFDLENBQUM7TUFDL0RxQixNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0lBRUZKLEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxNQUFNO01BQzFDLE1BQU07UUFBRUM7TUFBVSxDQUFDLEdBQUd6QixVQUFVLENBQUM7UUFBRUksU0FBUyxFQUFFO01BQUssQ0FBQyxDQUFDO01BQ3JEc0IsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztJQUVGSixFQUFFLENBQUMsOEJBQThCLEVBQUUsTUFBTTtNQUN2QyxNQUFNO1FBQUVDO01BQVUsQ0FBQyxHQUFHekIsVUFBVSxDQUFDO1FBQUVwQixNQUFNLEVBQUU7TUFBSyxDQUFDLENBQUM7TUFDbEQ4QyxNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|