@pie-element/explicit-constructed-response 11.2.2-beta.3 → 11.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.
@@ -1,11 +0,0 @@
1
- {
2
- "hash": "1734133933",
3
- "info": [
4
- {
5
- "pie": "@pie-element/explicit-constructed-response",
6
- "version": {
7
- "requested": "latest"
8
- }
9
- }
10
- ]
11
- }
@@ -1,166 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
- var _react = require("@testing-library/react");
6
- var _react2 = _interopRequireDefault(require("react"));
7
- var _styles = require("@mui/material/styles");
8
- var _main = require("../main");
9
- jest.mock('@pie-lib/render-ui', () => ({
10
- PreviewPrompt: ({
11
- prompt
12
- }) => /*#__PURE__*/_react2.default.createElement("div", {
13
- "data-testid": "preview-prompt"
14
- }, prompt),
15
- Collapsible: ({
16
- children
17
- }) => /*#__PURE__*/_react2.default.createElement("div", {
18
- "data-testid": "collapsible"
19
- }, children),
20
- UiLayout: ({
21
- children
22
- }) => /*#__PURE__*/_react2.default.createElement("div", {
23
- "data-testid": "ui-layout"
24
- }, children),
25
- hasText: jest.fn(() => true),
26
- hasMedia: jest.fn(() => false),
27
- color: {
28
- text: () => '#000',
29
- background: () => '#fff'
30
- }
31
- }));
32
- jest.mock('@pie-lib/correct-answer-toggle', () => ({
33
- __esModule: true,
34
- default: ({
35
- children
36
- }) => /*#__PURE__*/_react2.default.createElement("div", {
37
- "data-testid": "correct-answer-toggle"
38
- }, children)
39
- }));
40
- jest.mock('@pie-lib/mask-markup', () => ({
41
- ConstructedResponse: props => /*#__PURE__*/_react2.default.createElement("div", (0, _extends2.default)({
42
- "data-testid": "constructed-response"
43
- }, props))
44
- }));
45
- const theme = (0, _styles.createTheme)();
46
- const choice = (l, v) => ({
47
- label: l,
48
- value: v
49
- });
50
- describe('Main', () => {
51
- let onChange = jest.fn();
52
- beforeEach(() => {
53
- jest.clearAllMocks();
54
- });
55
- const renderMain = (extra = {}) => {
56
- const props = {
57
- classes: {},
58
- prompt: 'Prompt',
59
- rationale: 'Rationale',
60
- teacherInstructions: 'Teacher Instructions',
61
- disabled: false,
62
- choices: {
63
- 0: [choice('cow', '0'), choice('cattle', '1'), choice('calf', '2')],
64
- 1: [choice('over', '0'), choice('past', '1'), choice('beyond', '2')],
65
- 2: [choice('moon', '0')]
66
- },
67
- markup: '<p>The {{0}} jumped {{1}} the {{2}}</p>',
68
- mode: 'gather',
69
- feedback: {
70
- 0: 'correct',
71
- 1: 'correct',
72
- 2: 'correct'
73
- },
74
- value: {
75
- 0: '1',
76
- 1: '0',
77
- 2: '0'
78
- },
79
- onChange,
80
- ...extra
81
- };
82
- return (0, _react.render)(/*#__PURE__*/_react2.default.createElement(_styles.ThemeProvider, {
83
- theme: theme
84
- }, /*#__PURE__*/_react2.default.createElement(_main.Main, props)));
85
- };
86
- describe('logic', () => {
87
- it('onChange calls the onChange prop after debounce', () => {
88
- jest.useFakeTimers();
89
- const {
90
- container
91
- } = renderMain();
92
-
93
- // Get the Main component instance to test internal onChange method
94
- const mainInstance = new _main.Main({
95
- classes: {},
96
- prompt: 'Prompt',
97
- rationale: 'Rationale',
98
- teacherInstructions: 'Teacher Instructions',
99
- disabled: false,
100
- choices: {
101
- 0: [choice('cow', '0'), choice('cattle', '1'), choice('calf', '2')],
102
- 1: [choice('over', '0'), choice('past', '1'), choice('beyond', '2')],
103
- 2: [choice('moon', '0')]
104
- },
105
- markup: '<p>The {{0}} jumped {{1}} the {{2}}</p>',
106
- mode: 'gather',
107
- feedback: {
108
- 0: 'correct',
109
- 1: 'correct',
110
- 2: 'correct'
111
- },
112
- value: {
113
- 0: '1',
114
- 1: '0',
115
- 2: '0'
116
- },
117
- onChange
118
- });
119
- mainInstance.onChange({
120
- 0: '0',
121
- 1: '0',
122
- 2: '0'
123
- });
124
-
125
- // Fast-forward time to trigger debounced callback
126
- jest.advanceTimersByTime(400);
127
- expect(onChange).toHaveBeenCalledWith({
128
- 0: '0',
129
- 1: '0',
130
- 2: '0'
131
- });
132
- jest.useRealTimers();
133
- });
134
- it('onChange when all responses have max length 1', () => {
135
- const mainInstance = new _main.Main({
136
- classes: {},
137
- disabled: false,
138
- choices: {
139
- 0: [choice('b', '0')],
140
- 1: [choice('a', '0')],
141
- 2: [choice('c', '0')]
142
- },
143
- maxLengthPerChoice: [1, 1, 1],
144
- markup: '<p>The {{0}} jumped {{1}} the {{2}}</p>',
145
- mode: 'gather',
146
- value: {
147
- 0: '1',
148
- 1: '0',
149
- 2: '0'
150
- },
151
- onChange
152
- });
153
- mainInstance.onChange({
154
- 0: 'a',
155
- 1: 'b',
156
- 2: 'c'
157
- });
158
- expect(onChange).toHaveBeenCalledWith({
159
- 0: 'a',
160
- 1: 'b',
161
- 2: 'c'
162
- });
163
- });
164
- });
165
- });
166
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0MiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVzIiwiX21haW4iLCJqZXN0IiwibW9jayIsIlByZXZpZXdQcm9tcHQiLCJwcm9tcHQiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIkNvbGxhcHNpYmxlIiwiY2hpbGRyZW4iLCJVaUxheW91dCIsImhhc1RleHQiLCJmbiIsImhhc01lZGlhIiwiY29sb3IiLCJ0ZXh0IiwiYmFja2dyb3VuZCIsIl9fZXNNb2R1bGUiLCJDb25zdHJ1Y3RlZFJlc3BvbnNlIiwicHJvcHMiLCJfZXh0ZW5kczIiLCJ0aGVtZSIsImNyZWF0ZVRoZW1lIiwiY2hvaWNlIiwibCIsInYiLCJsYWJlbCIsInZhbHVlIiwiZGVzY3JpYmUiLCJvbkNoYW5nZSIsImJlZm9yZUVhY2giLCJjbGVhckFsbE1vY2tzIiwicmVuZGVyTWFpbiIsImV4dHJhIiwiY2xhc3NlcyIsInJhdGlvbmFsZSIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJkaXNhYmxlZCIsImNob2ljZXMiLCJtYXJrdXAiLCJtb2RlIiwiZmVlZGJhY2siLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiTWFpbiIsIml0IiwidXNlRmFrZVRpbWVycyIsImNvbnRhaW5lciIsIm1haW5JbnN0YW5jZSIsImFkdmFuY2VUaW1lcnNCeVRpbWUiLCJleHBlY3QiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInVzZVJlYWxUaW1lcnMiLCJtYXhMZW5ndGhQZXJDaG9pY2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL21haW4udGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVGhlbWVQcm92aWRlciwgY3JlYXRlVGhlbWUgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5cbmltcG9ydCB7IE1haW4gfSBmcm9tICcuLi9tYWluJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9yZW5kZXItdWknLCAoKSA9PiAoe1xuICBQcmV2aWV3UHJvbXB0OiAoeyBwcm9tcHQgfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cInByZXZpZXctcHJvbXB0XCI+e3Byb21wdH08L2Rpdj4sXG4gIENvbGxhcHNpYmxlOiAoeyBjaGlsZHJlbiB9KSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiY29sbGFwc2libGVcIj57Y2hpbGRyZW59PC9kaXY+LFxuICBVaUxheW91dDogKHsgY2hpbGRyZW4gfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cInVpLWxheW91dFwiPntjaGlsZHJlbn08L2Rpdj4sXG4gIGhhc1RleHQ6IGplc3QuZm4oKCkgPT4gdHJ1ZSksXG4gIGhhc01lZGlhOiBqZXN0LmZuKCgpID0+IGZhbHNlKSxcbiAgY29sb3I6IHtcbiAgICB0ZXh0OiAoKSA9PiAnIzAwMCcsXG4gICAgYmFja2dyb3VuZDogKCkgPT4gJyNmZmYnLFxuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvcnJlY3QtYW5zd2VyLXRvZ2dsZScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJjb3JyZWN0LWFuc3dlci10b2dnbGVcIj57Y2hpbGRyZW59PC9kaXY+LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL21hc2stbWFya3VwJywgKCkgPT4gKHtcbiAgQ29uc3RydWN0ZWRSZXNwb25zZTogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiY29uc3RydWN0ZWQtcmVzcG9uc2VcIiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmNvbnN0IGNob2ljZSA9IChsLCB2KSA9PiAoeyBsYWJlbDogbCwgdmFsdWU6IHYgfSk7XG5cbmRlc2NyaWJlKCdNYWluJywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5jbGVhckFsbE1vY2tzKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbmRlck1haW4gPSAoZXh0cmEgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBwcm9tcHQ6ICdQcm9tcHQnLFxuICAgICAgcmF0aW9uYWxlOiAnUmF0aW9uYWxlJyxcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6ICdUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICBjaG9pY2VzOiB7XG4gICAgICAgIDA6IFtjaG9pY2UoJ2NvdycsICcwJyksIGNob2ljZSgnY2F0dGxlJywgJzEnKSwgY2hvaWNlKCdjYWxmJywgJzInKV0sXG4gICAgICAgIDE6IFtjaG9pY2UoJ292ZXInLCAnMCcpLCBjaG9pY2UoJ3Bhc3QnLCAnMScpLCBjaG9pY2UoJ2JleW9uZCcsICcyJyldLFxuICAgICAgICAyOiBbY2hvaWNlKCdtb29uJywgJzAnKV0sXG4gICAgICB9LFxuICAgICAgbWFya3VwOiAnPHA+VGhlIHt7MH19IGp1bXBlZCB7ezF9fSB0aGUge3syfX08L3A+JyxcbiAgICAgIG1vZGU6ICdnYXRoZXInLFxuICAgICAgZmVlZGJhY2s6IHsgMDogJ2NvcnJlY3QnLCAxOiAnY29ycmVjdCcsIDI6ICdjb3JyZWN0JyB9LFxuICAgICAgdmFsdWU6IHsgMDogJzEnLCAxOiAnMCcsIDI6ICcwJyB9LFxuICAgICAgb25DaGFuZ2UsXG4gICAgICAuLi5leHRyYSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlbmRlcihcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgIDxNYWluIHsuLi5wcm9wc30gLz5cbiAgICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgICApO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBpdCgnb25DaGFuZ2UgY2FsbHMgdGhlIG9uQ2hhbmdlIHByb3AgYWZ0ZXIgZGVib3VuY2UnLCAoKSA9PiB7XG4gICAgICBqZXN0LnVzZUZha2VUaW1lcnMoKTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJNYWluKCk7XG5cbiAgICAgIC8vIEdldCB0aGUgTWFpbiBjb21wb25lbnQgaW5zdGFuY2UgdG8gdGVzdCBpbnRlcm5hbCBvbkNoYW5nZSBtZXRob2RcbiAgICAgIGNvbnN0IG1haW5JbnN0YW5jZSA9IG5ldyBNYWluKHtcbiAgICAgICAgY2xhc3Nlczoge30sXG4gICAgICAgIHByb21wdDogJ1Byb21wdCcsXG4gICAgICAgIHJhdGlvbmFsZTogJ1JhdGlvbmFsZScsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6ICdUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY2hvaWNlczoge1xuICAgICAgICAgIDA6IFtjaG9pY2UoJ2NvdycsICcwJyksIGNob2ljZSgnY2F0dGxlJywgJzEnKSwgY2hvaWNlKCdjYWxmJywgJzInKV0sXG4gICAgICAgICAgMTogW2Nob2ljZSgnb3ZlcicsICcwJyksIGNob2ljZSgncGFzdCcsICcxJyksIGNob2ljZSgnYmV5b25kJywgJzInKV0sXG4gICAgICAgICAgMjogW2Nob2ljZSgnbW9vbicsICcwJyldLFxuICAgICAgICB9LFxuICAgICAgICBtYXJrdXA6ICc8cD5UaGUge3swfX0ganVtcGVkIHt7MX19IHRoZSB7ezJ9fTwvcD4nLFxuICAgICAgICBtb2RlOiAnZ2F0aGVyJyxcbiAgICAgICAgZmVlZGJhY2s6IHsgMDogJ2NvcnJlY3QnLCAxOiAnY29ycmVjdCcsIDI6ICdjb3JyZWN0JyB9LFxuICAgICAgICB2YWx1ZTogeyAwOiAnMScsIDE6ICcwJywgMjogJzAnIH0sXG4gICAgICAgIG9uQ2hhbmdlLFxuICAgICAgfSk7XG5cbiAgICAgIG1haW5JbnN0YW5jZS5vbkNoYW5nZSh7IDA6ICcwJywgMTogJzAnLCAyOiAnMCcgfSk7XG5cbiAgICAgIC8vIEZhc3QtZm9yd2FyZCB0aW1lIHRvIHRyaWdnZXIgZGVib3VuY2VkIGNhbGxiYWNrXG4gICAgICBqZXN0LmFkdmFuY2VUaW1lcnNCeVRpbWUoNDAwKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IDA6ICcwJywgMTogJzAnLCAyOiAnMCcgfSk7XG5cbiAgICAgIGplc3QudXNlUmVhbFRpbWVycygpO1xuICAgIH0pO1xuXG4gICAgaXQoJ29uQ2hhbmdlIHdoZW4gYWxsIHJlc3BvbnNlcyBoYXZlIG1heCBsZW5ndGggMScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1haW5JbnN0YW5jZSA9IG5ldyBNYWluKHtcbiAgICAgICAgY2xhc3Nlczoge30sXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY2hvaWNlczoge1xuICAgICAgICAgIDA6IFtjaG9pY2UoJ2InLCAnMCcpXSxcbiAgICAgICAgICAxOiBbY2hvaWNlKCdhJywgJzAnKV0sXG4gICAgICAgICAgMjogW2Nob2ljZSgnYycsICcwJyldLFxuICAgICAgICB9LFxuICAgICAgICBtYXhMZW5ndGhQZXJDaG9pY2U6IFsxLCAxLCAxXSxcbiAgICAgICAgbWFya3VwOiAnPHA+VGhlIHt7MH19IGp1bXBlZCB7ezF9fSB0aGUge3syfX08L3A+JyxcbiAgICAgICAgbW9kZTogJ2dhdGhlcicsXG4gICAgICAgIHZhbHVlOiB7IDA6ICcxJywgMTogJzAnLCAyOiAnMCcgfSxcbiAgICAgICAgb25DaGFuZ2UsXG4gICAgICB9KTtcblxuICAgICAgbWFpbkluc3RhbmNlLm9uQ2hhbmdlKHsgMDogJ2EnLCAxOiAnYicsIDI6ICdjJyB9KTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IDA6ICdhJywgMTogJ2InLCAyOiAnYycgfSk7XG4gICAgfSk7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