@pie-element/extended-text-entry 15.1.9 → 15.1.10
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 +4 -0
- package/configure/CHANGELOG.md +4 -0
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +4 -0
- package/controller/package.json +1 -1
- package/module/configure.js +1 -0
- package/module/controller.js +139 -0
- package/module/demo.js +38 -0
- package/module/element.js +1 -0
- package/module/index.html +21 -0
- package/module/manifest.json +22 -0
- package/module/print-demo.js +76 -0
- package/module/print.html +18 -0
- package/module/print.js +1 -0
- package/package.json +4 -4
- package/configure/lib/__tests__/main.test.js +0 -123
- package/controller/lib/__tests__/index.test.js +0 -350
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/index.test.js +0 -37
- package/lib/annotation/__tests__/annotation-editor.test.js +0 -326
- package/lib/annotation/__tests__/freeform-editor.test.js +0 -136
|
@@ -1,123 +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
|
-
var _defaults = _interopRequireDefault(require("../defaults"));
|
|
9
|
-
jest.mock('@pie-lib/config-ui', () => ({
|
|
10
|
-
layout: {
|
|
11
|
-
ConfigLayout: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
12
|
-
"data-testid": "config-layout"
|
|
13
|
-
}, props.children)
|
|
14
|
-
},
|
|
15
|
-
settings: {
|
|
16
|
-
Panel: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
17
|
-
"data-testid": "settings-panel",
|
|
18
|
-
onChange: props.onChange
|
|
19
|
-
}),
|
|
20
|
-
toggle: jest.fn(),
|
|
21
|
-
radio: jest.fn(),
|
|
22
|
-
numberFields: jest.fn(),
|
|
23
|
-
dropdown: jest.fn()
|
|
24
|
-
},
|
|
25
|
-
InputContainer: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
26
|
-
"data-testid": "input-container"
|
|
27
|
-
}, props.children),
|
|
28
|
-
FeedbackSelector: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
29
|
-
"data-testid": "feedback-selector"
|
|
30
|
-
})
|
|
31
|
-
}));
|
|
32
|
-
jest.mock('@pie-lib/editable-html-tip-tap', () => ({
|
|
33
|
-
__esModule: true,
|
|
34
|
-
default: ({
|
|
35
|
-
markup,
|
|
36
|
-
onChange
|
|
37
|
-
}) => /*#__PURE__*/_react.default.createElement("div", {
|
|
38
|
-
"data-testid": "editable-html",
|
|
39
|
-
onClick: () => onChange && onChange('new value')
|
|
40
|
-
}, markup),
|
|
41
|
-
ALL_PLUGINS: []
|
|
42
|
-
}));
|
|
43
|
-
const theme = (0, _styles.createTheme)();
|
|
44
|
-
describe('Render Main Component', () => {
|
|
45
|
-
let onChange;
|
|
46
|
-
let model = _defaults.default.model;
|
|
47
|
-
let configuration = _defaults.default.configuration;
|
|
48
|
-
beforeEach(() => {
|
|
49
|
-
onChange = jest.fn();
|
|
50
|
-
});
|
|
51
|
-
const renderMain = (extras = {}) => {
|
|
52
|
-
const defaults = {
|
|
53
|
-
classes: {},
|
|
54
|
-
model,
|
|
55
|
-
configuration,
|
|
56
|
-
onModelChanged: onChange,
|
|
57
|
-
handleBoxResize: () => {},
|
|
58
|
-
imageSupport: {},
|
|
59
|
-
uploadSoundSupport: {},
|
|
60
|
-
...extras
|
|
61
|
-
};
|
|
62
|
-
const props = {
|
|
63
|
-
...defaults
|
|
64
|
-
};
|
|
65
|
-
return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
|
|
66
|
-
theme: theme
|
|
67
|
-
}, /*#__PURE__*/_react.default.createElement(_main.Main, props)));
|
|
68
|
-
};
|
|
69
|
-
describe('logic', () => {
|
|
70
|
-
it('onPromptChange calls onModelChanged', () => {
|
|
71
|
-
const testInstance = new _main.Main({
|
|
72
|
-
classes: {},
|
|
73
|
-
model,
|
|
74
|
-
configuration,
|
|
75
|
-
onModelChanged: onChange,
|
|
76
|
-
handleBoxResize: () => {},
|
|
77
|
-
imageSupport: {},
|
|
78
|
-
uploadSoundSupport: {}
|
|
79
|
-
});
|
|
80
|
-
testInstance.onPromptChange('New Prompt');
|
|
81
|
-
expect(onChange).toBeCalledWith(expect.objectContaining({
|
|
82
|
-
prompt: 'New Prompt'
|
|
83
|
-
}));
|
|
84
|
-
});
|
|
85
|
-
it('changeFeedback calls onModelChanged', () => {
|
|
86
|
-
const testInstance = new _main.Main({
|
|
87
|
-
classes: {},
|
|
88
|
-
model,
|
|
89
|
-
configuration,
|
|
90
|
-
onModelChanged: onChange,
|
|
91
|
-
handleBoxResize: () => {},
|
|
92
|
-
imageSupport: {},
|
|
93
|
-
uploadSoundSupport: {}
|
|
94
|
-
});
|
|
95
|
-
testInstance.changeFeedback({
|
|
96
|
-
type: 'custom',
|
|
97
|
-
default: 'Default Feedback'
|
|
98
|
-
});
|
|
99
|
-
expect(onChange).toBeCalledWith(expect.objectContaining({
|
|
100
|
-
feedback: {
|
|
101
|
-
type: 'custom',
|
|
102
|
-
default: 'Default Feedback'
|
|
103
|
-
}
|
|
104
|
-
}));
|
|
105
|
-
});
|
|
106
|
-
it('changeTeacherInstructions calls onModelChanged', () => {
|
|
107
|
-
const testInstance = new _main.Main({
|
|
108
|
-
classes: {},
|
|
109
|
-
model,
|
|
110
|
-
configuration,
|
|
111
|
-
onModelChanged: onChange,
|
|
112
|
-
handleBoxResize: () => {},
|
|
113
|
-
imageSupport: {},
|
|
114
|
-
uploadSoundSupport: {}
|
|
115
|
-
});
|
|
116
|
-
testInstance.changeTeacherInstructions('Teacher Instructions');
|
|
117
|
-
expect(onChange).toBeCalledWith(expect.objectContaining({
|
|
118
|
-
teacherInstructions: 'Teacher Instructions'
|
|
119
|
-
}));
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX21haW4iLCJfZGVmYXVsdHMiLCJqZXN0IiwibW9jayIsImxheW91dCIsIkNvbmZpZ0xheW91dCIsInByb3BzIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZHJlbiIsInNldHRpbmdzIiwiUGFuZWwiLCJvbkNoYW5nZSIsInRvZ2dsZSIsImZuIiwicmFkaW8iLCJudW1iZXJGaWVsZHMiLCJkcm9wZG93biIsIklucHV0Q29udGFpbmVyIiwiRmVlZGJhY2tTZWxlY3RvciIsIl9fZXNNb2R1bGUiLCJtYXJrdXAiLCJvbkNsaWNrIiwiQUxMX1BMVUdJTlMiLCJ0aGVtZSIsImNyZWF0ZVRoZW1lIiwiZGVzY3JpYmUiLCJtb2RlbCIsImRlZmF1bHRzIiwiY29uZmlndXJhdGlvbiIsImJlZm9yZUVhY2giLCJyZW5kZXJNYWluIiwiZXh0cmFzIiwiY2xhc3NlcyIsIm9uTW9kZWxDaGFuZ2VkIiwiaGFuZGxlQm94UmVzaXplIiwiaW1hZ2VTdXBwb3J0IiwidXBsb2FkU291bmRTdXBwb3J0IiwicmVuZGVyIiwiVGhlbWVQcm92aWRlciIsIk1haW4iLCJpdCIsInRlc3RJbnN0YW5jZSIsIm9uUHJvbXB0Q2hhbmdlIiwiZXhwZWN0IiwidG9CZUNhbGxlZFdpdGgiLCJvYmplY3RDb250YWluaW5nIiwicHJvbXB0IiwiY2hhbmdlRmVlZGJhY2siLCJ0eXBlIiwiZmVlZGJhY2siLCJjaGFuZ2VUZWFjaGVySW5zdHJ1Y3Rpb25zIiwidGVhY2hlckluc3RydWN0aW9ucyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbWFpbi50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcblxuaW1wb3J0IHsgTWFpbiB9IGZyb20gJy4uL21haW4nO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9jb25maWctdWknLCAoKSA9PiAoe1xuICBsYXlvdXQ6IHtcbiAgICBDb25maWdMYXlvdXQ6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImNvbmZpZy1sYXlvdXRcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICB9LFxuICBzZXR0aW5nczoge1xuICAgIFBhbmVsOiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJzZXR0aW5ncy1wYW5lbFwiIG9uQ2hhbmdlPXtwcm9wcy5vbkNoYW5nZX0gLz4sXG4gICAgdG9nZ2xlOiBqZXN0LmZuKCksXG4gICAgcmFkaW86IGplc3QuZm4oKSxcbiAgICBudW1iZXJGaWVsZHM6IGplc3QuZm4oKSxcbiAgICBkcm9wZG93bjogamVzdC5mbigpLFxuICB9LFxuICBJbnB1dENvbnRhaW5lcjogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiaW5wdXQtY29udGFpbmVyXCI+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgRmVlZGJhY2tTZWxlY3RvcjogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiZmVlZGJhY2stc2VsZWN0b3JcIiAvPixcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9lZGl0YWJsZS1odG1sLXRpcC10YXAnLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAoeyBtYXJrdXAsIG9uQ2hhbmdlIH0pID0+IChcbiAgICA8ZGl2IGRhdGEtdGVzdGlkPVwiZWRpdGFibGUtaHRtbFwiIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlICYmIG9uQ2hhbmdlKCduZXcgdmFsdWUnKX0+XG4gICAgICB7bWFya3VwfVxuICAgIDwvZGl2PlxuICApLFxuICBBTExfUExVR0lOUzogW10sXG59KSk7XG5cbmNvbnN0IHRoZW1lID0gY3JlYXRlVGhlbWUoKTtcblxuZGVzY3JpYmUoJ1JlbmRlciBNYWluIENvbXBvbmVudCcsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlO1xuICBsZXQgbW9kZWwgPSBkZWZhdWx0cy5tb2RlbDtcbiAgbGV0IGNvbmZpZ3VyYXRpb24gPSBkZWZhdWx0cy5jb25maWd1cmF0aW9uO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICB9KTtcblxuICBjb25zdCByZW5kZXJNYWluID0gKGV4dHJhcyA9IHt9KSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIG1vZGVsLFxuICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgIG9uTW9kZWxDaGFuZ2VkOiBvbkNoYW5nZSxcbiAgICAgIGhhbmRsZUJveFJlc2l6ZTogKCkgPT4ge30sXG4gICAgICBpbWFnZVN1cHBvcnQ6IHt9LFxuICAgICAgdXBsb2FkU291bmRTdXBwb3J0OiB7fSxcbiAgICAgIC4uLmV4dHJhc1xuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzIH07XG5cbiAgICByZXR1cm4gcmVuZGVyKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgPE1haW4gey4uLnByb3BzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGl0KCdvblByb21wdENoYW5nZSBjYWxscyBvbk1vZGVsQ2hhbmdlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RJbnN0YW5jZSA9IG5ldyBNYWluKHtcbiAgICAgICAgY2xhc3Nlczoge30sXG4gICAgICAgIG1vZGVsLFxuICAgICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgICBvbk1vZGVsQ2hhbmdlZDogb25DaGFuZ2UsXG4gICAgICAgIGhhbmRsZUJveFJlc2l6ZTogKCkgPT4ge30sXG4gICAgICAgIGltYWdlU3VwcG9ydDoge30sXG4gICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydDoge30sXG4gICAgICB9KTtcblxuICAgICAgdGVzdEluc3RhbmNlLm9uUHJvbXB0Q2hhbmdlKCdOZXcgUHJvbXB0Jyk7XG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvQmVDYWxsZWRXaXRoKGV4cGVjdC5vYmplY3RDb250YWluaW5nKHsgcHJvbXB0OiAnTmV3IFByb21wdCcgfSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NoYW5nZUZlZWRiYWNrIGNhbGxzIG9uTW9kZWxDaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdGVzdEluc3RhbmNlID0gbmV3IE1haW4oe1xuICAgICAgICBjbGFzc2VzOiB7fSxcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIG9uTW9kZWxDaGFuZ2VkOiBvbkNoYW5nZSxcbiAgICAgICAgaGFuZGxlQm94UmVzaXplOiAoKSA9PiB7fSxcbiAgICAgICAgaW1hZ2VTdXBwb3J0OiB7fSxcbiAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0OiB7fSxcbiAgICAgIH0pO1xuXG4gICAgICB0ZXN0SW5zdGFuY2UuY2hhbmdlRmVlZGJhY2soeyB0eXBlOiAnY3VzdG9tJywgZGVmYXVsdDogJ0RlZmF1bHQgRmVlZGJhY2snIH0pO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBmZWVkYmFjazogeyB0eXBlOiAnY3VzdG9tJywgZGVmYXVsdDogJ0RlZmF1bHQgRmVlZGJhY2snIH0gfSksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NoYW5nZVRlYWNoZXJJbnN0cnVjdGlvbnMgY2FsbHMgb25Nb2RlbENoYW5nZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0ZXN0SW5zdGFuY2UgPSBuZXcgTWFpbih7XG4gICAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgb25Nb2RlbENoYW5nZWQ6IG9uQ2hhbmdlLFxuICAgICAgICBoYW5kbGVCb3hSZXNpemU6ICgpID0+IHt9LFxuICAgICAgICBpbWFnZVN1cHBvcnQ6IHt9LFxuICAgICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ6IHt9LFxuICAgICAgfSk7XG5cbiAgICAgIHRlc3RJbnN0YW5jZS5jaGFuZ2VUZWFjaGVySW5zdHJ1Y3Rpb25zKCdUZWFjaGVyIEluc3RydWN0aW9ucycpO1xuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7IHRlYWNoZXJJbnN0cnVjdGlvbnM6ICdUZWFjaGVyIEluc3RydWN0aW9ucycgfSkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxLQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFFQUssSUFBSSxDQUFDQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsT0FBTztFQUNyQ0MsTUFBTSxFQUFFO0lBQ05DLFlBQVksRUFBR0MsS0FBSyxpQkFBS1gsTUFBQSxDQUFBWSxPQUFBLENBQUFDLGFBQUE7TUFBSyxlQUFZO0lBQWUsR0FBRUYsS0FBSyxDQUFDRyxRQUFjO0VBQ2pGLENBQUM7RUFDREMsUUFBUSxFQUFFO0lBQ1JDLEtBQUssRUFBR0wsS0FBSyxpQkFBS1gsTUFBQSxDQUFBWSxPQUFBLENBQUFDLGFBQUE7TUFBSyxlQUFZLGdCQUFnQjtNQUFDSSxRQUFRLEVBQUVOLEtBQUssQ0FBQ007SUFB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
|
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _index = require("../index");
|
|
5
|
-
var _lodashEs = require("lodash-es");
|
|
6
|
-
var _defaults = _interopRequireDefault(require("../defaults"));
|
|
7
|
-
const defaults = {
|
|
8
|
-
..._defaults.default,
|
|
9
|
-
feedback: {
|
|
10
|
-
type: 'default',
|
|
11
|
-
default: 'this is default feedback'
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const q = extras => ({
|
|
15
|
-
...defaults,
|
|
16
|
-
...extras
|
|
17
|
-
});
|
|
18
|
-
const s = extras => ({
|
|
19
|
-
...extras
|
|
20
|
-
});
|
|
21
|
-
const e = (mode = 'gather') => ({
|
|
22
|
-
mode
|
|
23
|
-
});
|
|
24
|
-
describe('controller', () => {
|
|
25
|
-
const assert = (label, question, session, env, expected) => {
|
|
26
|
-
it(label, async () => {
|
|
27
|
-
const result = await (0, _index.model)(question, session, env);
|
|
28
|
-
if ((0, _lodashEs.isFunction)(expected)) {
|
|
29
|
-
expected(result);
|
|
30
|
-
} else {
|
|
31
|
-
expect(result).toMatchObject(expected);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
describe('model', () => {
|
|
36
|
-
const question = q();
|
|
37
|
-
const session = s();
|
|
38
|
-
const env = e();
|
|
39
|
-
describe('disabled', () => {
|
|
40
|
-
assert('gather', question, session, env, {
|
|
41
|
-
disabled: false
|
|
42
|
-
});
|
|
43
|
-
assert('view', question, session, e('view'), {
|
|
44
|
-
disabled: true
|
|
45
|
-
});
|
|
46
|
-
assert('evaluate', question, session, e('evaluate'), {
|
|
47
|
-
disabled: true
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
describe('feedback', () => {
|
|
51
|
-
assert('none for gather', question, session, env, {
|
|
52
|
-
feedback: undefined
|
|
53
|
-
});
|
|
54
|
-
assert('none for view', question, session, e('view'), {
|
|
55
|
-
feedback: undefined
|
|
56
|
-
});
|
|
57
|
-
assert('some for evaluate', q({
|
|
58
|
-
feedbackEnabled: true
|
|
59
|
-
}), session, e('evaluate'), {
|
|
60
|
-
feedback: q().feedback.default
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
it('gather mode, promptEnabled: true', async () => {
|
|
64
|
-
const result = await (0, _index.model)(question, session, env);
|
|
65
|
-
expect(result).toEqual({
|
|
66
|
-
annotatorMode: false,
|
|
67
|
-
customKeys: [],
|
|
68
|
-
prompt: defaults.prompt,
|
|
69
|
-
dimensions: defaults.dimensions,
|
|
70
|
-
disabled: false,
|
|
71
|
-
disabledAnnotator: true,
|
|
72
|
-
predefinedAnnotations: [],
|
|
73
|
-
feedback: undefined,
|
|
74
|
-
teacherInstructions: null,
|
|
75
|
-
spellCheckEnabled: false,
|
|
76
|
-
mathInput: defaults.mathInput,
|
|
77
|
-
playersToolbarPosition: 'bottom',
|
|
78
|
-
equationEditor: 8
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
it('gather mode, promptEnabled: false', async () => {
|
|
82
|
-
const result = await (0, _index.model)(q({
|
|
83
|
-
promptEnabled: false
|
|
84
|
-
}), session, env);
|
|
85
|
-
expect(result).toEqual({
|
|
86
|
-
annotatorMode: false,
|
|
87
|
-
customKeys: [],
|
|
88
|
-
prompt: null,
|
|
89
|
-
dimensions: defaults.dimensions,
|
|
90
|
-
disabled: false,
|
|
91
|
-
disabledAnnotator: true,
|
|
92
|
-
predefinedAnnotations: [],
|
|
93
|
-
feedback: undefined,
|
|
94
|
-
teacherInstructions: null,
|
|
95
|
-
mathInput: defaults.mathInput,
|
|
96
|
-
spellCheckEnabled: false,
|
|
97
|
-
playersToolbarPosition: 'bottom',
|
|
98
|
-
equationEditor: 8
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
it('gather mode, annotations enabled', async () => {
|
|
102
|
-
const result = await (0, _index.model)(q({
|
|
103
|
-
annotationsEnabled: true
|
|
104
|
-
}), session, env);
|
|
105
|
-
expect(result).toEqual({
|
|
106
|
-
annotatorMode: false,
|
|
107
|
-
customKeys: [],
|
|
108
|
-
prompt: defaults.prompt,
|
|
109
|
-
dimensions: defaults.dimensions,
|
|
110
|
-
disabled: false,
|
|
111
|
-
disabledAnnotator: true,
|
|
112
|
-
predefinedAnnotations: defaults.predefinedAnnotations,
|
|
113
|
-
feedback: undefined,
|
|
114
|
-
teacherInstructions: null,
|
|
115
|
-
spellCheckEnabled: false,
|
|
116
|
-
mathInput: defaults.mathInput,
|
|
117
|
-
playersToolbarPosition: 'bottom',
|
|
118
|
-
equationEditor: 8
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
it('view mode, student role', async () => {
|
|
122
|
-
const result = await (0, _index.model)(question, session, {
|
|
123
|
-
mode: 'view'
|
|
124
|
-
});
|
|
125
|
-
expect(result).toEqual({
|
|
126
|
-
annotatorMode: false,
|
|
127
|
-
customKeys: [],
|
|
128
|
-
prompt: defaults.prompt,
|
|
129
|
-
dimensions: defaults.dimensions,
|
|
130
|
-
disabled: true,
|
|
131
|
-
disabledAnnotator: true,
|
|
132
|
-
predefinedAnnotations: [],
|
|
133
|
-
feedback: undefined,
|
|
134
|
-
teacherInstructions: null,
|
|
135
|
-
spellCheckEnabled: false,
|
|
136
|
-
mathInput: defaults.mathInput,
|
|
137
|
-
playersToolbarPosition: 'bottom',
|
|
138
|
-
equationEditor: 8
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
it('view mode, student role, annotations enabled', async () => {
|
|
142
|
-
const result = await (0, _index.model)(q({
|
|
143
|
-
annotationsEnabled: true
|
|
144
|
-
}), session, {
|
|
145
|
-
mode: 'view'
|
|
146
|
-
});
|
|
147
|
-
expect(result).toEqual({
|
|
148
|
-
annotatorMode: false,
|
|
149
|
-
customKeys: [],
|
|
150
|
-
prompt: defaults.prompt,
|
|
151
|
-
dimensions: defaults.dimensions,
|
|
152
|
-
disabled: true,
|
|
153
|
-
disabledAnnotator: true,
|
|
154
|
-
predefinedAnnotations: defaults.predefinedAnnotations,
|
|
155
|
-
feedback: undefined,
|
|
156
|
-
teacherInstructions: null,
|
|
157
|
-
spellCheckEnabled: false,
|
|
158
|
-
mathInput: defaults.mathInput,
|
|
159
|
-
playersToolbarPosition: 'bottom',
|
|
160
|
-
equationEditor: 8
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
it('view mode, instructor role, teacherInstructions enabled', async () => {
|
|
164
|
-
const result = await (0, _index.model)(question, session, {
|
|
165
|
-
mode: 'view',
|
|
166
|
-
role: 'instructor'
|
|
167
|
-
});
|
|
168
|
-
expect(result).toEqual({
|
|
169
|
-
annotatorMode: false,
|
|
170
|
-
customKeys: [],
|
|
171
|
-
prompt: defaults.prompt,
|
|
172
|
-
dimensions: defaults.dimensions,
|
|
173
|
-
disabled: true,
|
|
174
|
-
disabledAnnotator: true,
|
|
175
|
-
predefinedAnnotations: [],
|
|
176
|
-
feedback: undefined,
|
|
177
|
-
teacherInstructions: defaults.teacherInstructions,
|
|
178
|
-
mathInput: defaults.mathInput,
|
|
179
|
-
spellCheckEnabled: false,
|
|
180
|
-
playersToolbarPosition: 'bottom',
|
|
181
|
-
equationEditor: 8
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
it('view mode, instructor role, teacherInstructions disabled', async () => {
|
|
185
|
-
const result = await (0, _index.model)(q({
|
|
186
|
-
teacherInstructionsEnabled: false
|
|
187
|
-
}), session, {
|
|
188
|
-
mode: 'view',
|
|
189
|
-
role: 'instructor'
|
|
190
|
-
});
|
|
191
|
-
expect(result).toEqual({
|
|
192
|
-
annotatorMode: false,
|
|
193
|
-
customKeys: [],
|
|
194
|
-
prompt: defaults.prompt,
|
|
195
|
-
dimensions: defaults.dimensions,
|
|
196
|
-
disabled: true,
|
|
197
|
-
disabledAnnotator: true,
|
|
198
|
-
predefinedAnnotations: [],
|
|
199
|
-
feedback: undefined,
|
|
200
|
-
teacherInstructions: null,
|
|
201
|
-
mathInput: defaults.mathInput,
|
|
202
|
-
spellCheckEnabled: false,
|
|
203
|
-
playersToolbarPosition: 'bottom',
|
|
204
|
-
equationEditor: 8
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
it('view mode, instructor role, annotations enabled', async () => {
|
|
208
|
-
const result = await (0, _index.model)(q({
|
|
209
|
-
annotationsEnabled: true
|
|
210
|
-
}), session, {
|
|
211
|
-
mode: 'view',
|
|
212
|
-
role: 'instructor'
|
|
213
|
-
});
|
|
214
|
-
expect(result).toEqual({
|
|
215
|
-
annotatorMode: true,
|
|
216
|
-
customKeys: [],
|
|
217
|
-
prompt: defaults.prompt,
|
|
218
|
-
dimensions: defaults.dimensions,
|
|
219
|
-
disabled: true,
|
|
220
|
-
disabledAnnotator: false,
|
|
221
|
-
predefinedAnnotations: defaults.predefinedAnnotations,
|
|
222
|
-
feedback: undefined,
|
|
223
|
-
teacherInstructions: defaults.teacherInstructions,
|
|
224
|
-
mathInput: defaults.mathInput,
|
|
225
|
-
spellCheckEnabled: false,
|
|
226
|
-
playersToolbarPosition: 'bottom',
|
|
227
|
-
equationEditor: 8
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
it('evaluate mode, student role', async () => {
|
|
231
|
-
const result = await (0, _index.model)({
|
|
232
|
-
...question,
|
|
233
|
-
feedbackEnabled: true
|
|
234
|
-
}, session, {
|
|
235
|
-
mode: 'evaluate'
|
|
236
|
-
});
|
|
237
|
-
expect(result).toEqual({
|
|
238
|
-
annotatorMode: false,
|
|
239
|
-
customKeys: [],
|
|
240
|
-
prompt: defaults.prompt,
|
|
241
|
-
dimensions: defaults.dimensions,
|
|
242
|
-
disabled: true,
|
|
243
|
-
disabledAnnotator: true,
|
|
244
|
-
predefinedAnnotations: [],
|
|
245
|
-
feedback: defaults.feedback.default,
|
|
246
|
-
teacherInstructions: null,
|
|
247
|
-
mathInput: defaults.mathInput,
|
|
248
|
-
spellCheckEnabled: false,
|
|
249
|
-
playersToolbarPosition: 'bottom',
|
|
250
|
-
equationEditor: 8
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
it('evaluate mode, student role, annotations enabled', async () => {
|
|
254
|
-
const result = await (0, _index.model)({
|
|
255
|
-
...question,
|
|
256
|
-
feedbackEnabled: true,
|
|
257
|
-
annotationsEnabled: true
|
|
258
|
-
}, session, {
|
|
259
|
-
mode: 'evaluate'
|
|
260
|
-
});
|
|
261
|
-
expect(result).toEqual({
|
|
262
|
-
annotatorMode: true,
|
|
263
|
-
customKeys: [],
|
|
264
|
-
prompt: defaults.prompt,
|
|
265
|
-
dimensions: defaults.dimensions,
|
|
266
|
-
disabled: true,
|
|
267
|
-
disabledAnnotator: true,
|
|
268
|
-
predefinedAnnotations: defaults.predefinedAnnotations,
|
|
269
|
-
feedback: defaults.feedback.default,
|
|
270
|
-
teacherInstructions: null,
|
|
271
|
-
mathInput: defaults.mathInput,
|
|
272
|
-
spellCheckEnabled: false,
|
|
273
|
-
playersToolbarPosition: 'bottom',
|
|
274
|
-
equationEditor: 8
|
|
275
|
-
});
|
|
276
|
-
});
|
|
277
|
-
it('evaluate mode, instructor role, teacherInstructions enabled', async () => {
|
|
278
|
-
const result = await (0, _index.model)({
|
|
279
|
-
...question,
|
|
280
|
-
feedbackEnabled: true
|
|
281
|
-
}, session, {
|
|
282
|
-
mode: 'evaluate',
|
|
283
|
-
role: 'instructor'
|
|
284
|
-
});
|
|
285
|
-
expect(result).toEqual({
|
|
286
|
-
annotatorMode: false,
|
|
287
|
-
customKeys: [],
|
|
288
|
-
prompt: defaults.prompt,
|
|
289
|
-
dimensions: defaults.dimensions,
|
|
290
|
-
disabled: true,
|
|
291
|
-
disabledAnnotator: true,
|
|
292
|
-
predefinedAnnotations: [],
|
|
293
|
-
feedback: defaults.feedback.default,
|
|
294
|
-
spellCheckEnabled: false,
|
|
295
|
-
teacherInstructions: defaults.teacherInstructions,
|
|
296
|
-
mathInput: defaults.mathInput,
|
|
297
|
-
playersToolbarPosition: 'bottom',
|
|
298
|
-
equationEditor: 8
|
|
299
|
-
});
|
|
300
|
-
});
|
|
301
|
-
it('evaluate mode, instructor role, teacherInstructions disabled', async () => {
|
|
302
|
-
const result = await (0, _index.model)(q({
|
|
303
|
-
teacherInstructionsEnabled: false,
|
|
304
|
-
feedbackEnabled: true
|
|
305
|
-
}), session, {
|
|
306
|
-
mode: 'evaluate',
|
|
307
|
-
role: 'instructor'
|
|
308
|
-
});
|
|
309
|
-
expect(result).toEqual({
|
|
310
|
-
annotatorMode: false,
|
|
311
|
-
customKeys: [],
|
|
312
|
-
prompt: defaults.prompt,
|
|
313
|
-
dimensions: defaults.dimensions,
|
|
314
|
-
disabled: true,
|
|
315
|
-
disabledAnnotator: true,
|
|
316
|
-
predefinedAnnotations: [],
|
|
317
|
-
feedback: defaults.feedback.default,
|
|
318
|
-
spellCheckEnabled: false,
|
|
319
|
-
teacherInstructions: null,
|
|
320
|
-
mathInput: defaults.mathInput,
|
|
321
|
-
playersToolbarPosition: 'bottom',
|
|
322
|
-
equationEditor: 8
|
|
323
|
-
});
|
|
324
|
-
});
|
|
325
|
-
it('evaluate mode, instructor role, annotations enabled', async () => {
|
|
326
|
-
const result = await (0, _index.model)(q({
|
|
327
|
-
annotationsEnabled: true
|
|
328
|
-
}), session, {
|
|
329
|
-
mode: 'evaluate',
|
|
330
|
-
role: 'instructor'
|
|
331
|
-
});
|
|
332
|
-
expect(result).toEqual({
|
|
333
|
-
annotatorMode: true,
|
|
334
|
-
customKeys: [],
|
|
335
|
-
prompt: defaults.prompt,
|
|
336
|
-
dimensions: defaults.dimensions,
|
|
337
|
-
disabled: true,
|
|
338
|
-
disabledAnnotator: false,
|
|
339
|
-
predefinedAnnotations: defaults.predefinedAnnotations,
|
|
340
|
-
feedback: undefined,
|
|
341
|
-
spellCheckEnabled: false,
|
|
342
|
-
teacherInstructions: defaults.teacherInstructions,
|
|
343
|
-
mathInput: defaults.mathInput,
|
|
344
|
-
playersToolbarPosition: 'bottom',
|
|
345
|
-
equationEditor: 8
|
|
346
|
-
});
|
|
347
|
-
});
|
|
348
|
-
});
|
|
349
|
-
});
|
|
350
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJyZXF1aXJlIiwiX2xvZGFzaEVzIiwiX2RlZmF1bHRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsImRlZmF1bHRzIiwiZGVmYXVsdFZhbHVlcyIsImZlZWRiYWNrIiwidHlwZSIsImRlZmF1bHQiLCJxIiwiZXh0cmFzIiwicyIsImUiLCJtb2RlIiwiZGVzY3JpYmUiLCJhc3NlcnQiLCJsYWJlbCIsInF1ZXN0aW9uIiwic2Vzc2lvbiIsImVudiIsImV4cGVjdGVkIiwiaXQiLCJyZXN1bHQiLCJtb2RlbCIsImlzRnVuY3Rpb24iLCJleHBlY3QiLCJ0b01hdGNoT2JqZWN0IiwiZGlzYWJsZWQiLCJ1bmRlZmluZWQiLCJmZWVkYmFja0VuYWJsZWQiLCJ0b0VxdWFsIiwiYW5ub3RhdG9yTW9kZSIsImN1c3RvbUtleXMiLCJwcm9tcHQiLCJkaW1lbnNpb25zIiwiZGlzYWJsZWRBbm5vdGF0b3IiLCJwcmVkZWZpbmVkQW5ub3RhdGlvbnMiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwic3BlbGxDaGVja0VuYWJsZWQiLCJtYXRoSW5wdXQiLCJwbGF5ZXJzVG9vbGJhclBvc2l0aW9uIiwiZXF1YXRpb25FZGl0b3IiLCJwcm9tcHRFbmFibGVkIiwiYW5ub3RhdGlvbnNFbmFibGVkIiwicm9sZSIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9pbmRleC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vZGVsIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCBkZWZhdWx0VmFsdWVzIGZyb20gJy4uL2RlZmF1bHRzJztcblxuY29uc3QgZGVmYXVsdHMgPSB7XG4gIC4uLmRlZmF1bHRWYWx1ZXMsXG4gIGZlZWRiYWNrOiB7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ3RoaXMgaXMgZGVmYXVsdCBmZWVkYmFjaycgfSxcbn07XG5cbmNvbnN0IHEgPSAoZXh0cmFzKSA9PiAoeyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH0pO1xuY29uc3QgcyA9IChleHRyYXMpID0+ICh7IC4uLmV4dHJhcyB9KTtcbmNvbnN0IGUgPSAobW9kZSA9ICdnYXRoZXInKSA9PiAoeyBtb2RlIH0pO1xuXG5kZXNjcmliZSgnY29udHJvbGxlcicsICgpID0+IHtcbiAgY29uc3QgYXNzZXJ0ID0gKGxhYmVsLCBxdWVzdGlvbiwgc2Vzc2lvbiwgZW52LCBleHBlY3RlZCkgPT4ge1xuICAgIGl0KGxhYmVsLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2RlbChxdWVzdGlvbiwgc2Vzc2lvbiwgZW52KTtcblxuICAgICAgaWYgKGlzRnVuY3Rpb24oZXhwZWN0ZWQpKSB7XG4gICAgICAgIGV4cGVjdGVkKHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b01hdGNoT2JqZWN0KGV4cGVjdGVkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBkZXNjcmliZSgnbW9kZWwnLCAoKSA9PiB7XG4gICAgY29uc3QgcXVlc3Rpb24gPSBxKCk7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IHMoKTtcbiAgICBjb25zdCBlbnYgPSBlKCk7XG5cbiAgICBkZXNjcmliZSgnZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ2dhdGhlcicsIHF1ZXN0aW9uLCBzZXNzaW9uLCBlbnYsIHsgZGlzYWJsZWQ6IGZhbHNlIH0pO1xuICAgICAgYXNzZXJ0KCd2aWV3JywgcXVlc3Rpb24sIHNlc3Npb24sIGUoJ3ZpZXcnKSwgeyBkaXNhYmxlZDogdHJ1ZSB9KTtcbiAgICAgIGFzc2VydCgnZXZhbHVhdGUnLCBxdWVzdGlvbiwgc2Vzc2lvbiwgZSgnZXZhbHVhdGUnKSwgeyBkaXNhYmxlZDogdHJ1ZSB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdmZWVkYmFjaycsICgpID0+IHtcbiAgICAgIGFzc2VydCgnbm9uZSBmb3IgZ2F0aGVyJywgcXVlc3Rpb24sIHNlc3Npb24sIGVudiwgeyBmZWVkYmFjazogdW5kZWZpbmVkIH0pO1xuICAgICAgYXNzZXJ0KCdub25lIGZvciB2aWV3JywgcXVlc3Rpb24sIHNlc3Npb24sIGUoJ3ZpZXcnKSwgeyBmZWVkYmFjazogdW5kZWZpbmVkIH0pO1xuICAgICAgYXNzZXJ0KCdzb21lIGZvciBldmFsdWF0ZScsIHEoeyBmZWVkYmFja0VuYWJsZWQ6IHRydWUgfSksIHNlc3Npb24sIGUoJ2V2YWx1YXRlJyksIHtcbiAgICAgICAgZmVlZGJhY2s6IHEoKS5mZWVkYmFjay5kZWZhdWx0LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZ2F0aGVyIG1vZGUsIHByb21wdEVuYWJsZWQ6IHRydWUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2RlbChxdWVzdGlvbiwgc2Vzc2lvbiwgZW52KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIGFubm90YXRvck1vZGU6IGZhbHNlLFxuICAgICAgICBjdXN0b21LZXlzOiBbXSxcbiAgICAgICAgcHJvbXB0OiBkZWZhdWx0cy5wcm9tcHQsXG4gICAgICAgIGRpbWVuc2lvbnM6IGRlZmF1bHRzLmRpbWVuc2lvbnMsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgZGlzYWJsZWRBbm5vdGF0b3I6IHRydWUsXG4gICAgICAgIHByZWRlZmluZWRBbm5vdGF0aW9uczogW10sXG4gICAgICAgIGZlZWRiYWNrOiB1bmRlZmluZWQsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IG51bGwsXG4gICAgICAgIHNwZWxsQ2hlY2tFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgbWF0aElucHV0OiBkZWZhdWx0cy5tYXRoSW5wdXQsXG4gICAgICAgIHBsYXllcnNUb29sYmFyUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICBlcXVhdGlvbkVkaXRvcjogOCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2dhdGhlciBtb2RlLCBwcm9tcHRFbmFibGVkOiBmYWxzZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vZGVsKHEoeyBwcm9tcHRFbmFibGVkOiBmYWxzZSB9KSwgc2Vzc2lvbiwgZW52KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIGFubm90YXRvck1vZGU6IGZhbHNlLFxuICAgICAgICBjdXN0b21LZXlzOiBbXSxcbiAgICAgICAgcHJvbXB0OiBudWxsLFxuICAgICAgICBkaW1lbnNpb25zOiBkZWZhdWx0cy5kaW1lbnNpb25zLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkQW5ub3RhdG9yOiB0cnVlLFxuICAgICAgICBwcmVkZWZpbmVkQW5ub3RhdGlvbnM6IFtdLFxuICAgICAgICBmZWVkYmFjazogdW5kZWZpbmVkLFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsLFxuICAgICAgICBtYXRoSW5wdXQ6IGRlZmF1bHRzLm1hdGhJbnB1dCxcbiAgICAgICAgc3BlbGxDaGVja0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBwbGF5ZXJzVG9vbGJhclBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgZXF1YXRpb25FZGl0b3I6IDgsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdnYXRoZXIgbW9kZSwgYW5ub3RhdGlvbnMgZW5hYmxlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vZGVsKHEoeyBhbm5vdGF0aW9uc0VuYWJsZWQ6IHRydWUgfSksIHNlc3Npb24sIGVudik7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBhbm5vdGF0b3JNb2RlOiBmYWxzZSxcbiAgICAgICAgY3VzdG9tS2V5czogW10sXG4gICAgICAgIHByb21wdDogZGVmYXVsdHMucHJvbXB0LFxuICAgICAgICBkaW1lbnNpb25zOiBkZWZhdWx0cy5kaW1lbnNpb25zLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkQW5ub3RhdG9yOiB0cnVlLFxuICAgICAgICBwcmVkZWZpbmVkQW5ub3RhdGlvbnM6IGRlZmF1bHRzLnByZWRlZmluZWRBbm5vdGF0aW9ucyxcbiAgICAgICAgZmVlZGJhY2s6IHVuZGVmaW5lZCxcbiAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogbnVsbCxcbiAgICAgICAgc3BlbGxDaGVja0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBtYXRoSW5wdXQ6IGRlZmF1bHRzLm1hdGhJbnB1dCxcbiAgICAgICAgcGxheWVyc1Rvb2xiYXJQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgIGVxdWF0aW9uRWRpdG9yOiA4LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgndmlldyBtb2RlLCBzdHVkZW50IHJvbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2RlbChxdWVzdGlvbiwgc2Vzc2lvbiwgeyBtb2RlOiAndmlldycgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBhbm5vdGF0b3JNb2RlOiBmYWxzZSxcbiAgICAgICAgY3VzdG9tS2V5czogW10sXG4gICAgICAgIHByb21wdDogZGVmYXVsdHMucHJvbXB0LFxuICAgICAgICBkaW1lbnNpb25zOiBkZWZhdWx0cy5kaW1lbnNpb25zLFxuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZWRBbm5vdGF0b3I6IHRydWUsXG4gICAgICAgIHByZWRlZmluZWRBbm5vdGF0aW9uczogW10sXG4gICAgICAgIGZlZWRiYWNrOiB1bmRlZmluZWQsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IG51bGwsXG4gICAgICAgIHNwZWxsQ2hlY2tFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgbWF0aElucHV0OiBkZWZhdWx0cy5tYXRoSW5wdXQsXG4gICAgICAgIHBsYXllcnNUb29sYmFyUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICBlcXVhdGlvbkVkaXRvcjogOCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3ZpZXcgbW9kZSwgc3R1ZGVudCByb2xlLCBhbm5vdGF0aW9ucyBlbmFibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocSh7IGFubm90YXRpb25zRW5hYmxlZDogdHJ1ZSB9KSwgc2Vzc2lvbiwgeyBtb2RlOiAndmlldycgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBhbm5vdGF0b3JNb2RlOiBmYWxzZSxcbiAgICAgICAgY3VzdG9tS2V5czogW10sXG4gICAgICAgIHByb21wdDogZGVmYXVsdHMucHJvbXB0LFxuICAgICAgICBkaW1lbnNpb25zOiBkZWZhdWx0cy5kaW1lbnNpb25zLFxuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZWRBbm5vdGF0b3I6IHRydWUsXG4gICAgICAgIHByZWRlZmluZWRBbm5vdGF0aW9uczogZGVmYXVsdHMucHJlZGVmaW5lZEFubm90YXRpb25zLFxuICAgICAgICBmZWVkYmFjazogdW5kZWZpbmVkLFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsLFxuICAgICAgICBzcGVsbENoZWNrRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIG1hdGhJbnB1dDogZGVmYXVsdHMubWF0aElucHV0LFxuICAgICAgICBwbGF5ZXJzVG9vbGJhclBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgZXF1YXRpb25FZGl0b3I6IDgsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCd2aWV3IG1vZGUsIGluc3RydWN0b3Igcm9sZSwgdGVhY2hlckluc3RydWN0aW9ucyBlbmFibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHNlc3Npb24sIHsgbW9kZTogJ3ZpZXcnLCByb2xlOiAnaW5zdHJ1Y3RvcicgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBhbm5vdGF0b3JNb2RlOiBmYWxzZSxcbiAgICAgICAgY3VzdG9tS2V5czogW10sXG4gICAgICAgIHByb21wdDogZGVmYXVsdHMucHJvbXB0LFxuICAgICAgICBkaW1lbnNpb25zOiBkZWZhdWx0cy5kaW1lbnNpb25zLFxuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZWRBbm5vdGF0b3I6IHRydWUsXG4gICAgICAgIHByZWRlZmluZWRBbm5vdGF0aW9uczogW10sXG4gICAgICAgIGZlZWRiYWNrOiB1bmRlZmluZWQsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IGRlZmF1bHRzLnRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgICAgIG1hdGhJbnB1dDogZGVmYXVsdHMubWF0aElucHV0LFxuICAgICAgICBzcGVsbENoZWNrRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIHBsYXllcnNUb29sYmFyUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICBlcXVhdGlvbkVkaXRvcjogOCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3ZpZXcgbW9kZSwgaW5zdHJ1Y3RvciByb2xlLCB0ZWFjaGVySW5zdHJ1Y3Rpb25zIGRpc2FibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocSh7IHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiBmYWxzZSB9KSwgc2Vzc2lvbiwge1xuICAgICAgICBtb2RlOiAndmlldycsXG4gICAgICAgIHJvbGU6ICdpbnN0cnVjdG9yJyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgYW5ub3RhdG9yTW9kZTogZmFsc2UsXG4gICAgICAgIGN1c3RvbUtleXM6IFtdLFxuICAgICAgICBwcm9tcHQ6IGRlZmF1bHRzLnByb21wdCxcbiAgICAgICAgZGltZW5zaW9uczogZGVmYXVsdHMuZGltZW5zaW9ucyxcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgIGRpc2FibGVkQW5ub3RhdG9yOiB0cnVlLFxuICAgICAgICBwcmVkZWZpbmVkQW5ub3RhdGlvbnM6IFtdLFxuICAgICAgICBmZWVkYmFjazogdW5kZWZpbmVkLFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsLFxuICAgICAgICBtYXRoSW5wdXQ6IGRlZmF1bHRzLm1hdGhJbnB1dCxcbiAgICAgICAgc3BlbGxDaGVja0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBwbGF5ZXJzVG9vbGJhclBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgZXF1YXRpb25FZGl0b3I6IDgsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCd2aWV3IG1vZGUsIGluc3RydWN0b3Igcm9sZSwgYW5ub3RhdGlvbnMgZW5hYmxlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vZGVsKHEoeyBhbm5vdGF0aW9uc0VuYWJsZWQ6IHRydWUgfSksIHNlc3Npb24sIHtcbiAgICAgICAgbW9kZTogJ3ZpZXcnLFxuICAgICAgICByb2xlOiAnaW5zdHJ1Y3RvcicsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIGFubm90YXRvck1vZGU6IHRydWUsXG4gICAgICAgIGN1c3RvbUtleXM6IFtdLFxuICAgICAgICBwcm9tcHQ6IGRlZmF1bHRzLnByb21wdCxcbiAgICAgICAgZGltZW5zaW9uczogZGVmYXVsdHMuZGltZW5zaW9ucyxcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgIGRpc2FibGVkQW5ub3RhdG9yOiBmYWxzZSxcbiAgICAgICAgcHJlZGVmaW5lZEFubm90YXRpb25zOiBkZWZhdWx0cy5wcmVkZWZpbmVkQW5ub3RhdGlvbnMsXG4gICAgICAgIGZlZWRiYWNrOiB1bmRlZmluZWQsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IGRlZmF1bHRzLnRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgICAgIG1hdGhJbnB1dDogZGVmYXVsdHMubWF0aElucHV0LFxuICAgICAgICBzcGVsbENoZWNrRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIHBsYXllcnNUb29sYmFyUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICBlcXVhdGlvbkVkaXRvcjogOCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2V2YWx1YXRlIG1vZGUsIHN0dWRlbnQgcm9sZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vZGVsKHsgLi4ucXVlc3Rpb24sIGZlZWRiYWNrRW5hYmxlZDogdHJ1ZSB9LCBzZXNzaW9uLCB7IG1vZGU6ICdldmFsdWF0ZScgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBhbm5vdGF0b3JNb2RlOiBmYWxzZSxcbiAgICAgICAgY3VzdG9tS2V5czogW10sXG4gICAgICAgIHByb21wdDogZGVmYXVsdHMucHJvbXB0LFxuICAgICAgICBkaW1lbnNpb25zOiBkZWZhdWx0cy5kaW1lbnNpb25zLFxuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZWRBbm5vdGF0b3I6IHRydWUsXG4gICAgICAgIHByZWRlZmluZWRBbm5vdGF0aW9uczogW10sXG4gICAgICAgIGZlZWRiYWNrOiBkZWZhdWx0cy5mZWVkYmFjay5kZWZhdWx0LFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsLFxuICAgICAgICBtYXRoSW5wdXQ6IGRlZmF1bHRzLm1hdGhJbnB1dCxcbiAgICAgICAgc3BlbGxDaGVja0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBwbGF5ZXJzVG9vbGJhclBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgZXF1YXRpb25FZGl0b3I6IDgsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdldmFsdWF0ZSBtb2RlLCBzdHVkZW50IHJvbGUsIGFubm90YXRpb25zIGVuYWJsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2RlbCh7IC4uLnF1ZXN0aW9uLCBmZWVkYmFja0VuYWJsZWQ6IHRydWUsIGFubm90YXRpb25zRW5hYmxlZDogdHJ1ZSB9LCBzZXNzaW9uLCB7XG4gICAgICAgIG1vZGU6ICdldmFsdWF0ZScsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIGFubm90YXRvck1vZGU6IHRydWUsXG4gICAgICAgIGN1c3RvbUtleXM6IFtdLFxuICAgICAgICBwcm9tcHQ6IGRlZmF1bHRzLnByb21wdCxcbiAgICAgICAgZGltZW5zaW9uczogZGVmYXVsdHMuZGltZW5zaW9ucyxcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgIGRpc2FibGVkQW5ub3RhdG9yOiB0cnVlLFxuICAgICAgICBwcmVkZWZpbmVkQW5ub3RhdGlvbnM6IGRlZmF1bHRzLnByZWRlZmluZWRBbm5vdGF0aW9ucyxcbiAgICAgICAgZmVlZGJhY2s6IGRlZmF1bHRzLmZlZWRiYWNrLmRlZmF1bHQsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IG51bGwsXG4gICAgICAgIG1hdGhJbnB1dDogZGVmYXVsdHMubWF0aElucHV0LFxuICAgICAgICBzcGVsbENoZWNrRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIHBsYXllcnNUb29sYmFyUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICBlcXVhdGlvbkVkaXRvcjogOCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2V2YWx1YXRlIG1vZGUsIGluc3RydWN0b3Igcm9sZSwgdGVhY2hlckluc3RydWN0aW9ucyBlbmFibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwoeyAuLi5xdWVzdGlvbiwgZmVlZGJhY2tFbmFibGVkOiB0cnVlIH0sIHNlc3Npb24sIHtcbiAgICAgICAgbW9kZTogJ2V2YWx1YXRlJyxcbiAgICAgICAgcm9sZTogJ2luc3RydWN0b3InLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBhbm5vdGF0b3JNb2RlOiBmYWxzZSxcbiAgICAgICAgY3VzdG9tS2V5czogW10sXG4gICAgICAgIHByb21wdDogZGVmYXVsdHMucHJvbXB0LFxuICAgICAgICBkaW1lbnNpb25zOiBkZWZhdWx0cy5kaW1lbnNpb25zLFxuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZWRBbm5vdGF0b3I6IHRydWUsXG4gICAgICAgIHByZWRlZmluZWRBbm5vdGF0aW9uczogW10sXG4gICAgICAgIGZlZWRiYWNrOiBkZWZhdWx0cy5mZWVkYmFjay5kZWZhdWx0LFxuICAgICAgICBzcGVsbENoZWNrRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IGRlZmF1bHRzLnRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgICAgIG1hdGhJbnB1dDogZGVmYXVsdHMubWF0aElucHV0LFxuICAgICAgICBwbGF5ZXJzVG9vbGJhclBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgZXF1YXRpb25FZGl0b3I6IDgsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdldmFsdWF0ZSBtb2RlLCBpbnN0cnVjdG9yIHJvbGUsIHRlYWNoZXJJbnN0cnVjdGlvbnMgZGlzYWJsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2RlbChxKHsgdGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQ6IGZhbHNlLCBmZWVkYmFja0VuYWJsZWQ6IHRydWUgfSksIHNlc3Npb24sIHtcbiAgICAgICAgbW9kZTogJ2V2YWx1YXRlJyxcbiAgICAgICAgcm9sZTogJ2luc3RydWN0b3InLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICBhbm5vdGF0b3JNb2RlOiBmYWxzZSxcbiAgICAgICAgY3VzdG9tS2V5czogW10sXG4gICAgICAgIHByb21wdDogZGVmYXVsdHMucHJvbXB0LFxuICAgICAgICBkaW1lbnNpb25zOiBkZWZhdWx0cy5kaW1lbnNpb25zLFxuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZWRBbm5vdGF0b3I6IHRydWUsXG4gICAgICAgIHByZWRlZmluZWRBbm5vdGF0aW9uczogW10sXG4gICAgICAgIGZlZWRiYWNrOiBkZWZhdWx0cy5mZWVkYmFjay5kZWZhdWx0LFxuICAgICAgICBzcGVsbENoZWNrRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IG51bGwsXG4gICAgICAgIG1hdGhJbnB1dDogZGVmYXVsdHMubWF0aElucHV0LFxuICAgICAgICBwbGF5ZXJzVG9vbGJhclBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgZXF1YXRpb25FZGl0b3I6IDgsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdldmFsdWF0ZSBtb2RlLCBpbnN0cnVjdG9yIHJvbGUsIGFubm90YXRpb25zIGVuYWJsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2RlbChxKHsgYW5ub3RhdGlvbnNFbmFibGVkOiB0cnVlIH0pLCBzZXNzaW9uLCB7IG1vZGU6ICdldmFsdWF0ZScsIHJvbGU6ICdpbnN0cnVjdG9yJyB9KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIGFubm90YXRvck1vZGU6IHRydWUsXG4gICAgICAgIGN1c3RvbUtleXM6IFtdLFxuICAgICAgICBwcm9tcHQ6IGRlZmF1bHRzLnByb21wdCxcbiAgICAgICAgZGltZW5zaW9uczogZGVmYXVsdHMuZGltZW5zaW9ucyxcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgIGRpc2FibGVkQW5ub3RhdG9yOiBmYWxzZSxcbiAgICAgICAgcHJlZGVmaW5lZEFubm90YXRpb25zOiBkZWZhdWx0cy5wcmVkZWZpbmVkQW5ub3RhdGlvbnMsXG4gICAgICAgIGZlZWRiYWNrOiB1bmRlZmluZWQsXG4gICAgICAgIHNwZWxsQ2hlY2tFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogZGVmYXVsdHMudGVhY2hlckluc3RydWN0aW9ucyxcbiAgICAgICAgbWF0aElucHV0OiBkZWZhdWx0cy5tYXRoSW5wdXQsXG4gICAgICAgIHBsYXllcnNUb29sYmFyUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICBlcXVhdGlvbkVkaXRvcjogOCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxTQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFFQSxNQUFNSSxRQUFRLEdBQUc7RUFDZixHQUFHQyxpQkFBYTtFQUNoQkMsUUFBUSxFQUFFO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVDLE9BQU8sRUFBRTtFQUEyQjtBQUNuRSxDQUFDO0FBRUQsTUFBTUMsQ0FBQyxHQUFJQyxNQUFNLEtBQU07RUFBRSxHQUFHTixRQUFRO0VBQUUsR0FBR007QUFBTyxDQUFDLENBQUM7QUFDbEQsTUFBTUMsQ0FBQyxHQUFJRCxNQUFNLEtBQU07RUFBRSxHQUFHQTtBQUFPLENBQUMsQ0FBQztBQUNyQyxNQUFNRSxDQUFDLEdBQUdBLENBQUNDLElBQUksR0FBRyxRQUFRLE1BQU07RUFBRUE7QUFBSyxDQUFDLENBQUM7QUFFekNDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFB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
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _index = require("../index");
|
|
4
|
-
describe('textContent', () => {
|
|
5
|
-
const assertContent = function () {
|
|
6
|
-
const args = Array.prototype.slice.call(arguments);
|
|
7
|
-
const [input, expected] = args.length === 2 ? args : [args[0], args[0]];
|
|
8
|
-
it(`${input} => ${expected}`, () => {
|
|
9
|
-
const result = (0, _index.textContent)(input);
|
|
10
|
-
expect(result).toEqual(expected);
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
assertContent(undefined);
|
|
14
|
-
assertContent([], undefined);
|
|
15
|
-
assertContent({}, undefined);
|
|
16
|
-
assertContent('', '');
|
|
17
|
-
assertContent('<div></div>', '');
|
|
18
|
-
assertContent('< div ->/div>', '< div ->/div>');
|
|
19
|
-
assertContent('<foo', '');
|
|
20
|
-
assertContent('<foo/ >', '');
|
|
21
|
-
assertContent('<foo />', '');
|
|
22
|
-
});
|
|
23
|
-
describe('Completeness Checker', () => {
|
|
24
|
-
const assertIsComplete = (input, expected) => {
|
|
25
|
-
it(`${input}: ${expected}`, () => {
|
|
26
|
-
expect((0, _index.isComplete)(input)).toEqual(expected);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
assertIsComplete('', false);
|
|
30
|
-
assertIsComplete('<div></div>', false);
|
|
31
|
-
assertIsComplete('<div><p></p><h1></h1></div>', false);
|
|
32
|
-
assertIsComplete('<div><p></p><h1</h1></div>', false);
|
|
33
|
-
assertIsComplete('<div>test</div>', true);
|
|
34
|
-
assertIsComplete('<div><p><a>test</a></p></div>', true);
|
|
35
|
-
assertIsComplete('foo', true);
|
|
36
|
-
});
|
|
37
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJyZXF1aXJlIiwiZGVzY3JpYmUiLCJhc3NlcnRDb250ZW50IiwiYXJncyIsIkFycmF5IiwicHJvdG90eXBlIiwic2xpY2UiLCJjYWxsIiwiYXJndW1lbnRzIiwiaW5wdXQiLCJleHBlY3RlZCIsImxlbmd0aCIsIml0IiwicmVzdWx0IiwidGV4dENvbnRlbnQiLCJleHBlY3QiLCJ0b0VxdWFsIiwidW5kZWZpbmVkIiwiYXNzZXJ0SXNDb21wbGV0ZSIsImlzQ29tcGxldGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2luZGV4LnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNDb21wbGV0ZSwgdGV4dENvbnRlbnQgfSBmcm9tICcuLi9pbmRleCc7XG5cbmRlc2NyaWJlKCd0ZXh0Q29udGVudCcsICgpID0+IHtcbiAgY29uc3QgYXNzZXJ0Q29udGVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICBjb25zdCBbaW5wdXQsIGV4cGVjdGVkXSA9IGFyZ3MubGVuZ3RoID09PSAyID8gYXJncyA6IFthcmdzWzBdLCBhcmdzWzBdXTtcbiAgICBpdChgJHtpbnB1dH0gPT4gJHtleHBlY3RlZH1gLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0Q29udGVudChpbnB1dCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgfTtcbiAgYXNzZXJ0Q29udGVudCh1bmRlZmluZWQpO1xuICBhc3NlcnRDb250ZW50KFtdLCB1bmRlZmluZWQpO1xuICBhc3NlcnRDb250ZW50KHt9LCB1bmRlZmluZWQpO1xuICBhc3NlcnRDb250ZW50KCcnLCAnJyk7XG4gIGFzc2VydENvbnRlbnQoJzxkaXY+PC9kaXY+JywgJycpO1xuICBhc3NlcnRDb250ZW50KCc8IGRpdiAtPi9kaXY+JywgJzwgZGl2IC0+L2Rpdj4nKTtcbiAgYXNzZXJ0Q29udGVudCgnPGZvbycsICcnKTtcbiAgYXNzZXJ0Q29udGVudCgnPGZvby8gPicsICcnKTtcbiAgYXNzZXJ0Q29udGVudCgnPGZvbyAvPicsICcnKTtcbn0pO1xuXG5kZXNjcmliZSgnQ29tcGxldGVuZXNzIENoZWNrZXInLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VydElzQ29tcGxldGUgPSAoaW5wdXQsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoYCR7aW5wdXR9OiAke2V4cGVjdGVkfWAsICgpID0+IHtcbiAgICAgIGV4cGVjdChpc0NvbXBsZXRlKGlucHV0KSkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgfSk7XG4gIH07XG4gIGFzc2VydElzQ29tcGxldGUoJycsIGZhbHNlKTtcbiAgYXNzZXJ0SXNDb21wbGV0ZSgnPGRpdj48L2Rpdj4nLCBmYWxzZSk7XG4gIGFzc2VydElzQ29tcGxldGUoJzxkaXY+PHA+PC9wPjxoMT48L2gxPjwvZGl2PicsIGZhbHNlKTtcbiAgYXNzZXJ0SXNDb21wbGV0ZSgnPGRpdj48cD48L3A+PGgxPC9oMT48L2Rpdj4nLCBmYWxzZSk7XG4gIGFzc2VydElzQ29tcGxldGUoJzxkaXY+dGVzdDwvZGl2PicsIHRydWUpO1xuICBhc3NlcnRJc0NvbXBsZXRlKCc8ZGl2PjxwPjxhPnRlc3Q8L2E+PC9wPjwvZGl2PicsIHRydWUpO1xuICBhc3NlcnRJc0NvbXBsZXRlKCdmb28nLCB0cnVlKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU07RUFDNUIsTUFBTUMsYUFBYSxHQUFHLFNBQUFBLENBQUEsRUFBWTtJQUNoQyxNQUFNQyxJQUFJLEdBQUdDLEtBQUssQ0FBQ0MsU0FBUyxDQUFDQyxLQUFLLENBQUNDLElBQUksQ0FBQ0MsU0FBUyxDQUFDO0lBQ2xELE1BQU0sQ0FBQ0MsS0FBSyxFQUFFQyxRQUFRLENBQUMsR0FBR1AsSUFBSSxDQUFDUSxNQUFNLEtBQUssQ0FBQyxHQUFHUixJQUFJLEdBQUcsQ0FBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkVTLEVBQUUsQ0FBQyxHQUFHSCxLQUFLLE9BQU9DLFFBQVEsRUFBRSxFQUFFLE1BQU07TUFDbEMsTUFBTUcsTUFBTSxHQUFHLElBQUFDLGtCQUFXLEVBQUNMLEtBQUssQ0FBQztNQUNqQ00sTUFBTSxDQUFDRixNQUFNLENBQUMsQ0FBQ0csT0FBTyxDQUFDTixRQUFRLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUNEUixhQUFhLENBQUNlLFNBQVMsQ0FBQztFQUN4QmYsYUFBYSxDQUFDLEVBQUUsRUFBRWUsU0FBUyxDQUFDO0VBQzVCZixhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUVlLFNBQVMsQ0FBQztFQUM1QmYsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDckJBLGFBQWEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO0VBQ2hDQSxhQUFhLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQztFQUMvQ0EsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7RUFDekJBLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO0VBQzVCQSxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRkQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLE1BQU07RUFDckMsTUFBTWlCLGdCQUFnQixHQUFHQSxDQUFDVCxLQUFLLEVBQUVDLFFBQVEsS0FBSztJQUM1Q0UsRUFBRSxDQUFDLEdBQUdILEtBQUssS0FBS0MsUUFBUSxFQUFFLEVBQUUsTUFBTTtNQUNoQ0ssTUFBTSxDQUFDLElBQUFJLGlCQUFVLEVBQUNWLEtBQUssQ0FBQyxDQUFDLENBQUNPLE9BQU8sQ0FBQ04sUUFBUSxDQUFDO0lBQzdDLENBQUMsQ0FBQztFQUNKLENBQUM7RUFDRFEsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQztFQUMzQkEsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQztFQUN0Q0EsZ0JBQWdCLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDO0VBQ3REQSxnQkFBZ0IsQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUM7RUFDckRBLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQztFQUN6Q0EsZ0JBQWdCLENBQUMsK0JBQStCLEVBQUUsSUFBSSxDQUFDO0VBQ3ZEQSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO0FBQy9CLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|