@pie-element/hotspot 9.1.0 → 9.2.0-mui-update.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/CHANGELOG.md +66 -0
- package/configure/CHANGELOG.md +66 -0
- package/configure/lib/DeleteWidget.js +31 -44
- package/configure/lib/DeleteWidget.js.map +1 -1
- package/configure/lib/__tests__/DeleteWidget.test.js +60 -0
- package/configure/lib/__tests__/hotspot-container.test.js +377 -0
- package/configure/lib/__tests__/hotspot-drawable.test.js +233 -0
- package/configure/lib/__tests__/index.test.js +211 -0
- package/configure/lib/__tests__/root.test.js +440 -0
- package/configure/lib/__tests__/utils.test.js +287 -0
- package/configure/lib/button.js +27 -46
- package/configure/lib/button.js.map +1 -1
- package/configure/lib/buttons/circle.js +21 -28
- package/configure/lib/buttons/circle.js.map +1 -1
- package/configure/lib/buttons/polygon.js +27 -34
- package/configure/lib/buttons/polygon.js.map +1 -1
- package/configure/lib/buttons/rectangle.js +27 -34
- package/configure/lib/buttons/rectangle.js.map +1 -1
- package/configure/lib/defaults.js +3 -4
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/hotspot-circle.js +133 -199
- package/configure/lib/hotspot-circle.js.map +1 -1
- package/configure/lib/hotspot-container.js +251 -356
- package/configure/lib/hotspot-container.js.map +1 -1
- package/configure/lib/hotspot-drawable.js +361 -473
- package/configure/lib/hotspot-drawable.js.map +1 -1
- package/configure/lib/hotspot-palette.js +93 -140
- package/configure/lib/hotspot-palette.js.map +1 -1
- package/configure/lib/hotspot-polygon.js +213 -318
- package/configure/lib/hotspot-polygon.js.map +1 -1
- package/configure/lib/hotspot-rectangle.js +129 -193
- package/configure/lib/hotspot-rectangle.js.map +1 -1
- package/configure/lib/icons.js +1 -1
- package/configure/lib/icons.js.map +1 -1
- package/configure/lib/image-konva.js +47 -87
- package/configure/lib/image-konva.js.map +1 -1
- package/configure/lib/index.js +163 -223
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/root.js +302 -394
- package/configure/lib/root.js.map +1 -1
- package/configure/lib/shapes/circle.js +70 -102
- package/configure/lib/shapes/circle.js.map +1 -1
- package/configure/lib/shapes/index.js +5 -13
- package/configure/lib/shapes/index.js.map +1 -1
- package/configure/lib/shapes/polygon.js +65 -97
- package/configure/lib/shapes/polygon.js.map +1 -1
- package/configure/lib/shapes/rectagle.js +70 -102
- package/configure/lib/shapes/rectagle.js.map +1 -1
- package/configure/lib/shapes/utils.js +3 -9
- package/configure/lib/shapes/utils.js.map +1 -1
- package/configure/lib/upload-control.js +26 -53
- package/configure/lib/upload-control.js.map +1 -1
- package/configure/lib/utils.js +85 -138
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +11 -10
- package/configure/src/__tests__/index.test.js +11 -5
- package/configure/src/button.jsx +12 -20
- package/configure/src/hotspot-circle.jsx +5 -18
- package/configure/src/hotspot-container.jsx +82 -98
- package/configure/src/hotspot-drawable.jsx +43 -45
- package/configure/src/hotspot-palette.jsx +45 -37
- package/configure/src/hotspot-polygon.jsx +4 -20
- package/configure/src/hotspot-rectangle.jsx +4 -17
- package/configure/src/index.js +12 -2
- package/configure/src/root.jsx +85 -79
- package/configure/src/upload-control.jsx +6 -16
- package/controller/CHANGELOG.md +52 -0
- package/controller/lib/__tests__/index.test.js +586 -0
- package/controller/lib/__tests__/utils.test.js +8 -0
- package/controller/lib/defaults.js +3 -4
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +152 -206
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +15 -35
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/demo/pie.manifest.json +11 -0
- package/lib/__tests__/container.test.js +221 -0
- package/lib/__tests__/index.test.js +113 -0
- package/lib/__tests__/polygon.test.js +245 -0
- package/lib/__tests__/rectangle.test.js +236 -0
- package/lib/__tests__/session-updater.test.js +69 -0
- package/lib/hotspot/circle.js +111 -170
- package/lib/hotspot/circle.js.map +1 -1
- package/lib/hotspot/container.js +175 -261
- package/lib/hotspot/container.js.map +1 -1
- package/lib/hotspot/icons.js +1 -1
- package/lib/hotspot/icons.js.map +1 -1
- package/lib/hotspot/image-konva-tooltip.js +66 -113
- package/lib/hotspot/image-konva-tooltip.js.map +1 -1
- package/lib/hotspot/index.js +136 -199
- package/lib/hotspot/index.js.map +1 -1
- package/lib/hotspot/polygon.js +151 -215
- package/lib/hotspot/polygon.js.map +1 -1
- package/lib/hotspot/rectangle.js +130 -186
- package/lib/hotspot/rectangle.js.map +1 -1
- package/lib/index.js +188 -257
- package/lib/index.js.map +1 -1
- package/lib/session-updater.js +13 -19
- package/lib/session-updater.js.map +1 -1
- package/package.json +14 -11
- package/src/hotspot/circle.jsx +2 -13
- package/src/hotspot/container.jsx +35 -50
- package/src/hotspot/index.jsx +16 -28
- package/src/hotspot/polygon.jsx +4 -13
- package/src/hotspot/rectangle.jsx +4 -13
- package/src/index.js +21 -12
- package/LICENSE.md +0 -5
- package/configure/node_modules/debug/CHANGELOG.md +0 -395
- package/configure/node_modules/debug/LICENSE +0 -19
- package/configure/node_modules/debug/README.md +0 -437
- package/configure/node_modules/debug/node.js +0 -1
- package/configure/node_modules/debug/package.json +0 -51
- package/configure/node_modules/debug/src/browser.js +0 -180
- package/configure/node_modules/debug/src/common.js +0 -249
- package/configure/node_modules/debug/src/index.js +0 -12
- package/configure/node_modules/debug/src/node.js +0 -177
|
@@ -0,0 +1,245 @@
|
|
|
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 _enzymeToJson = _interopRequireDefault(require("enzyme-to-json"));
|
|
8
|
+
var _konva = _interopRequireDefault(require("konva"));
|
|
9
|
+
var _reactKonva = require("react-konva");
|
|
10
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
11
|
+
var _polygon = _interopRequireDefault(require("../hotspot/polygon"));
|
|
12
|
+
var _imageKonvaTooltip = _interopRequireDefault(require("../hotspot/image-konva-tooltip"));
|
|
13
|
+
var _icons = require("../hotspot/icons");
|
|
14
|
+
_konva.default.isBrowser = false;
|
|
15
|
+
describe('Polygon', () => {
|
|
16
|
+
let onClick, wrapper;
|
|
17
|
+
const mkWrapper = (opts = {}) => {
|
|
18
|
+
opts = {
|
|
19
|
+
classes: {
|
|
20
|
+
base: 'base'
|
|
21
|
+
},
|
|
22
|
+
height: 200,
|
|
23
|
+
hotspotColor: 'rgba(137, 183, 244, 0.65)',
|
|
24
|
+
id: '1',
|
|
25
|
+
isCorrect: false,
|
|
26
|
+
isEvaluateMode: false,
|
|
27
|
+
evaluateText: null,
|
|
28
|
+
disabled: false,
|
|
29
|
+
outlineColor: 'blue',
|
|
30
|
+
selected: false,
|
|
31
|
+
points: [{
|
|
32
|
+
x: 94,
|
|
33
|
+
y: 4
|
|
34
|
+
}, {
|
|
35
|
+
x: 89,
|
|
36
|
+
y: 4
|
|
37
|
+
}, {
|
|
38
|
+
x: 36,
|
|
39
|
+
y: 40
|
|
40
|
+
}],
|
|
41
|
+
...opts
|
|
42
|
+
};
|
|
43
|
+
return (0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_polygon.default, (0, _extends2.default)({}, opts, {
|
|
44
|
+
onClick: onClick
|
|
45
|
+
})));
|
|
46
|
+
};
|
|
47
|
+
beforeEach(() => {
|
|
48
|
+
onClick = jest.fn();
|
|
49
|
+
wrapper = mkWrapper();
|
|
50
|
+
});
|
|
51
|
+
describe('snapshots', () => {
|
|
52
|
+
describe('outline color', () => {
|
|
53
|
+
it('renders', () => {
|
|
54
|
+
const wrapper = mkWrapper({
|
|
55
|
+
outlineColor: 'red'
|
|
56
|
+
});
|
|
57
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('outline width', () => {
|
|
61
|
+
it('renders with default border width', () => {
|
|
62
|
+
const wrapper = mkWrapper();
|
|
63
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
64
|
+
});
|
|
65
|
+
it('renders with given border width', () => {
|
|
66
|
+
const wrapper = mkWrapper({
|
|
67
|
+
strokeWidth: 10
|
|
68
|
+
});
|
|
69
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('hotspot color', () => {
|
|
73
|
+
it('renders', () => {
|
|
74
|
+
const wrapper = mkWrapper({
|
|
75
|
+
hotspotColor: 'rgba(217, 30, 24, 0.65)'
|
|
76
|
+
});
|
|
77
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe('evaluate with correct answer', () => {
|
|
81
|
+
it('renders', () => {
|
|
82
|
+
const wrapper = mkWrapper({
|
|
83
|
+
isEvaluateMode: true,
|
|
84
|
+
isCorrect: true,
|
|
85
|
+
evaluateText: 'Correctly\nselected'
|
|
86
|
+
});
|
|
87
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe('in evaluate mode', () => {
|
|
92
|
+
const defaultModel = {
|
|
93
|
+
height: 200,
|
|
94
|
+
hotspotColor: 'rgba(137, 183, 244, 0.65)',
|
|
95
|
+
id: '1',
|
|
96
|
+
isCorrect: false,
|
|
97
|
+
isEvaluateMode: true,
|
|
98
|
+
evaluateText: null,
|
|
99
|
+
disabled: true,
|
|
100
|
+
outlineColor: 'blue',
|
|
101
|
+
strokeWidth: 5,
|
|
102
|
+
selected: false,
|
|
103
|
+
points: [{
|
|
104
|
+
x: 94,
|
|
105
|
+
y: 4
|
|
106
|
+
}, {
|
|
107
|
+
x: 89,
|
|
108
|
+
y: 4
|
|
109
|
+
}, {
|
|
110
|
+
x: 36,
|
|
111
|
+
y: 40
|
|
112
|
+
}],
|
|
113
|
+
markAsCorrect: false,
|
|
114
|
+
showCorrectEnabled: false,
|
|
115
|
+
onClick
|
|
116
|
+
};
|
|
117
|
+
const getComponents = model => {
|
|
118
|
+
const testWrapper = (0, _testUtils.shallowChild)(_polygon.default, {
|
|
119
|
+
...defaultModel,
|
|
120
|
+
...model
|
|
121
|
+
}, 1);
|
|
122
|
+
const polygonComponent = testWrapper();
|
|
123
|
+
const lineComponent = polygonComponent.find(_reactKonva.Line);
|
|
124
|
+
return {
|
|
125
|
+
polygonComponent,
|
|
126
|
+
lineComponent
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
describe('when correctly selected', () => {
|
|
130
|
+
const {
|
|
131
|
+
polygonComponent,
|
|
132
|
+
lineComponent
|
|
133
|
+
} = getComponents({
|
|
134
|
+
selected: true,
|
|
135
|
+
isCorrect: true
|
|
136
|
+
});
|
|
137
|
+
it('should have a blue outline', () => {
|
|
138
|
+
expect(lineComponent.prop('stroke')).toEqual('blue');
|
|
139
|
+
expect(lineComponent.prop('strokeWidth')).toEqual(defaultModel.strokeWidth);
|
|
140
|
+
});
|
|
141
|
+
it('should have a green checkmark icon', () => {
|
|
142
|
+
const imgComponent = polygonComponent.find(_imageKonvaTooltip.default);
|
|
143
|
+
expect(imgComponent.length).toEqual(1);
|
|
144
|
+
expect(imgComponent.prop('src')).toEqual(_icons.faCorrect);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
describe('when correctly not selected', () => {
|
|
148
|
+
const {
|
|
149
|
+
polygonComponent,
|
|
150
|
+
lineComponent
|
|
151
|
+
} = getComponents({
|
|
152
|
+
selected: false,
|
|
153
|
+
isCorrect: true
|
|
154
|
+
});
|
|
155
|
+
it('should have no outline', () => {
|
|
156
|
+
expect(lineComponent.prop('strokeWidth')).toEqual(0);
|
|
157
|
+
});
|
|
158
|
+
it('should have no icon', () => {
|
|
159
|
+
const imgComponent = polygonComponent.find(_imageKonvaTooltip.default);
|
|
160
|
+
expect(imgComponent.length).toEqual(0);
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
describe('when incorrectly selected', () => {
|
|
164
|
+
const {
|
|
165
|
+
polygonComponent,
|
|
166
|
+
lineComponent
|
|
167
|
+
} = getComponents({
|
|
168
|
+
selected: true,
|
|
169
|
+
isCorrect: false
|
|
170
|
+
});
|
|
171
|
+
it('should have a red outline', () => {
|
|
172
|
+
expect(lineComponent.prop('stroke')).toEqual('red');
|
|
173
|
+
expect(lineComponent.prop('strokeWidth')).toEqual(defaultModel.strokeWidth);
|
|
174
|
+
});
|
|
175
|
+
it('should have a red x icon', () => {
|
|
176
|
+
const imgComponent = polygonComponent.find(_imageKonvaTooltip.default);
|
|
177
|
+
expect(imgComponent.length).toEqual(1);
|
|
178
|
+
expect(imgComponent.prop('src')).toEqual(_icons.faWrong);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
describe('when incorrectly not selected', () => {
|
|
182
|
+
const {
|
|
183
|
+
polygonComponent,
|
|
184
|
+
lineComponent
|
|
185
|
+
} = getComponents({
|
|
186
|
+
selected: false,
|
|
187
|
+
isCorrect: false
|
|
188
|
+
});
|
|
189
|
+
it('should have no outline', () => {
|
|
190
|
+
expect(lineComponent.prop('strokeWidth')).toEqual(0);
|
|
191
|
+
});
|
|
192
|
+
it('should have a red x icon', () => {
|
|
193
|
+
const imgComponent = polygonComponent.find(_imageKonvaTooltip.default);
|
|
194
|
+
expect(imgComponent.length).toEqual(1);
|
|
195
|
+
expect(imgComponent.prop('src')).toEqual(_icons.faWrong);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
describe('when showing correct answer (showCorrectEnabled = true)', () => {
|
|
199
|
+
it('should have a green outline', () => {
|
|
200
|
+
const {
|
|
201
|
+
lineComponent
|
|
202
|
+
} = getComponents({
|
|
203
|
+
showCorrectEnabled: true,
|
|
204
|
+
markAsCorrect: true
|
|
205
|
+
});
|
|
206
|
+
expect(lineComponent.prop('stroke')).toEqual('green');
|
|
207
|
+
expect(lineComponent.prop('strokeWidth')).toEqual(defaultModel.strokeWidth);
|
|
208
|
+
});
|
|
209
|
+
it('should have a green checkmark icon', () => {
|
|
210
|
+
const {
|
|
211
|
+
polygonComponent
|
|
212
|
+
} = getComponents({
|
|
213
|
+
showCorrectEnabled: true,
|
|
214
|
+
markAsCorrect: true
|
|
215
|
+
});
|
|
216
|
+
const imgComponent = polygonComponent.find(_imageKonvaTooltip.default);
|
|
217
|
+
expect(imgComponent.prop('src')).toEqual(_icons.faCorrect);
|
|
218
|
+
});
|
|
219
|
+
it('should not be selected if the answer is incorrect', () => {
|
|
220
|
+
const {
|
|
221
|
+
lineComponent
|
|
222
|
+
} = getComponents({
|
|
223
|
+
showCorrectEnabled: true,
|
|
224
|
+
markAsCorrect: false,
|
|
225
|
+
selected: true,
|
|
226
|
+
isCorrect: false
|
|
227
|
+
});
|
|
228
|
+
expect(lineComponent.prop('strokeWidth')).toEqual(0);
|
|
229
|
+
});
|
|
230
|
+
it('should not render an icon if the answer is incorrect', () => {
|
|
231
|
+
const {
|
|
232
|
+
polygonComponent
|
|
233
|
+
} = getComponents({
|
|
234
|
+
showCorrectEnabled: true,
|
|
235
|
+
markAsCorrect: false,
|
|
236
|
+
selected: true,
|
|
237
|
+
isCorrect: false
|
|
238
|
+
});
|
|
239
|
+
const imgComponent = polygonComponent.find(_imageKonvaTooltip.default);
|
|
240
|
+
expect(imgComponent.length).toEqual(0);
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9lbnp5bWUiLCJfZW56eW1lVG9Kc29uIiwiX2tvbnZhIiwiX3JlYWN0S29udmEiLCJfdGVzdFV0aWxzIiwiX3BvbHlnb24iLCJfaW1hZ2VLb252YVRvb2x0aXAiLCJfaWNvbnMiLCJLb252YSIsImlzQnJvd3NlciIsImRlc2NyaWJlIiwib25DbGljayIsIndyYXBwZXIiLCJta1dyYXBwZXIiLCJvcHRzIiwiY2xhc3NlcyIsImJhc2UiLCJoZWlnaHQiLCJob3RzcG90Q29sb3IiLCJpZCIsImlzQ29ycmVjdCIsImlzRXZhbHVhdGVNb2RlIiwiZXZhbHVhdGVUZXh0IiwiZGlzYWJsZWQiLCJvdXRsaW5lQ29sb3IiLCJzZWxlY3RlZCIsInBvaW50cyIsIngiLCJ5Iiwic2hhbGxvdyIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiYmVmb3JlRWFjaCIsImplc3QiLCJmbiIsIml0IiwiZXhwZWN0IiwidG9Kc29uIiwidG9NYXRjaFNuYXBzaG90Iiwic3Ryb2tlV2lkdGgiLCJkZWZhdWx0TW9kZWwiLCJtYXJrQXNDb3JyZWN0Iiwic2hvd0NvcnJlY3RFbmFibGVkIiwiZ2V0Q29tcG9uZW50cyIsIm1vZGVsIiwidGVzdFdyYXBwZXIiLCJzaGFsbG93Q2hpbGQiLCJQb2x5Z29uIiwicG9seWdvbkNvbXBvbmVudCIsImxpbmVDb21wb25lbnQiLCJmaW5kIiwiTGluZSIsInByb3AiLCJ0b0VxdWFsIiwiaW1nQ29tcG9uZW50IiwiSW1hZ2VDb21wb25lbnQiLCJsZW5ndGgiLCJmYUNvcnJlY3QiLCJmYVdyb25nIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9wb2x5Z29uLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCB0b0pzb24gZnJvbSAnZW56eW1lLXRvLWpzb24nO1xuaW1wb3J0IEtvbnZhIGZyb20gJ2tvbnZhJztcbmltcG9ydCB7IExpbmUgfSBmcm9tICdyZWFjdC1rb252YSc7XG5cbmltcG9ydCB7IHNoYWxsb3dDaGlsZCB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuXG5pbXBvcnQgUG9seWdvbiBmcm9tICcuLi9ob3RzcG90L3BvbHlnb24nO1xuaW1wb3J0IEltYWdlQ29tcG9uZW50IGZyb20gJy4uL2hvdHNwb3QvaW1hZ2Uta29udmEtdG9vbHRpcCc7XG5pbXBvcnQgeyBmYUNvcnJlY3QsIGZhV3JvbmcgfSBmcm9tICcuLi9ob3RzcG90L2ljb25zJztcblxuS29udmEuaXNCcm93c2VyID0gZmFsc2U7XG5cbmRlc2NyaWJlKCdQb2x5Z29uJywgKCkgPT4ge1xuICBsZXQgb25DbGljaywgd3JhcHBlcjtcblxuICBjb25zdCBta1dyYXBwZXIgPSAob3B0cyA9IHt9KSA9PiB7XG4gICAgb3B0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHsgYmFzZTogJ2Jhc2UnIH0sXG4gICAgICBoZWlnaHQ6IDIwMCxcbiAgICAgIGhvdHNwb3RDb2xvcjogJ3JnYmEoMTM3LCAxODMsIDI0NCwgMC42NSknLFxuICAgICAgaWQ6ICcxJyxcbiAgICAgIGlzQ29ycmVjdDogZmFsc2UsXG4gICAgICBpc0V2YWx1YXRlTW9kZTogZmFsc2UsXG4gICAgICBldmFsdWF0ZVRleHQ6IG51bGwsXG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICBvdXRsaW5lQ29sb3I6ICdibHVlJyxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHBvaW50czogW1xuICAgICAgICB7IHg6IDk0LCB5OiA0IH0sXG4gICAgICAgIHsgeDogODksIHk6IDQgfSxcbiAgICAgICAgeyB4OiAzNiwgeTogNDAgfSxcbiAgICAgIF0sXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG5cbiAgICByZXR1cm4gc2hhbGxvdyg8UG9seWdvbiB7Li4ub3B0c30gb25DbGljaz17b25DbGlja30gLz4pO1xuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG4gICAgd3JhcHBlciA9IG1rV3JhcHBlcigpO1xuICB9KTtcblxuICBkZXNjcmliZSgnc25hcHNob3RzJywgKCkgPT4ge1xuICAgIGRlc2NyaWJlKCdvdXRsaW5lIGNvbG9yJywgKCkgPT4ge1xuICAgICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBta1dyYXBwZXIoeyBvdXRsaW5lQ29sb3I6ICdyZWQnIH0pO1xuICAgICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ291dGxpbmUgd2lkdGgnLCAoKSA9PiB7XG4gICAgICBpdCgncmVuZGVycyB3aXRoIGRlZmF1bHQgYm9yZGVyIHdpZHRoJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKCk7XG4gICAgICAgIGV4cGVjdCh0b0pzb24od3JhcHBlcikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdyZW5kZXJzIHdpdGggZ2l2ZW4gYm9yZGVyIHdpZHRoJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHsgc3Ryb2tlV2lkdGg6IDEwIH0pO1xuICAgICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2hvdHNwb3QgY29sb3InLCAoKSA9PiB7XG4gICAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IG1rV3JhcHBlcih7IGhvdHNwb3RDb2xvcjogJ3JnYmEoMjE3LCAzMCwgMjQsIDAuNjUpJyB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdldmFsdWF0ZSB3aXRoIGNvcnJlY3QgYW5zd2VyJywgKCkgPT4ge1xuICAgICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBta1dyYXBwZXIoeyBpc0V2YWx1YXRlTW9kZTogdHJ1ZSwgaXNDb3JyZWN0OiB0cnVlLCBldmFsdWF0ZVRleHQ6ICdDb3JyZWN0bHlcXG5zZWxlY3RlZCcgfSk7XG4gICAgICAgIGV4cGVjdCh0b0pzb24od3JhcHBlcikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpbiBldmFsdWF0ZSBtb2RlJywgKCkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRNb2RlbCA9IHtcbiAgICAgIGhlaWdodDogMjAwLFxuICAgICAgaG90c3BvdENvbG9yOiAncmdiYSgxMzcsIDE4MywgMjQ0LCAwLjY1KScsXG4gICAgICBpZDogJzEnLFxuICAgICAgaXNDb3JyZWN0OiBmYWxzZSxcbiAgICAgIGlzRXZhbHVhdGVNb2RlOiB0cnVlLFxuICAgICAgZXZhbHVhdGVUZXh0OiBudWxsLFxuICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICBvdXRsaW5lQ29sb3I6ICdibHVlJyxcbiAgICAgIHN0cm9rZVdpZHRoOiA1LFxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgcG9pbnRzOiBbXG4gICAgICAgIHsgeDogOTQsIHk6IDQgfSxcbiAgICAgICAgeyB4OiA4OSwgeTogNCB9LFxuICAgICAgICB7IHg6IDM2LCB5OiA0MCB9LFxuICAgICAgXSxcbiAgICAgIG1hcmtBc0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgc2hvd0NvcnJlY3RFbmFibGVkOiBmYWxzZSxcbiAgICAgIG9uQ2xpY2ssXG4gICAgfTtcblxuICAgIGNvbnN0IGdldENvbXBvbmVudHMgPSAobW9kZWwpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RXcmFwcGVyID0gc2hhbGxvd0NoaWxkKFxuICAgICAgICBQb2x5Z29uLFxuICAgICAgICB7XG4gICAgICAgICAgLi4uZGVmYXVsdE1vZGVsLFxuICAgICAgICAgIC4uLm1vZGVsLFxuICAgICAgICB9LFxuICAgICAgICAxLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHBvbHlnb25Db21wb25lbnQgPSB0ZXN0V3JhcHBlcigpO1xuICAgICAgY29uc3QgbGluZUNvbXBvbmVudCA9IHBvbHlnb25Db21wb25lbnQuZmluZChMaW5lKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvbHlnb25Db21wb25lbnQsXG4gICAgICAgIGxpbmVDb21wb25lbnQsXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBkZXNjcmliZSgnd2hlbiBjb3JyZWN0bHkgc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IHBvbHlnb25Db21wb25lbnQsIGxpbmVDb21wb25lbnQgfSA9IGdldENvbXBvbmVudHMoe1xuICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgaXNDb3JyZWN0OiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGF2ZSBhIGJsdWUgb3V0bGluZScsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KGxpbmVDb21wb25lbnQucHJvcCgnc3Ryb2tlJykpLnRvRXF1YWwoJ2JsdWUnKTtcbiAgICAgICAgZXhwZWN0KGxpbmVDb21wb25lbnQucHJvcCgnc3Ryb2tlV2lkdGgnKSkudG9FcXVhbChkZWZhdWx0TW9kZWwuc3Ryb2tlV2lkdGgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGF2ZSBhIGdyZWVuIGNoZWNrbWFyayBpY29uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBpbWdDb21wb25lbnQgPSBwb2x5Z29uQ29tcG9uZW50LmZpbmQoSW1hZ2VDb21wb25lbnQpO1xuICAgICAgICBleHBlY3QoaW1nQ29tcG9uZW50Lmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgZXhwZWN0KGltZ0NvbXBvbmVudC5wcm9wKCdzcmMnKSkudG9FcXVhbChmYUNvcnJlY3QpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnd2hlbiBjb3JyZWN0bHkgbm90IHNlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBwb2x5Z29uQ29tcG9uZW50LCBsaW5lQ29tcG9uZW50IH0gPSBnZXRDb21wb25lbnRzKHtcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBpc0NvcnJlY3Q6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIG5vIG91dGxpbmUnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChsaW5lQ29tcG9uZW50LnByb3AoJ3N0cm9rZVdpZHRoJykpLnRvRXF1YWwoMCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIG5vIGljb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGltZ0NvbXBvbmVudCA9IHBvbHlnb25Db21wb25lbnQuZmluZChJbWFnZUNvbXBvbmVudCk7XG4gICAgICAgIGV4cGVjdChpbWdDb21wb25lbnQubGVuZ3RoKS50b0VxdWFsKDApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnd2hlbiBpbmNvcnJlY3RseSBzZWxlY3RlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcG9seWdvbkNvbXBvbmVudCwgbGluZUNvbXBvbmVudCB9ID0gZ2V0Q29tcG9uZW50cyh7XG4gICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgICBpc0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGF2ZSBhIHJlZCBvdXRsaW5lJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QobGluZUNvbXBvbmVudC5wcm9wKCdzdHJva2UnKSkudG9FcXVhbCgncmVkJyk7XG4gICAgICAgIGV4cGVjdChsaW5lQ29tcG9uZW50LnByb3AoJ3N0cm9rZVdpZHRoJykpLnRvRXF1YWwoZGVmYXVsdE1vZGVsLnN0cm9rZVdpZHRoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhdmUgYSByZWQgeCBpY29uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBpbWdDb21wb25lbnQgPSBwb2x5Z29uQ29tcG9uZW50LmZpbmQoSW1hZ2VDb21wb25lbnQpO1xuICAgICAgICBleHBlY3QoaW1nQ29tcG9uZW50Lmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgZXhwZWN0KGltZ0NvbXBvbmVudC5wcm9wKCdzcmMnKSkudG9FcXVhbChmYVdyb25nKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3doZW4gaW5jb3JyZWN0bHkgbm90IHNlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBwb2x5Z29uQ29tcG9uZW50LCBsaW5lQ29tcG9uZW50IH0gPSBnZXRDb21wb25lbnRzKHtcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBpc0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGF2ZSBubyBvdXRsaW5lJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QobGluZUNvbXBvbmVudC5wcm9wKCdzdHJva2VXaWR0aCcpKS50b0VxdWFsKDApO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGF2ZSBhIHJlZCB4IGljb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGltZ0NvbXBvbmVudCA9IHBvbHlnb25Db21wb25lbnQuZmluZChJbWFnZUNvbXBvbmVudCk7XG4gICAgICAgIGV4cGVjdChpbWdDb21wb25lbnQubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAgICAgICBleHBlY3QoaW1nQ29tcG9uZW50LnByb3AoJ3NyYycpKS50b0VxdWFsKGZhV3JvbmcpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnd2hlbiBzaG93aW5nIGNvcnJlY3QgYW5zd2VyIChzaG93Q29ycmVjdEVuYWJsZWQgPSB0cnVlKScsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgaGF2ZSBhIGdyZWVuIG91dGxpbmUnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbGluZUNvbXBvbmVudCB9ID0gZ2V0Q29tcG9uZW50cyh7XG4gICAgICAgICAgc2hvd0NvcnJlY3RFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIG1hcmtBc0NvcnJlY3Q6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICBleHBlY3QobGluZUNvbXBvbmVudC5wcm9wKCdzdHJva2UnKSkudG9FcXVhbCgnZ3JlZW4nKTtcbiAgICAgICAgZXhwZWN0KGxpbmVDb21wb25lbnQucHJvcCgnc3Ryb2tlV2lkdGgnKSkudG9FcXVhbChkZWZhdWx0TW9kZWwuc3Ryb2tlV2lkdGgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGF2ZSBhIGdyZWVuIGNoZWNrbWFyayBpY29uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHBvbHlnb25Db21wb25lbnQgfSA9IGdldENvbXBvbmVudHMoe1xuICAgICAgICAgIHNob3dDb3JyZWN0RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBtYXJrQXNDb3JyZWN0OiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaW1nQ29tcG9uZW50ID0gcG9seWdvbkNvbXBvbmVudC5maW5kKEltYWdlQ29tcG9uZW50KTtcbiAgICAgICAgZXhwZWN0KGltZ0NvbXBvbmVudC5wcm9wKCdzcmMnKSkudG9FcXVhbChmYUNvcnJlY3QpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbm90IGJlIHNlbGVjdGVkIGlmIHRoZSBhbnN3ZXIgaXMgaW5jb3JyZWN0JywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGxpbmVDb21wb25lbnQgfSA9IGdldENvbXBvbmVudHMoe1xuICAgICAgICAgIHNob3dDb3JyZWN0RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBtYXJrQXNDb3JyZWN0OiBmYWxzZSxcbiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgICBpc0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KGxpbmVDb21wb25lbnQucHJvcCgnc3Ryb2tlV2lkdGgnKSkudG9FcXVhbCgwKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIG5vdCByZW5kZXIgYW4gaWNvbiBpZiB0aGUgYW5zd2VyIGlzIGluY29ycmVjdCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBwb2x5Z29uQ29tcG9uZW50IH0gPSBnZXRDb21wb25lbnRzKHtcbiAgICAgICAgICBzaG93Q29ycmVjdEVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgbWFya0FzQ29ycmVjdDogZmFsc2UsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgaXNDb3JyZWN0OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGltZ0NvbXBvbmVudCA9IHBvbHlnb25Db21wb25lbnQuZmluZChJbWFnZUNvbXBvbmVudCk7XG4gICAgICAgIGV4cGVjdChpbWdDb21wb25lbnQubGVuZ3RoKS50b0VxdWFsKDApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFFQSxJQUFBTSxRQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxrQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsTUFBQSxHQUFBUixPQUFBO0FBRUFTLGNBQUssQ0FBQ0MsU0FBUyxHQUFHLEtBQUs7QUFFdkJDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTTtFQUN4QixJQUFJQyxPQUFPLEVBQUVDLE9BQU87RUFFcEIsTUFBTUMsU0FBUyxHQUFHQSxDQUFDQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUs7SUFDL0JBLElBQUksR0FBRztNQUNMQyxPQUFPLEVBQUU7UUFBRUMsSUFBSSxFQUFFO01BQU8sQ0FBQztNQUN6QkMsTUFBTSxFQUFFLEdBQUc7TUFDWEMsWUFBWSxFQUFFLDJCQUEyQjtNQUN6Q0MsRUFBRSxFQUFFLEdBQUc7TUFDUEMsU0FBUyxFQUFFLEtBQUs7TUFDaEJDLGNBQWMsRUFBRSxLQUFLO01BQ3JCQyxZQUFZLEVBQUUsSUFBSTtNQUNsQkMsUUFBUSxFQUFFLEtBQUs7TUFDZkMsWUFBWSxFQUFFLE1BQU07TUFDcEJDLFFBQVEsRUFBRSxLQUFLO01BQ2ZDLE1BQU0sRUFBRSxDQUNOO1FBQUVDLENBQUMsRUFBRSxFQUFFO1FBQUVDLENBQUMsRUFBRTtNQUFFLENBQUMsRUFDZjtRQUFFRCxDQUFDLEVBQUUsRUFBRTtRQUFFQyxDQUFDLEVBQUU7TUFBRSxDQUFDLEVBQ2Y7UUFBRUQsQ0FBQyxFQUFFLEVBQUU7UUFBRUMsQ0FBQyxFQUFFO01BQUcsQ0FBQyxDQUNqQjtNQUNELEdBQUdkO0lBQ0wsQ0FBQztJQUVELE9BQU8sSUFBQWUsZUFBTyxlQUFDaEMsTUFBQSxDQUFBaUMsT0FBQSxDQUFBQyxhQUFBLENBQUMxQixRQUFBLENBQUF5QixPQUFPLE1BQUFFLFNBQUEsQ0FBQUYsT0FBQSxNQUFLaEIsSUFBSTtNQUFFSCxPQUFPLEVBQUVBO0lBQVEsRUFBRSxDQUFDLENBQUM7RUFDekQsQ0FBQztFQUVEc0IsVUFBVSxDQUFDLE1BQU07SUFDZnRCLE9BQU8sR0FBR3VCLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDbkJ2QixPQUFPLEdBQUdDLFNBQVMsQ0FBQyxDQUFDO0VBQ3ZCLENBQUMsQ0FBQztFQUVGSCxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU07SUFDMUJBLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBTTtNQUM5QjBCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTTtRQUNsQixNQUFNeEIsT0FBTyxHQUFHQyxTQUFTLENBQUM7VUFBRVcsWUFBWSxFQUFFO1FBQU0sQ0FBQyxDQUFDO1FBQ2xEYSxNQUFNLENBQUMsSUFBQUMscUJBQU0sRUFBQzFCLE9BQU8sQ0FBQyxDQUFDLENBQUMyQixlQUFlLENBQUMsQ0FBQztNQUMzQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjdCLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBTTtNQUM5QjBCLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxNQUFNO1FBQzVDLE1BQU14QixPQUFPLEdBQUdDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCd0IsTUFBTSxDQUFDLElBQUFDLHFCQUFNLEVBQUMxQixPQUFPLENBQUMsQ0FBQyxDQUFDMkIsZUFBZSxDQUFDLENBQUM7TUFDM0MsQ0FBQyxDQUFDO01BRUZILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxNQUFNO1FBQzFDLE1BQU14QixPQUFPLEdBQUdDLFNBQVMsQ0FBQztVQUFFMkIsV0FBVyxFQUFFO1FBQUcsQ0FBQyxDQUFDO1FBQzlDSCxNQUFNLENBQUMsSUFBQUMscUJBQU0sRUFBQzFCLE9BQU8sQ0FBQyxDQUFDLENBQUMyQixlQUFlLENBQUMsQ0FBQztNQUMzQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjdCLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBTTtNQUM5QjBCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTTtRQUNsQixNQUFNeEIsT0FBTyxHQUFHQyxTQUFTLENBQUM7VUFBRUssWUFBWSxFQUFFO1FBQTBCLENBQUMsQ0FBQztRQUN0RW1CLE1BQU0sQ0FBQyxJQUFBQyxxQkFBTSxFQUFDMUIsT0FBTyxDQUFDLENBQUMsQ0FBQzJCLGVBQWUsQ0FBQyxDQUFDO01BQzNDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGN0IsUUFBUSxDQUFDLDhCQUE4QixFQUFFLE1BQU07TUFDN0MwQixFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU07UUFDbEIsTUFBTXhCLE9BQU8sR0FBR0MsU0FBUyxDQUFDO1VBQUVRLGNBQWMsRUFBRSxJQUFJO1VBQUVELFNBQVMsRUFBRSxJQUFJO1VBQUVFLFlBQVksRUFBRTtRQUFzQixDQUFDLENBQUM7UUFDekdlLE1BQU0sQ0FBQyxJQUFBQyxxQkFBTSxFQUFDMUIsT0FBTyxDQUFDLENBQUMsQ0FBQzJCLGVBQWUsQ0FBQyxDQUFDO01BQzNDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGN0IsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU07SUFDakMsTUFBTStCLFlBQVksR0FBRztNQUNuQnhCLE1BQU0sRUFBRSxHQUFHO01BQ1hDLFlBQVksRUFBRSwyQkFBMkI7TUFDekNDLEVBQUUsRUFBRSxHQUFHO01BQ1BDLFNBQVMsRUFBRSxLQUFLO01BQ2hCQyxjQUFjLEVBQUUsSUFBSTtNQUNwQkMsWUFBWSxFQUFFLElBQUk7TUFDbEJDLFFBQVEsRUFBRSxJQUFJO01BQ2RDLFlBQVksRUFBRSxNQUFNO01BQ3BCZ0IsV0FBVyxFQUFFLENBQUM7TUFDZGYsUUFBUSxFQUFFLEtBQUs7TUFDZkMsTUFBTSxFQUFFLENBQ047UUFBRUMsQ0FBQyxFQUFFLEVBQUU7UUFBRUMsQ0FBQyxFQUFFO01BQUUsQ0FBQyxFQUNmO1FBQUVELENBQUMsRUFBRSxFQUFFO1FBQUVDLENBQUMsRUFBRTtNQUFFLENBQUMsRUFDZjtRQUFFRCxDQUFDLEVBQUUsRUFBRTtRQUFFQyxDQUFDLEVBQUU7TUFBRyxDQUFDLENBQ2pCO01BQ0RjLGFBQWEsRUFBRSxLQUFLO01BQ3BCQyxrQkFBa0IsRUFBRSxLQUFLO01BQ3pCaEM7SUFDRixDQUFDO0lBRUQsTUFBTWlDLGFBQWEsR0FBSUMsS0FBSyxJQUFLO01BQy9CLE1BQU1DLFdBQVcsR0FBRyxJQUFBQyx1QkFBWSxFQUM5QkMsZ0JBQU8sRUFDUDtRQUNFLEdBQUdQLFlBQVk7UUFDZixHQUFHSTtNQUNMLENBQUMsRUFDRCxDQUNGLENBQUM7TUFDRCxNQUFNSSxnQkFBZ0IsR0FBR0gsV0FBVyxDQUFDLENBQUM7TUFDdEMsTUFBTUksYUFBYSxHQUFHRCxnQkFBZ0IsQ0FBQ0UsSUFBSSxDQUFDQyxnQkFBSSxDQUFDO01BQ2pELE9BQU87UUFDTEgsZ0JBQWdCO1FBQ2hCQztNQUNGLENBQUM7SUFDSCxDQUFDO0lBRUR4QyxRQUFRLENBQUMseUJBQXlCLEVBQUUsTUFBTTtNQUN4QyxNQUFNO1FBQUV1QyxnQkFBZ0I7UUFBRUM7TUFBYyxDQUFDLEdBQUdOLGFBQWEsQ0FBQztRQUN4RG5CLFFBQVEsRUFBRSxJQUFJO1FBQ2RMLFNBQVMsRUFBRTtNQUNiLENBQUMsQ0FBQztNQUVGZ0IsRUFBRSxDQUFDLDRCQUE0QixFQUFFLE1BQU07UUFDckNDLE1BQU0sQ0FBQ2EsYUFBYSxDQUFDRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNwRGpCLE1BQU0sQ0FBQ2EsYUFBYSxDQUFDRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDYixZQUFZLENBQUNELFdBQVcsQ0FBQztNQUM3RSxDQUFDLENBQUM7TUFFRkosRUFBRSxDQUFDLG9DQUFvQyxFQUFFLE1BQU07UUFDN0MsTUFBTW1CLFlBQVksR0FBR04sZ0JBQWdCLENBQUNFLElBQUksQ0FBQ0ssMEJBQWMsQ0FBQztRQUMxRG5CLE1BQU0sQ0FBQ2tCLFlBQVksQ0FBQ0UsTUFBTSxDQUFDLENBQUNILE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdENqQixNQUFNLENBQUNrQixZQUFZLENBQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUNJLGdCQUFTLENBQUM7TUFDckQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUZoRCxRQUFRLENBQUMsNkJBQTZCLEVBQUUsTUFBTTtNQUM1QyxNQUFNO1FBQUV1QyxnQkFBZ0I7UUFBRUM7TUFBYyxDQUFDLEdBQUdOLGFBQWEsQ0FBQztRQUN4RG5CLFFBQVEsRUFBRSxLQUFLO1FBQ2ZMLFNBQVMsRUFBRTtNQUNiLENBQUMsQ0FBQztNQUVGZ0IsRUFBRSxDQUFDLHdCQUF3QixFQUFFLE1BQU07UUFDakNDLE1BQU0sQ0FBQ2EsYUFBYSxDQUFDRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQztNQUN0RCxDQUFDLENBQUM7TUFFRmxCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxNQUFNO1FBQzlCLE1BQU1tQixZQUFZLEdBQUdOLGdCQUFnQixDQUFDRSxJQUFJLENBQUNLLDBCQUFjLENBQUM7UUFDMURuQixNQUFNLENBQUNrQixZQUFZLENBQUNFLE1BQU0sQ0FBQyxDQUFDSCxPQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3hDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGNUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLE1BQU07TUFDMUMsTUFBTTtRQUFFdUMsZ0JBQWdCO1FBQUVDO01BQWMsQ0FBQyxHQUFHTixhQUFhLENBQUM7UUFDeERuQixRQUFRLEVBQUUsSUFBSTtRQUNkTCxTQUFTLEVBQUU7TUFDYixDQUFDLENBQUM7TUFFRmdCLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxNQUFNO1FBQ3BDQyxNQUFNLENBQUNhLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDbkRqQixNQUFNLENBQUNhLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQ2IsWUFBWSxDQUFDRCxXQUFXLENBQUM7TUFDN0UsQ0FBQyxDQUFDO01BRUZKLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxNQUFNO1FBQ25DLE1BQU1tQixZQUFZLEdBQUdOLGdCQUFnQixDQUFDRSxJQUFJLENBQUNLLDBCQUFjLENBQUM7UUFDMURuQixNQUFNLENBQUNrQixZQUFZLENBQUNFLE1BQU0sQ0FBQyxDQUFDSCxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3RDakIsTUFBTSxDQUFDa0IsWUFBWSxDQUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDSyxjQUFPLENBQUM7TUFDbkQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUZqRCxRQUFRLENBQUMsK0JBQStCLEVBQUUsTUFBTTtNQUM5QyxNQUFNO1FBQUV1QyxnQkFBZ0I7UUFBRUM7TUFBYyxDQUFDLEdBQUdOLGFBQWEsQ0FBQztRQUN4RG5CLFFBQVEsRUFBRSxLQUFLO1FBQ2ZMLFNBQVMsRUFBRTtNQUNiLENBQUMsQ0FBQztNQUVGZ0IsRUFBRSxDQUFDLHdCQUF3QixFQUFFLE1BQU07UUFDakNDLE1BQU0sQ0FBQ2EsYUFBYSxDQUFDRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQztNQUN0RCxDQUFDLENBQUM7TUFFRmxCLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxNQUFNO1FBQ25DLE1BQU1tQixZQUFZLEdBQUdOLGdCQUFnQixDQUFDRSxJQUFJLENBQUNLLDBCQUFjLENBQUM7UUFDMURuQixNQUFNLENBQUNrQixZQUFZLENBQUNFLE1BQU0sQ0FBQyxDQUFDSCxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3RDakIsTUFBTSxDQUFDa0IsWUFBWSxDQUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDSyxjQUFPLENBQUM7TUFDbkQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUZqRCxRQUFRLENBQUMseURBQXlELEVBQUUsTUFBTTtNQUN4RTBCLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxNQUFNO1FBQ3RDLE1BQU07VUFBRWM7UUFBYyxDQUFDLEdBQUdOLGFBQWEsQ0FBQztVQUN0Q0Qsa0JBQWtCLEVBQUUsSUFBSTtVQUN4QkQsYUFBYSxFQUFFO1FBQ2pCLENBQUMsQ0FBQztRQUNGTCxNQUFNLENBQUNhLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDckRqQixNQUFNLENBQUNhLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQ2IsWUFBWSxDQUFDRCxXQUFXLENBQUM7TUFDN0UsQ0FBQyxDQUFDO01BRUZKLEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxNQUFNO1FBQzdDLE1BQU07VUFBRWE7UUFBaUIsQ0FBQyxHQUFHTCxhQUFhLENBQUM7VUFDekNELGtCQUFrQixFQUFFLElBQUk7VUFDeEJELGFBQWEsRUFBRTtRQUNqQixDQUFDLENBQUM7UUFDRixNQUFNYSxZQUFZLEdBQUdOLGdCQUFnQixDQUFDRSxJQUFJLENBQUNLLDBCQUFjLENBQUM7UUFDMURuQixNQUFNLENBQUNrQixZQUFZLENBQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUNJLGdCQUFTLENBQUM7TUFDckQsQ0FBQyxDQUFDO01BRUZ0QixFQUFFLENBQUMsbURBQW1ELEVBQUUsTUFBTTtRQUM1RCxNQUFNO1VBQUVjO1FBQWMsQ0FBQyxHQUFHTixhQUFhLENBQUM7VUFDdENELGtCQUFrQixFQUFFLElBQUk7VUFDeEJELGFBQWEsRUFBRSxLQUFLO1VBQ3BCakIsUUFBUSxFQUFFLElBQUk7VUFDZEwsU0FBUyxFQUFFO1FBQ2IsQ0FBQyxDQUFDO1FBQ0ZpQixNQUFNLENBQUNhLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUM7TUFDdEQsQ0FBQyxDQUFDO01BRUZsQixFQUFFLENBQUMsc0RBQXNELEVBQUUsTUFBTTtRQUMvRCxNQUFNO1VBQUVhO1FBQWlCLENBQUMsR0FBR0wsYUFBYSxDQUFDO1VBQ3pDRCxrQkFBa0IsRUFBRSxJQUFJO1VBQ3hCRCxhQUFhLEVBQUUsS0FBSztVQUNwQmpCLFFBQVEsRUFBRSxJQUFJO1VBQ2RMLFNBQVMsRUFBRTtRQUNiLENBQUMsQ0FBQztRQUNGLE1BQU1tQyxZQUFZLEdBQUdOLGdCQUFnQixDQUFDRSxJQUFJLENBQUNLLDBCQUFjLENBQUM7UUFDMURuQixNQUFNLENBQUNrQixZQUFZLENBQUNFLE1BQU0sQ0FBQyxDQUFDSCxPQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3hDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,236 @@
|
|
|
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 _enzymeToJson = _interopRequireDefault(require("enzyme-to-json"));
|
|
8
|
+
var _konva = _interopRequireDefault(require("konva"));
|
|
9
|
+
var _reactKonva = require("react-konva");
|
|
10
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
11
|
+
var _rectangle = _interopRequireDefault(require("../hotspot/rectangle"));
|
|
12
|
+
var _imageKonvaTooltip = _interopRequireDefault(require("../hotspot/image-konva-tooltip"));
|
|
13
|
+
var _icons = require("../hotspot/icons");
|
|
14
|
+
global.MutationObserver = class {
|
|
15
|
+
constructor(callback) {}
|
|
16
|
+
disconnect() {}
|
|
17
|
+
observe(element, initObject) {}
|
|
18
|
+
};
|
|
19
|
+
_konva.default.isBrowser = false;
|
|
20
|
+
describe('Rectangle', () => {
|
|
21
|
+
let onClick, wrapper;
|
|
22
|
+
const mkWrapper = (opts = {}) => {
|
|
23
|
+
opts = {
|
|
24
|
+
classes: {
|
|
25
|
+
base: 'base'
|
|
26
|
+
},
|
|
27
|
+
height: 200,
|
|
28
|
+
hotspotColor: 'rgba(137, 183, 244, 0.65)',
|
|
29
|
+
id: '1',
|
|
30
|
+
isCorrect: false,
|
|
31
|
+
isEvaluateMode: false,
|
|
32
|
+
evaluateText: null,
|
|
33
|
+
disabled: false,
|
|
34
|
+
outlineColor: 'blue',
|
|
35
|
+
selected: false,
|
|
36
|
+
width: 300,
|
|
37
|
+
x: 5,
|
|
38
|
+
y: 5,
|
|
39
|
+
...opts
|
|
40
|
+
};
|
|
41
|
+
return (0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_rectangle.default, (0, _extends2.default)({}, opts, {
|
|
42
|
+
onClick: onClick
|
|
43
|
+
})));
|
|
44
|
+
};
|
|
45
|
+
beforeEach(() => {
|
|
46
|
+
onClick = jest.fn();
|
|
47
|
+
wrapper = mkWrapper();
|
|
48
|
+
});
|
|
49
|
+
describe('snapshots', () => {
|
|
50
|
+
describe('outline color', () => {
|
|
51
|
+
it('renders', () => {
|
|
52
|
+
const wrapper = mkWrapper({
|
|
53
|
+
outlineColor: 'red'
|
|
54
|
+
});
|
|
55
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe('outline width', () => {
|
|
59
|
+
it('renders with default border width', () => {
|
|
60
|
+
const wrapper = mkWrapper();
|
|
61
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
62
|
+
});
|
|
63
|
+
it('renders with given border width', () => {
|
|
64
|
+
const wrapper = mkWrapper({
|
|
65
|
+
strokeWidth: 10
|
|
66
|
+
});
|
|
67
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe('hotspot color', () => {
|
|
71
|
+
it('renders', () => {
|
|
72
|
+
const wrapper = mkWrapper({
|
|
73
|
+
hotspotColor: 'rgba(217, 30, 24, 0.65)'
|
|
74
|
+
});
|
|
75
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('evaluate with correct answer', () => {
|
|
79
|
+
it('renders', () => {
|
|
80
|
+
const wrapper = mkWrapper({
|
|
81
|
+
isEvaluateMode: true,
|
|
82
|
+
isCorrect: true,
|
|
83
|
+
evaluateText: 'Correctly\nselected'
|
|
84
|
+
});
|
|
85
|
+
expect((0, _enzymeToJson.default)(wrapper)).toMatchSnapshot();
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('in evaluate mode', () => {
|
|
90
|
+
const defaultModel = {
|
|
91
|
+
onClick,
|
|
92
|
+
id: '1',
|
|
93
|
+
height: 200,
|
|
94
|
+
hotspotColor: 'rgba(137, 183, 244, 0.65)',
|
|
95
|
+
disabled: true,
|
|
96
|
+
width: 300,
|
|
97
|
+
x: 5,
|
|
98
|
+
y: 5,
|
|
99
|
+
selected: false,
|
|
100
|
+
isCorrect: false,
|
|
101
|
+
isEvaluateMode: true,
|
|
102
|
+
evaluateText: null,
|
|
103
|
+
strokeWidth: 5,
|
|
104
|
+
outlineColor: 'blue',
|
|
105
|
+
markAsCorrect: false,
|
|
106
|
+
showCorrectEnabled: false
|
|
107
|
+
};
|
|
108
|
+
const getComponents = model => {
|
|
109
|
+
const testWrapper = (0, _testUtils.shallowChild)(_rectangle.default, {
|
|
110
|
+
...defaultModel,
|
|
111
|
+
...model
|
|
112
|
+
}, 1);
|
|
113
|
+
const rectangleComponent = testWrapper();
|
|
114
|
+
const rectComponent = rectangleComponent.find(_reactKonva.Rect);
|
|
115
|
+
return {
|
|
116
|
+
rectangleComponent,
|
|
117
|
+
rectComponent
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
describe('when correctly selected', () => {
|
|
121
|
+
const {
|
|
122
|
+
rectangleComponent,
|
|
123
|
+
rectComponent
|
|
124
|
+
} = getComponents({
|
|
125
|
+
selected: true,
|
|
126
|
+
isCorrect: true
|
|
127
|
+
});
|
|
128
|
+
it('should have a blue outline', () => {
|
|
129
|
+
expect(rectComponent.prop('stroke')).toEqual('blue');
|
|
130
|
+
expect(rectComponent.prop('strokeWidth')).toEqual(defaultModel.strokeWidth);
|
|
131
|
+
});
|
|
132
|
+
it('should have a green checkmark icon', () => {
|
|
133
|
+
const imgComponent = rectangleComponent.find(_imageKonvaTooltip.default);
|
|
134
|
+
expect(imgComponent.length).toEqual(1);
|
|
135
|
+
expect(imgComponent.prop('src')).toEqual(_icons.faCorrect);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe('when correctly not selected', () => {
|
|
139
|
+
const {
|
|
140
|
+
rectangleComponent,
|
|
141
|
+
rectComponent
|
|
142
|
+
} = getComponents({
|
|
143
|
+
selected: false,
|
|
144
|
+
isCorrect: true
|
|
145
|
+
});
|
|
146
|
+
it('should have no outline', () => {
|
|
147
|
+
expect(rectComponent.prop('strokeWidth')).toEqual(0);
|
|
148
|
+
});
|
|
149
|
+
it('should have no icon', () => {
|
|
150
|
+
const imgComponent = rectangleComponent.find(_imageKonvaTooltip.default);
|
|
151
|
+
expect(imgComponent.length).toEqual(0);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe('when incorrectly selected', () => {
|
|
155
|
+
const {
|
|
156
|
+
rectangleComponent,
|
|
157
|
+
rectComponent
|
|
158
|
+
} = getComponents({
|
|
159
|
+
selected: true,
|
|
160
|
+
isCorrect: false
|
|
161
|
+
});
|
|
162
|
+
it('should have a red outline', () => {
|
|
163
|
+
expect(rectComponent.prop('stroke')).toEqual('red');
|
|
164
|
+
expect(rectComponent.prop('strokeWidth')).toEqual(defaultModel.strokeWidth);
|
|
165
|
+
});
|
|
166
|
+
it('should have a red x icon', () => {
|
|
167
|
+
const imgComponent = rectangleComponent.find(_imageKonvaTooltip.default);
|
|
168
|
+
expect(imgComponent.length).toEqual(1);
|
|
169
|
+
expect(imgComponent.prop('src')).toEqual(_icons.faWrong);
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
describe('when incorrectly not selected', () => {
|
|
173
|
+
const {
|
|
174
|
+
rectangleComponent,
|
|
175
|
+
rectComponent
|
|
176
|
+
} = getComponents({
|
|
177
|
+
selected: false,
|
|
178
|
+
isCorrect: false
|
|
179
|
+
});
|
|
180
|
+
it('should have no outline', () => {
|
|
181
|
+
expect(rectComponent.prop('strokeWidth')).toEqual(0);
|
|
182
|
+
});
|
|
183
|
+
it('should have a red x icon', () => {
|
|
184
|
+
const imgComponent = rectangleComponent.find(_imageKonvaTooltip.default);
|
|
185
|
+
expect(imgComponent.length).toEqual(1);
|
|
186
|
+
expect(imgComponent.prop('src')).toEqual(_icons.faWrong);
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
describe('when showing correct answer (showCorrectEnabled = true)', () => {
|
|
190
|
+
it('should have a green outline', () => {
|
|
191
|
+
const {
|
|
192
|
+
rectComponent
|
|
193
|
+
} = getComponents({
|
|
194
|
+
showCorrectEnabled: true,
|
|
195
|
+
markAsCorrect: true
|
|
196
|
+
});
|
|
197
|
+
expect(rectComponent.prop('stroke')).toEqual('green');
|
|
198
|
+
expect(rectComponent.prop('strokeWidth')).toEqual(defaultModel.strokeWidth);
|
|
199
|
+
});
|
|
200
|
+
it('should have a green checkmark icon', () => {
|
|
201
|
+
const {
|
|
202
|
+
rectangleComponent
|
|
203
|
+
} = getComponents({
|
|
204
|
+
showCorrectEnabled: true,
|
|
205
|
+
markAsCorrect: true
|
|
206
|
+
});
|
|
207
|
+
const imgComponent = rectangleComponent.find(_imageKonvaTooltip.default);
|
|
208
|
+
expect(imgComponent.prop('src')).toEqual(_icons.faCorrect);
|
|
209
|
+
});
|
|
210
|
+
it('should not be selected if the answer is incorrect', () => {
|
|
211
|
+
const {
|
|
212
|
+
rectComponent
|
|
213
|
+
} = getComponents({
|
|
214
|
+
showCorrectEnabled: true,
|
|
215
|
+
markAsCorrect: false,
|
|
216
|
+
selected: true,
|
|
217
|
+
isCorrect: false
|
|
218
|
+
});
|
|
219
|
+
expect(rectComponent.prop('strokeWidth')).toEqual(0);
|
|
220
|
+
});
|
|
221
|
+
it('should not render an icon if the answer is incorrect', () => {
|
|
222
|
+
const {
|
|
223
|
+
rectangleComponent
|
|
224
|
+
} = getComponents({
|
|
225
|
+
showCorrectEnabled: true,
|
|
226
|
+
markAsCorrect: false,
|
|
227
|
+
selected: true,
|
|
228
|
+
isCorrect: false
|
|
229
|
+
});
|
|
230
|
+
const imgComponent = rectangleComponent.find(_imageKonvaTooltip.default);
|
|
231
|
+
expect(imgComponent.length).toEqual(0);
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9lbnp5bWUiLCJfZW56eW1lVG9Kc29uIiwiX2tvbnZhIiwiX3JlYWN0S29udmEiLCJfdGVzdFV0aWxzIiwiX3JlY3RhbmdsZSIsIl9pbWFnZUtvbnZhVG9vbHRpcCIsIl9pY29ucyIsImdsb2JhbCIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJjb25zdHJ1Y3RvciIsImNhbGxiYWNrIiwiZGlzY29ubmVjdCIsIm9ic2VydmUiLCJlbGVtZW50IiwiaW5pdE9iamVjdCIsIktvbnZhIiwiaXNCcm93c2VyIiwiZGVzY3JpYmUiLCJvbkNsaWNrIiwid3JhcHBlciIsIm1rV3JhcHBlciIsIm9wdHMiLCJjbGFzc2VzIiwiYmFzZSIsImhlaWdodCIsImhvdHNwb3RDb2xvciIsImlkIiwiaXNDb3JyZWN0IiwiaXNFdmFsdWF0ZU1vZGUiLCJldmFsdWF0ZVRleHQiLCJkaXNhYmxlZCIsIm91dGxpbmVDb2xvciIsInNlbGVjdGVkIiwid2lkdGgiLCJ4IiwieSIsInNoYWxsb3ciLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsImJlZm9yZUVhY2giLCJqZXN0IiwiZm4iLCJpdCIsImV4cGVjdCIsInRvSnNvbiIsInRvTWF0Y2hTbmFwc2hvdCIsInN0cm9rZVdpZHRoIiwiZGVmYXVsdE1vZGVsIiwibWFya0FzQ29ycmVjdCIsInNob3dDb3JyZWN0RW5hYmxlZCIsImdldENvbXBvbmVudHMiLCJtb2RlbCIsInRlc3RXcmFwcGVyIiwic2hhbGxvd0NoaWxkIiwiUmVjdGFuZ2xlIiwicmVjdGFuZ2xlQ29tcG9uZW50IiwicmVjdENvbXBvbmVudCIsImZpbmQiLCJSZWN0IiwicHJvcCIsInRvRXF1YWwiLCJpbWdDb21wb25lbnQiLCJJbWFnZUNvbXBvbmVudCIsImxlbmd0aCIsImZhQ29ycmVjdCIsImZhV3JvbmciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3JlY3RhbmdsZS50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgdG9Kc29uIGZyb20gJ2VuenltZS10by1qc29uJztcbmltcG9ydCBLb252YSBmcm9tICdrb252YSc7XG5pbXBvcnQgeyBSZWN0IH0gZnJvbSAncmVhY3Qta29udmEnO1xuXG5pbXBvcnQgeyBzaGFsbG93Q2hpbGQgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcblxuaW1wb3J0IFJlY3RhbmdsZSBmcm9tICcuLi9ob3RzcG90L3JlY3RhbmdsZSc7XG5pbXBvcnQgSW1hZ2VDb21wb25lbnQgZnJvbSAnLi4vaG90c3BvdC9pbWFnZS1rb252YS10b29sdGlwJztcbmltcG9ydCB7IGZhQ29ycmVjdCwgZmFXcm9uZyB9IGZyb20gJy4uL2hvdHNwb3QvaWNvbnMnO1xuXG5nbG9iYWwuTXV0YXRpb25PYnNlcnZlciA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IoY2FsbGJhY2spIHt9XG4gIGRpc2Nvbm5lY3QoKSB7fVxuICBvYnNlcnZlKGVsZW1lbnQsIGluaXRPYmplY3QpIHt9XG59O1xuXG5Lb252YS5pc0Jyb3dzZXIgPSBmYWxzZTtcblxuZGVzY3JpYmUoJ1JlY3RhbmdsZScsICgpID0+IHtcbiAgbGV0IG9uQ2xpY2ssIHdyYXBwZXI7XG5cbiAgY29uc3QgbWtXcmFwcGVyID0gKG9wdHMgPSB7fSkgPT4ge1xuICAgIG9wdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7IGJhc2U6ICdiYXNlJyB9LFxuICAgICAgaGVpZ2h0OiAyMDAsXG4gICAgICBob3RzcG90Q29sb3I6ICdyZ2JhKDEzNywgMTgzLCAyNDQsIDAuNjUpJyxcbiAgICAgIGlkOiAnMScsXG4gICAgICBpc0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgaXNFdmFsdWF0ZU1vZGU6IGZhbHNlLFxuICAgICAgZXZhbHVhdGVUZXh0OiBudWxsLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgb3V0bGluZUNvbG9yOiAnYmx1ZScsXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICB3aWR0aDogMzAwLFxuICAgICAgeDogNSxcbiAgICAgIHk6IDUsXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG5cbiAgICByZXR1cm4gc2hhbGxvdyg8UmVjdGFuZ2xlIHsuLi5vcHRzfSBvbkNsaWNrPXtvbkNsaWNrfSAvPik7XG4gIH07XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DbGljayA9IGplc3QuZm4oKTtcbiAgICB3cmFwcGVyID0gbWtXcmFwcGVyKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdHMnLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ291dGxpbmUgY29sb3InLCAoKSA9PiB7XG4gICAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IG1rV3JhcHBlcih7IG91dGxpbmVDb2xvcjogJ3JlZCcgfSk7XG4gICAgICAgIGV4cGVjdCh0b0pzb24od3JhcHBlcikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnb3V0bGluZSB3aWR0aCcsICgpID0+IHtcbiAgICAgIGl0KCdyZW5kZXJzIHdpdGggZGVmYXVsdCBib3JkZXIgd2lkdGgnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBta1dyYXBwZXIoKTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3JlbmRlcnMgd2l0aCBnaXZlbiBib3JkZXIgd2lkdGgnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBta1dyYXBwZXIoeyBzdHJva2VXaWR0aDogMTAgfSk7XG4gICAgICAgIGV4cGVjdCh0b0pzb24od3JhcHBlcikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnaG90c3BvdCBjb2xvcicsICgpID0+IHtcbiAgICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHsgaG90c3BvdENvbG9yOiAncmdiYSgyMTcsIDMwLCAyNCwgMC42NSknIH0pO1xuICAgICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2V2YWx1YXRlIHdpdGggY29ycmVjdCBhbnN3ZXInLCAoKSA9PiB7XG4gICAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IG1rV3JhcHBlcih7IGlzRXZhbHVhdGVNb2RlOiB0cnVlLCBpc0NvcnJlY3Q6IHRydWUsIGV2YWx1YXRlVGV4dDogJ0NvcnJlY3RseVxcbnNlbGVjdGVkJyB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2luIGV2YWx1YXRlIG1vZGUnLCAoKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdE1vZGVsID0ge1xuICAgICAgb25DbGljayxcbiAgICAgIGlkOiAnMScsXG4gICAgICBoZWlnaHQ6IDIwMCxcbiAgICAgIGhvdHNwb3RDb2xvcjogJ3JnYmEoMTM3LCAxODMsIDI0NCwgMC42NSknLFxuICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICB3aWR0aDogMzAwLFxuICAgICAgeDogNSxcbiAgICAgIHk6IDUsXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICBpc0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgaXNFdmFsdWF0ZU1vZGU6IHRydWUsXG4gICAgICBldmFsdWF0ZVRleHQ6IG51bGwsXG4gICAgICBzdHJva2VXaWR0aDogNSxcbiAgICAgIG91dGxpbmVDb2xvcjogJ2JsdWUnLFxuICAgICAgbWFya0FzQ29ycmVjdDogZmFsc2UsXG4gICAgICBzaG93Q29ycmVjdEVuYWJsZWQ6IGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdCBnZXRDb21wb25lbnRzID0gKG1vZGVsKSA9PiB7XG4gICAgICBjb25zdCB0ZXN0V3JhcHBlciA9IHNoYWxsb3dDaGlsZChcbiAgICAgICAgUmVjdGFuZ2xlLFxuICAgICAgICB7XG4gICAgICAgICAgLi4uZGVmYXVsdE1vZGVsLFxuICAgICAgICAgIC4uLm1vZGVsLFxuICAgICAgICB9LFxuICAgICAgICAxLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlY3RhbmdsZUNvbXBvbmVudCA9IHRlc3RXcmFwcGVyKCk7XG4gICAgICBjb25zdCByZWN0Q29tcG9uZW50ID0gcmVjdGFuZ2xlQ29tcG9uZW50LmZpbmQoUmVjdCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWN0YW5nbGVDb21wb25lbnQsXG4gICAgICAgIHJlY3RDb21wb25lbnQsXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBkZXNjcmliZSgnd2hlbiBjb3JyZWN0bHkgc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IHJlY3RhbmdsZUNvbXBvbmVudCwgcmVjdENvbXBvbmVudCB9ID0gZ2V0Q29tcG9uZW50cyh7XG4gICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgICBpc0NvcnJlY3Q6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIGEgYmx1ZSBvdXRsaW5lJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QocmVjdENvbXBvbmVudC5wcm9wKCdzdHJva2UnKSkudG9FcXVhbCgnYmx1ZScpO1xuICAgICAgICBleHBlY3QocmVjdENvbXBvbmVudC5wcm9wKCdzdHJva2VXaWR0aCcpKS50b0VxdWFsKGRlZmF1bHRNb2RlbC5zdHJva2VXaWR0aCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIGEgZ3JlZW4gY2hlY2ttYXJrIGljb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGltZ0NvbXBvbmVudCA9IHJlY3RhbmdsZUNvbXBvbmVudC5maW5kKEltYWdlQ29tcG9uZW50KTtcbiAgICAgICAgZXhwZWN0KGltZ0NvbXBvbmVudC5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgICAgIGV4cGVjdChpbWdDb21wb25lbnQucHJvcCgnc3JjJykpLnRvRXF1YWwoZmFDb3JyZWN0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3doZW4gY29ycmVjdGx5IG5vdCBzZWxlY3RlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcmVjdGFuZ2xlQ29tcG9uZW50LCByZWN0Q29tcG9uZW50IH0gPSBnZXRDb21wb25lbnRzKHtcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBpc0NvcnJlY3Q6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIG5vIG91dGxpbmUnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChyZWN0Q29tcG9uZW50LnByb3AoJ3N0cm9rZVdpZHRoJykpLnRvRXF1YWwoMCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIG5vIGljb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGltZ0NvbXBvbmVudCA9IHJlY3RhbmdsZUNvbXBvbmVudC5maW5kKEltYWdlQ29tcG9uZW50KTtcbiAgICAgICAgZXhwZWN0KGltZ0NvbXBvbmVudC5sZW5ndGgpLnRvRXF1YWwoMCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd3aGVuIGluY29ycmVjdGx5IHNlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyByZWN0YW5nbGVDb21wb25lbnQsIHJlY3RDb21wb25lbnQgfSA9IGdldENvbXBvbmVudHMoe1xuICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgaXNDb3JyZWN0OiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhdmUgYSByZWQgb3V0bGluZScsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHJlY3RDb21wb25lbnQucHJvcCgnc3Ryb2tlJykpLnRvRXF1YWwoJ3JlZCcpO1xuICAgICAgICBleHBlY3QocmVjdENvbXBvbmVudC5wcm9wKCdzdHJva2VXaWR0aCcpKS50b0VxdWFsKGRlZmF1bHRNb2RlbC5zdHJva2VXaWR0aCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIGEgcmVkIHggaWNvbicsICgpID0+IHtcbiAgICAgICAgY29uc3QgaW1nQ29tcG9uZW50ID0gcmVjdGFuZ2xlQ29tcG9uZW50LmZpbmQoSW1hZ2VDb21wb25lbnQpO1xuICAgICAgICBleHBlY3QoaW1nQ29tcG9uZW50Lmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgZXhwZWN0KGltZ0NvbXBvbmVudC5wcm9wKCdzcmMnKSkudG9FcXVhbChmYVdyb25nKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3doZW4gaW5jb3JyZWN0bHkgbm90IHNlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyByZWN0YW5nbGVDb21wb25lbnQsIHJlY3RDb21wb25lbnQgfSA9IGdldENvbXBvbmVudHMoe1xuICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIGlzQ29ycmVjdDogZmFsc2UsXG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIG5vIG91dGxpbmUnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChyZWN0Q29tcG9uZW50LnByb3AoJ3N0cm9rZVdpZHRoJykpLnRvRXF1YWwoMCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIGEgcmVkIHggaWNvbicsICgpID0+IHtcbiAgICAgICAgY29uc3QgaW1nQ29tcG9uZW50ID0gcmVjdGFuZ2xlQ29tcG9uZW50LmZpbmQoSW1hZ2VDb21wb25lbnQpO1xuICAgICAgICBleHBlY3QoaW1nQ29tcG9uZW50Lmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgZXhwZWN0KGltZ0NvbXBvbmVudC5wcm9wKCdzcmMnKSkudG9FcXVhbChmYVdyb25nKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3doZW4gc2hvd2luZyBjb3JyZWN0IGFuc3dlciAoc2hvd0NvcnJlY3RFbmFibGVkID0gdHJ1ZSknLCAoKSA9PiB7XG4gICAgICBpdCgnc2hvdWxkIGhhdmUgYSBncmVlbiBvdXRsaW5lJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHJlY3RDb21wb25lbnQgfSA9IGdldENvbXBvbmVudHMoe1xuICAgICAgICAgIHNob3dDb3JyZWN0RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBtYXJrQXNDb3JyZWN0OiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KHJlY3RDb21wb25lbnQucHJvcCgnc3Ryb2tlJykpLnRvRXF1YWwoJ2dyZWVuJyk7XG4gICAgICAgIGV4cGVjdChyZWN0Q29tcG9uZW50LnByb3AoJ3N0cm9rZVdpZHRoJykpLnRvRXF1YWwoZGVmYXVsdE1vZGVsLnN0cm9rZVdpZHRoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhdmUgYSBncmVlbiBjaGVja21hcmsgaWNvbicsICgpID0+IHtcbiAgICAgICAgY29uc3QgeyByZWN0YW5nbGVDb21wb25lbnQgfSA9IGdldENvbXBvbmVudHMoe1xuICAgICAgICAgIHNob3dDb3JyZWN0RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBtYXJrQXNDb3JyZWN0OiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaW1nQ29tcG9uZW50ID0gcmVjdGFuZ2xlQ29tcG9uZW50LmZpbmQoSW1hZ2VDb21wb25lbnQpO1xuICAgICAgICBleHBlY3QoaW1nQ29tcG9uZW50LnByb3AoJ3NyYycpKS50b0VxdWFsKGZhQ29ycmVjdCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBub3QgYmUgc2VsZWN0ZWQgaWYgdGhlIGFuc3dlciBpcyBpbmNvcnJlY3QnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmVjdENvbXBvbmVudCB9ID0gZ2V0Q29tcG9uZW50cyh7XG4gICAgICAgICAgc2hvd0NvcnJlY3RFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIG1hcmtBc0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgICAgIGlzQ29ycmVjdDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBleHBlY3QocmVjdENvbXBvbmVudC5wcm9wKCdzdHJva2VXaWR0aCcpKS50b0VxdWFsKDApO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbm90IHJlbmRlciBhbiBpY29uIGlmIHRoZSBhbnN3ZXIgaXMgaW5jb3JyZWN0JywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHJlY3RhbmdsZUNvbXBvbmVudCB9ID0gZ2V0Q29tcG9uZW50cyh7XG4gICAgICAgICAgc2hvd0NvcnJlY3RFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIG1hcmtBc0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgICAgIGlzQ29ycmVjdDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBpbWdDb21wb25lbnQgPSByZWN0YW5nbGVDb21wb25lbnQuZmluZChJbWFnZUNvbXBvbmVudCk7XG4gICAgICAgIGV4cGVjdChpbWdDb21wb25lbnQubGVuZ3RoKS50b0VxdWFsKDApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7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
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _sessionUpdater = require("../session-updater");
|
|
4
|
+
const modelCopy = {
|
|
5
|
+
shapes: {
|
|
6
|
+
rectangles: [{
|
|
7
|
+
id: '1',
|
|
8
|
+
correct: true
|
|
9
|
+
}, {
|
|
10
|
+
id: '2'
|
|
11
|
+
}, {
|
|
12
|
+
id: '3'
|
|
13
|
+
}],
|
|
14
|
+
polygons: [{
|
|
15
|
+
id: '4',
|
|
16
|
+
correct: true
|
|
17
|
+
}, {
|
|
18
|
+
id: '5'
|
|
19
|
+
}]
|
|
20
|
+
},
|
|
21
|
+
configure: {},
|
|
22
|
+
multipleCorrect: true
|
|
23
|
+
};
|
|
24
|
+
const sessionCopy = {
|
|
25
|
+
answers: [{
|
|
26
|
+
id: '1'
|
|
27
|
+
}, {
|
|
28
|
+
id: '2'
|
|
29
|
+
}]
|
|
30
|
+
};
|
|
31
|
+
describe('session-updater', () => {
|
|
32
|
+
beforeEach(() => {});
|
|
33
|
+
describe('updateSessionValue', () => {
|
|
34
|
+
const assert = (session, model, data, expected) => {
|
|
35
|
+
return () => {
|
|
36
|
+
(0, _sessionUpdater.updateSessionValue)(session, model, data);
|
|
37
|
+
expect(session.answers).toEqual(expected);
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
describe('deselect', () => {
|
|
41
|
+
it('deselects shape', assert(sessionCopy, modelCopy, {
|
|
42
|
+
id: '1',
|
|
43
|
+
selected: false
|
|
44
|
+
}, [{
|
|
45
|
+
id: '2'
|
|
46
|
+
}]));
|
|
47
|
+
});
|
|
48
|
+
describe('select hotspot', () => {
|
|
49
|
+
it('selects shape in multiple choice mode', assert(sessionCopy, modelCopy, {
|
|
50
|
+
id: '1',
|
|
51
|
+
selected: true
|
|
52
|
+
}, [{
|
|
53
|
+
id: '2'
|
|
54
|
+
}, {
|
|
55
|
+
id: '1'
|
|
56
|
+
}]));
|
|
57
|
+
it('selects shape in single choice mode', assert(sessionCopy, {
|
|
58
|
+
...modelCopy,
|
|
59
|
+
multipleCorrect: false
|
|
60
|
+
}, {
|
|
61
|
+
id: '1',
|
|
62
|
+
selected: true
|
|
63
|
+
}, [{
|
|
64
|
+
id: '1'
|
|
65
|
+
}]));
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2Vzc2lvblVwZGF0ZXIiLCJyZXF1aXJlIiwibW9kZWxDb3B5Iiwic2hhcGVzIiwicmVjdGFuZ2xlcyIsImlkIiwiY29ycmVjdCIsInBvbHlnb25zIiwiY29uZmlndXJlIiwibXVsdGlwbGVDb3JyZWN0Iiwic2Vzc2lvbkNvcHkiLCJhbnN3ZXJzIiwiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwiYXNzZXJ0Iiwic2Vzc2lvbiIsIm1vZGVsIiwiZGF0YSIsImV4cGVjdGVkIiwidXBkYXRlU2Vzc2lvblZhbHVlIiwiZXhwZWN0IiwidG9FcXVhbCIsIml0Iiwic2VsZWN0ZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Nlc3Npb24tdXBkYXRlci50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1cGRhdGVTZXNzaW9uVmFsdWUgfSBmcm9tICcuLi9zZXNzaW9uLXVwZGF0ZXInO1xuXG5jb25zdCBtb2RlbENvcHkgPSB7XG4gIHNoYXBlczoge1xuICAgIHJlY3RhbmdsZXM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgY29ycmVjdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnMicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzMnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHBvbHlnb25zOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnNCcsXG4gICAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzUnLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjb25maWd1cmU6IHt9LFxuICBtdWx0aXBsZUNvcnJlY3Q6IHRydWUsXG59O1xuXG5jb25zdCBzZXNzaW9uQ29weSA9IHtcbiAgYW5zd2VyczogW1xuICAgIHtcbiAgICAgIGlkOiAnMScsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJzInLFxuICAgIH0sXG4gIF0sXG59O1xuXG5kZXNjcmliZSgnc2Vzc2lvbi11cGRhdGVyJywgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHt9KTtcblxuICBkZXNjcmliZSgndXBkYXRlU2Vzc2lvblZhbHVlJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydCA9IChzZXNzaW9uLCBtb2RlbCwgZGF0YSwgZXhwZWN0ZWQpID0+IHtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVNlc3Npb25WYWx1ZShzZXNzaW9uLCBtb2RlbCwgZGF0YSk7XG4gICAgICAgIGV4cGVjdChzZXNzaW9uLmFuc3dlcnMpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgZGVzY3JpYmUoJ2Rlc2VsZWN0JywgKCkgPT4ge1xuICAgICAgaXQoJ2Rlc2VsZWN0cyBzaGFwZScsIGFzc2VydChzZXNzaW9uQ29weSwgbW9kZWxDb3B5LCB7IGlkOiAnMScsIHNlbGVjdGVkOiBmYWxzZSB9LCBbeyBpZDogJzInIH1dKSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2VsZWN0IGhvdHNwb3QnLCAoKSA9PiB7XG4gICAgICBpdChcbiAgICAgICAgJ3NlbGVjdHMgc2hhcGUgaW4gbXVsdGlwbGUgY2hvaWNlIG1vZGUnLFxuICAgICAgICBhc3NlcnQoc2Vzc2lvbkNvcHksIG1vZGVsQ29weSwgeyBpZDogJzEnLCBzZWxlY3RlZDogdHJ1ZSB9LCBbeyBpZDogJzInIH0sIHsgaWQ6ICcxJyB9XSksXG4gICAgICApO1xuXG4gICAgICBpdChcbiAgICAgICAgJ3NlbGVjdHMgc2hhcGUgaW4gc2luZ2xlIGNob2ljZSBtb2RlJyxcbiAgICAgICAgYXNzZXJ0KHNlc3Npb25Db3B5LCB7IC4uLm1vZGVsQ29weSwgbXVsdGlwbGVDb3JyZWN0OiBmYWxzZSB9LCB7IGlkOiAnMScsIHNlbGVjdGVkOiB0cnVlIH0sIFt7IGlkOiAnMScgfV0pLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBw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
|