@digabi/exam-engine-rendering 19.8.0 → 19.8.3
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/dist/Grading.d.ts +4 -0
- package/dist/Grading.d.ts.map +1 -0
- package/dist/Grading.js +109 -0
- package/dist/Grading.js.map +1 -0
- package/dist/PreviewGrading.d.ts.map +1 -1
- package/dist/PreviewGrading.js +9 -10
- package/dist/PreviewGrading.js.map +1 -1
- package/dist/__tests__/puppeteerUtils.js +7 -7
- package/dist/__tests__/puppeteerUtils.js.map +1 -1
- package/dist/__tests__/testCasTransition.js +2 -2
- package/dist/__tests__/testCasTransition.js.map +1 -1
- package/dist/__tests__/testChoiceAnswer.js +15 -1
- package/dist/__tests__/testChoiceAnswer.js.map +1 -1
- package/dist/__tests__/testGrading.js +20 -11
- package/dist/__tests__/testGrading.js.map +1 -1
- package/dist/__tests__/testGradingInstructionsGeneration.js +2 -2
- package/dist/__tests__/testGradingInstructionsGeneration.js.map +1 -1
- package/dist/__tests__/testOfflineGeneration.js +1 -1
- package/dist/__tests__/testOfflineGeneration.js.map +1 -1
- package/dist/__tests__/testSidebarNavigation.d.ts +2 -0
- package/dist/__tests__/testSidebarNavigation.d.ts.map +1 -0
- package/dist/__tests__/testSidebarNavigation.js +53 -0
- package/dist/__tests__/testSidebarNavigation.js.map +1 -0
- package/dist/__tests__/testTextAnswers.js +71 -0
- package/dist/__tests__/testTextAnswers.js.map +1 -1
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/createOfflineExam.js +8 -8
- package/dist/createOfflineExam.js.map +1 -1
- package/dist/exam-loader.js +3 -3
- package/dist/exam-loader.js.map +1 -1
- package/dist/getOfflineWebpackConfig.js +18 -18
- package/dist/getPreviewWebpackConfig.js +12 -12
- package/dist/getWebpackConfig.js +18 -18
- package/dist/offline.js +4 -3
- package/dist/offline.js.map +1 -1
- package/dist/postcss.config.d.ts +1 -1
- package/dist/postcss.config.js +1 -1
- package/dist/preview.js +22 -19
- package/dist/preview.js.map +1 -1
- package/dist/previewExam.js +1 -1
- package/dist/previewExam.js.map +1 -1
- package/dist/utils/indexedDBExamServerAPI.js +3 -3
- package/dist/utils/indexedDBExamServerAPI.js.map +1 -1
- package/dist/utils/indexedDBGraringServerAPI.d.ts +3 -0
- package/dist/utils/indexedDBGraringServerAPI.d.ts.map +1 -0
- package/dist/utils/indexedDBGraringServerAPI.js +33 -0
- package/dist/utils/indexedDBGraringServerAPI.js.map +1 -0
- package/dist/utils/noopExamServerAPI.js +2 -2
- package/dist/utils/noopExamServerAPI.js.map +1 -1
- package/package.json +10 -10
@@ -38,19 +38,90 @@ describe('testTextAnswers.ts — Text answer interactions', () => {
|
|
38
38
|
await expectToBeSaved();
|
39
39
|
});
|
40
40
|
it('shows the error indicator when too many answers', async () => {
|
41
|
+
var _a, _b;
|
41
42
|
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
42
43
|
await expectErrorIndicatorToDisappear();
|
43
44
|
await type('oikea vastaus', 89);
|
44
45
|
await type('oikea vastaus 2', 90);
|
45
46
|
await expectErrorIndicator('Tehtävä 20: Vastaa joko kohtaan 20.1 tai 20.2.');
|
47
|
+
const questionName = await page.$('.sidebar-toc-container li[data-list-number="20."]');
|
48
|
+
const className = await ((_a = (await (questionName === null || questionName === void 0 ? void 0 : questionName.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
49
|
+
expect(className).toContain('error');
|
46
50
|
await clearInput(90);
|
47
51
|
await expectErrorIndicatorToDisappear();
|
52
|
+
const classNameThen = await ((_b = (await (questionName === null || questionName === void 0 ? void 0 : questionName.getProperty('className')))) === null || _b === void 0 ? void 0 : _b.jsonValue());
|
53
|
+
expect(classNameThen).not.toContain('error');
|
48
54
|
});
|
49
55
|
it('shows the error indicator when answer is too long', async () => {
|
56
|
+
var _a;
|
50
57
|
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
51
58
|
await expectErrorIndicatorToDisappear();
|
52
59
|
await type('o'.repeat(241), 89);
|
53
60
|
await expectErrorIndicator('Tehtävä 20.1: Vastaus on liian pitkä.');
|
61
|
+
const indicator = await page.$('.sidebar-toc-container div[data-indicator-id="89"]');
|
62
|
+
const className = await ((_a = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
63
|
+
expect(className).toContain('error');
|
64
|
+
});
|
65
|
+
it('opens rich text answer in writer mode, and exits', async () => {
|
66
|
+
var _a, _b;
|
67
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
68
|
+
const body = await page.$('body');
|
69
|
+
const fullScreenSelector = 'div[data-full-screen-id="1.2"]';
|
70
|
+
const answerText = 'vastaukseni';
|
71
|
+
await openWriterMode(page);
|
72
|
+
await type(answerText, 2);
|
73
|
+
await page.click(`${fullScreenSelector} .expand.close`);
|
74
|
+
const bodyClass = await ((_a = (await (body === null || body === void 0 ? void 0 : body.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
75
|
+
expect(bodyClass).not.toContain('writer-mode');
|
76
|
+
const fullScreen = await page.$(fullScreenSelector);
|
77
|
+
expect(fullScreen).toBeFalsy();
|
78
|
+
const answerBox = await page.$('.text-answer[data-question-id="2"]');
|
79
|
+
const answer = await ((_b = (await (answerBox === null || answerBox === void 0 ? void 0 : answerBox.getProperty('innerHTML')))) === null || _b === void 0 ? void 0 : _b.jsonValue());
|
80
|
+
expect(answer).toBe(answerText);
|
81
|
+
});
|
82
|
+
it('ESC exits writer mode', async () => {
|
83
|
+
var _a;
|
84
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
85
|
+
const body = await page.$('body');
|
86
|
+
const fullScreenSelector = 'div[data-full-screen-id="1.2"]';
|
87
|
+
await openWriterMode(page);
|
88
|
+
await page.keyboard.press('Escape');
|
89
|
+
const bodyClass = await ((_a = (await (body === null || body === void 0 ? void 0 : body.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
90
|
+
expect(bodyClass).not.toContain('writer-mode');
|
91
|
+
const fullScreen = await page.$(fullScreenSelector);
|
92
|
+
expect(fullScreen).toBeFalsy();
|
93
|
+
});
|
94
|
+
const openWriterMode = async (page) => {
|
95
|
+
var _a;
|
96
|
+
// focus the textarea first, because it may affect the clickability of expand button
|
97
|
+
await page.click('.text-answer[data-question-id="2"]');
|
98
|
+
await page.click('.text-answer[data-question-id="2"] + .expand');
|
99
|
+
const body = await page.$('body');
|
100
|
+
const fullScreenSelector = 'div[data-full-screen-id="1.2"]';
|
101
|
+
const fullScreen = await page.$(fullScreenSelector);
|
102
|
+
expect(fullScreen).toBeTruthy();
|
103
|
+
const bodyClass = await ((_a = (await (body === null || body === void 0 ? void 0 : body.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
104
|
+
expect(bodyClass).toContain('writer-mode');
|
105
|
+
};
|
106
|
+
it('a text answer indicator has correct state in side navigation', async () => {
|
107
|
+
var _a, _b, _c, _d, _e, _f;
|
108
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
109
|
+
await clearInput(90);
|
110
|
+
const indicator = await page.$('.sidebar-toc-container div[data-indicator-id="90"]');
|
111
|
+
const className = await ((_a = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
112
|
+
const indicatorValue = await ((_b = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('innerHTML')))) === null || _b === void 0 ? void 0 : _b.jsonValue());
|
113
|
+
await type('testivastaus', 90);
|
114
|
+
const classNameThen = await ((_c = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _c === void 0 ? void 0 : _c.jsonValue());
|
115
|
+
const indicatorValueThen = await ((_d = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('innerHTML')))) === null || _d === void 0 ? void 0 : _d.jsonValue());
|
116
|
+
await clearInput(90);
|
117
|
+
const classNameFinally = await ((_e = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _e === void 0 ? void 0 : _e.jsonValue());
|
118
|
+
const indicatorValueFinally = await ((_f = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('innerHTML')))) === null || _f === void 0 ? void 0 : _f.jsonValue());
|
119
|
+
expect(className).not.toContain('ok');
|
120
|
+
expect(indicatorValue).toContain('');
|
121
|
+
expect(classNameThen).toContain('ok');
|
122
|
+
expect(indicatorValueThen).toContain('12');
|
123
|
+
expect(classNameFinally).not.toContain('ok');
|
124
|
+
expect(indicatorValueFinally).toContain('');
|
54
125
|
});
|
55
126
|
const expectErrorIndicator = async (text) => {
|
56
127
|
await page.waitForFunction((text) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testTextAnswers.js","sourceRoot":"","sources":["../../__tests__/testTextAnswers.ts"],"names":[],"mappings":";;AAAA,iEAAuD;AACvD,yEAA2E;AAE3E,qDAA0E;AAE1E,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;IAC7D,MAAM,UAAU,GAAG,IAAA,8BAAa,GAAE,CAAA;IAClC,IAAI,IAAU,CAAA;IACd,IAAI,GAAmB,CAAA;IAEvB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,GAAG,GAAG,MAAM,IAAA,mCAAW,EAAC,IAAA,+BAAW,EAAC,WAAW,CAAC,CAAC,CAAA;QACjD,IAAI,GAAG,MAAM,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE7B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAA;QACf,MAAM,wBAAwB,CAAC,CAAC,CAAC,CAAA;QAEjC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAA;QACf,MAAM,wBAAwB,CAAC,CAAC,CAAC,CAAA;QAEjC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,wBAAwB,CAAC,CAAC,CAAC,CAAA;QAEjC,MAAM,UAAU,EAAE,CAAA;QAClB,MAAM,wBAAwB,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE7B,MAAM,6BAA6B,EAAE,CAAA;QAErC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,kBAAkB,EAAE,CAAA;QAC1B,MAAM,eAAe,EAAE,CAAA;QAEvB,MAAM,IAAI,CAAC,WAAW,CAAC,CAAA;QACvB,MAAM,kBAAkB,EAAE,CAAA;QAC1B,MAAM,eAAe,EAAE,CAAA;QAEvB,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,eAAe,EAAE,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE
|
1
|
+
{"version":3,"file":"testTextAnswers.js","sourceRoot":"","sources":["../../__tests__/testTextAnswers.ts"],"names":[],"mappings":"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"}
|