@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
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Grading.d.ts","sourceRoot":"","sources":["../src/Grading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAA;;AAqHtE,wBAA6E"}
|
package/dist/Grading.js
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
const react_1 = __importStar(require("react"));
|
27
|
+
const react_i18next_1 = require("react-i18next");
|
28
|
+
const ResultsContext_1 = require("@digabi/exam-engine-core/dist/components/context/ResultsContext");
|
29
|
+
const i18n_1 = require("@digabi/exam-engine-core/dist/i18n");
|
30
|
+
const GradingAnswer_1 = require("@digabi/exam-engine-core/dist/components/grading/GradingAnswer");
|
31
|
+
const CommonExamContext_1 = require("@digabi/exam-engine-core/dist/components/context/CommonExamContext");
|
32
|
+
function Grading() {
|
33
|
+
const { answersByQuestionId } = (0, react_1.useContext)(ResultsContext_1.ResultsContext);
|
34
|
+
const i18n = (0, i18n_1.initI18n)('FI-fi');
|
35
|
+
(0, react_1.useEffect)((0, i18n_1.changeLanguage)(i18n, 'FI-fi'));
|
36
|
+
const answerIds = Object.keys(answersByQuestionId).map(Number);
|
37
|
+
if (answerIds.length === 0) {
|
38
|
+
return react_1.default.createElement("div", null, "No answers");
|
39
|
+
}
|
40
|
+
const [answerId, setAnswerId] = (0, react_1.useState)(answerIds[0]);
|
41
|
+
const annotationsStorage = (0, react_1.useRef)(Object.fromEntries(answerIds.map((id) => [
|
42
|
+
id,
|
43
|
+
{
|
44
|
+
pregrading: [
|
45
|
+
{
|
46
|
+
startIndex: 2,
|
47
|
+
length: 5,
|
48
|
+
message: '+1',
|
49
|
+
},
|
50
|
+
{
|
51
|
+
x: 0.07434944237918215,
|
52
|
+
y: 0.8599562363238512,
|
53
|
+
type: 'rect',
|
54
|
+
width: 0.16604708798017348,
|
55
|
+
height: 0.03063457330415753,
|
56
|
+
message: '+2',
|
57
|
+
attachmentIndex: 0,
|
58
|
+
},
|
59
|
+
{
|
60
|
+
x1: 0.4035532994923858,
|
61
|
+
x2: 0.5621827411167513,
|
62
|
+
y1: 0.957983193277311,
|
63
|
+
y2: 0.957983193277311,
|
64
|
+
type: 'line',
|
65
|
+
message: 'trk, +1',
|
66
|
+
attachmentIndex: 0,
|
67
|
+
},
|
68
|
+
],
|
69
|
+
censoring: [],
|
70
|
+
},
|
71
|
+
])));
|
72
|
+
const [annotations, setAnnotations] = (0, react_1.useState)({
|
73
|
+
pregrading: [],
|
74
|
+
censoring: [],
|
75
|
+
});
|
76
|
+
(0, react_1.useEffect)(() => {
|
77
|
+
setAnnotations(annotationsStorage.current[answerId]);
|
78
|
+
});
|
79
|
+
const answer = answersByQuestionId[answerId];
|
80
|
+
const { type: answerType, value } = answer;
|
81
|
+
if (answerType === 'choice') {
|
82
|
+
return react_1.default.createElement("div", null, "choice answer");
|
83
|
+
}
|
84
|
+
const { characterCount } = answer;
|
85
|
+
function selectQuestion(e, id) {
|
86
|
+
e.preventDefault();
|
87
|
+
setAnswerId(id);
|
88
|
+
setAnnotations(annotationsStorage.current[id]);
|
89
|
+
}
|
90
|
+
function saveAnnotations(annotations) {
|
91
|
+
annotationsStorage.current[answerId] = annotations;
|
92
|
+
setAnnotations({ ...annotationsStorage.current[answerId] });
|
93
|
+
}
|
94
|
+
return (react_1.default.createElement(react_i18next_1.I18nextProvider, { i18n: i18n },
|
95
|
+
react_1.default.createElement("main", { className: "e-exam" },
|
96
|
+
react_1.default.createElement("div", { className: "grading-navi" }, answerIds.map((id) => id === answerId ? (react_1.default.createElement("span", { key: id, className: "grading-navi-item" }, answersByQuestionId[id].displayNumber)) : (react_1.default.createElement("a", { className: "grading-navi-item", href: "", onClick: (e) => selectQuestion(e, id), key: id }, answersByQuestionId[id].displayNumber)))),
|
97
|
+
react_1.default.createElement(GradingAnswer_1.GradingAnswer, { ...{
|
98
|
+
isReadOnly: false,
|
99
|
+
answerType,
|
100
|
+
gradingRole: 'censoring',
|
101
|
+
value,
|
102
|
+
characterCount,
|
103
|
+
maxLength: 100,
|
104
|
+
annotations,
|
105
|
+
saveAnnotations,
|
106
|
+
} }))));
|
107
|
+
}
|
108
|
+
exports.default = react_1.default.memo((0, ResultsContext_1.withResultsContext)((0, CommonExamContext_1.withCommonExamContext)(Grading)));
|
109
|
+
//# sourceMappingURL=Grading.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Grading.js","sourceRoot":"","sources":["../src/Grading.tsx"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PreviewGrading.d.ts","sourceRoot":"","sources":["../src/PreviewGrading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAA;;
|
1
|
+
{"version":3,"file":"PreviewGrading.d.ts","sourceRoot":"","sources":["../src/PreviewGrading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAA;;AAsHtE,wBAAwE"}
|
package/dist/PreviewGrading.js
CHANGED
@@ -35,22 +35,22 @@ function PreviewGrading() {
|
|
35
35
|
}
|
36
36
|
const [answerId, setAnswerId] = (0, react_1.useState)(answerIds[0]);
|
37
37
|
const [language, setLanguage] = (0, react_1.useState)('fi-FI');
|
38
|
-
const annotationsStorage = (0, react_1.useRef)(Object.fromEntries(answerIds.map(
|
38
|
+
const annotationsStorage = (0, react_1.useRef)(Object.fromEntries(answerIds.map(id => [
|
39
39
|
id,
|
40
40
|
{
|
41
41
|
pregrading: [
|
42
42
|
{
|
43
43
|
startIndex: 2,
|
44
44
|
length: 5,
|
45
|
-
message: '+1'
|
46
|
-
}
|
45
|
+
message: '+1'
|
46
|
+
}
|
47
47
|
],
|
48
|
-
censoring: []
|
49
|
-
}
|
48
|
+
censoring: []
|
49
|
+
}
|
50
50
|
])));
|
51
51
|
const [annotations, setAnnotations] = (0, react_1.useState)({
|
52
52
|
pregrading: [],
|
53
|
-
censoring: []
|
53
|
+
censoring: []
|
54
54
|
});
|
55
55
|
(0, react_1.useEffect)(() => {
|
56
56
|
setAnnotations(annotationsStorage.current[answerId]);
|
@@ -58,13 +58,13 @@ function PreviewGrading() {
|
|
58
58
|
const answer = answersByQuestionId[answerId];
|
59
59
|
return (react_1.default.createElement("main", { className: "e-exam" },
|
60
60
|
react_1.default.createElement("div", { className: "grading-header" },
|
61
|
-
react_1.default.createElement("div", { className: "grading-navi" }, answerIds.map(
|
61
|
+
react_1.default.createElement("div", { className: "grading-navi" }, answerIds.map(id => id === answerId ? (react_1.default.createElement("span", { key: id, className: "grading-navi-item" }, answersByQuestionId[id].displayNumber)) : (react_1.default.createElement("a", { className: "grading-navi-item", href: "", onClick: e => selectQuestion(e, id), key: id }, answersByQuestionId[id].displayNumber)))),
|
62
62
|
react_1.default.createElement("div", { className: "language-settings" },
|
63
|
-
react_1.default.createElement("a", { className: "grading-navi-item", href: "", onClick:
|
63
|
+
react_1.default.createElement("a", { className: "grading-navi-item", href: "", onClick: e => {
|
64
64
|
e.preventDefault();
|
65
65
|
setLanguage('fi-FI');
|
66
66
|
} }, "FI"),
|
67
|
-
react_1.default.createElement("a", { className: "grading-navi-item", href: "", onClick:
|
67
|
+
react_1.default.createElement("a", { className: "grading-navi-item", href: "", onClick: e => {
|
68
68
|
e.preventDefault();
|
69
69
|
setLanguage('sv-FI');
|
70
70
|
} }, "SV"))),
|
@@ -84,7 +84,6 @@ function PreviewGrading() {
|
|
84
84
|
setAnnotations(annotationsStorage.current[id]);
|
85
85
|
}
|
86
86
|
function saveAnnotations(annotations) {
|
87
|
-
console.log(annotations);
|
88
87
|
annotationsStorage.current[answerId] = annotations;
|
89
88
|
setAnnotations({ ...annotationsStorage.current[answerId] });
|
90
89
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PreviewGrading.js","sourceRoot":"","sources":["../src/PreviewGrading.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAsE;AACtE,oGAAoH;AAEpH,kGAA8F;AAC9F,0GAA0G;AAE1G,SAAS,cAAc;IACrB,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAA,kBAAU,EAAC,+BAAc,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,wDAAqB,CAAA;KAC7B;IACD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAG9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAW,OAAO,CAAC,CAAA;IAC3D,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAC/B,MAAM,CAAC,WAAW,CAChB,SAAS,CAAC,GAAG,CAAC,
|
1
|
+
{"version":3,"file":"PreviewGrading.js","sourceRoot":"","sources":["../src/PreviewGrading.tsx"],"names":[],"mappings":"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"}
|
@@ -11,7 +11,7 @@ function initPuppeteer() {
|
|
11
11
|
beforeAll(async () => {
|
12
12
|
browser = await puppeteer_1.default.launch({
|
13
13
|
headless: isInDebugMode ? false : 'new',
|
14
|
-
args: ['--no-sandbox', '--disable-setuid-sandbox']
|
14
|
+
args: ['--no-sandbox', '--disable-setuid-sandbox']
|
15
15
|
});
|
16
16
|
});
|
17
17
|
afterAll(async () => {
|
@@ -32,7 +32,7 @@ async function loadExam(page, url) {
|
|
32
32
|
}
|
33
33
|
exports.loadExam = loadExam;
|
34
34
|
async function delay(millis) {
|
35
|
-
return new Promise(
|
35
|
+
return new Promise(resolve => setTimeout(resolve, millis));
|
36
36
|
}
|
37
37
|
exports.delay = delay;
|
38
38
|
// Normally unused, but very useful for debugging
|
@@ -42,7 +42,7 @@ async function halt(page) {
|
|
42
42
|
}
|
43
43
|
exports.halt = halt;
|
44
44
|
async function getInnerText(page, selector) {
|
45
|
-
return page.$eval(selector,
|
45
|
+
return page.$eval(selector, e => {
|
46
46
|
if (e instanceof HTMLElement) {
|
47
47
|
return e.innerText;
|
48
48
|
}
|
@@ -53,7 +53,7 @@ async function getInnerText(page, selector) {
|
|
53
53
|
}
|
54
54
|
exports.getInnerText = getInnerText;
|
55
55
|
async function getOuterHtml(page, selector) {
|
56
|
-
return page.$eval(selector,
|
56
|
+
return page.$eval(selector, e => {
|
57
57
|
if (e instanceof HTMLElement) {
|
58
58
|
return e.outerHTML;
|
59
59
|
}
|
@@ -64,7 +64,7 @@ async function getOuterHtml(page, selector) {
|
|
64
64
|
}
|
65
65
|
exports.getOuterHtml = getOuterHtml;
|
66
66
|
async function getTextContent(page, selector) {
|
67
|
-
return page.$eval(selector,
|
67
|
+
return page.$eval(selector, e => {
|
68
68
|
if (e instanceof HTMLElement) {
|
69
69
|
return e.textContent.trim();
|
70
70
|
}
|
@@ -77,13 +77,13 @@ exports.getTextContent = getTextContent;
|
|
77
77
|
async function getPageAndRequestErrors(page, filename) {
|
78
78
|
const requestErrors = [];
|
79
79
|
const pageErrors = [];
|
80
|
-
page.on('requestfailed',
|
80
|
+
page.on('requestfailed', req => {
|
81
81
|
const errorText = req.failure().errorText;
|
82
82
|
if (errorText !== 'net::ERR_ABORTED') {
|
83
83
|
requestErrors.push(req.url());
|
84
84
|
}
|
85
85
|
});
|
86
|
-
page.on('pageerror',
|
86
|
+
page.on('pageerror', err => pageErrors.push(err));
|
87
87
|
await page.goto(`file://${filename}`, { waitUntil: 'networkidle0' });
|
88
88
|
return { requestErrors, pageErrors };
|
89
89
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"puppeteerUtils.js","sourceRoot":"","sources":["../../__tests__/puppeteerUtils.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;AAEZ,0DAAoD;AAEpD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,CAAA;AAEzD,SAAgB,aAAa;IAC3B,IAAI,OAAgB,CAAA;IACpB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,OAAO,GAAG,MAAM,mBAAS,CAAC,MAAM,CAAC;YAC/B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;YACvC,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,CAAC;SACnD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,UAAU,UAAU;QAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,6BAA6B,EAAE,CAAA;QAC7D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACpC,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;AACH,CAAC;AAnBD,sCAmBC;AAEM,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,GAAW;IACpD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpB,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AACvC,CAAC;AAHD,4BAGC;AAEM,KAAK,UAAU,KAAK,CAAC,MAAc;IACxC,OAAO,IAAI,OAAO,CAAC,
|
1
|
+
{"version":3,"file":"puppeteerUtils.js","sourceRoot":"","sources":["../../__tests__/puppeteerUtils.ts"],"names":[],"mappings":"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"}
|
@@ -9,7 +9,7 @@ describe('testCasTransition.ts - Allowing CAS software in a math exam', () => {
|
|
9
9
|
let ctx;
|
10
10
|
beforeAll(async () => {
|
11
11
|
ctx = await (0, exam_engine_rendering_1.previewExam)((0, exam_engine_exams_1.resolveExam)('N/N.xml'), {
|
12
|
-
casCountdownDurationSeconds: 2
|
12
|
+
casCountdownDurationSeconds: 2
|
13
13
|
});
|
14
14
|
page = await createPage();
|
15
15
|
});
|
@@ -39,7 +39,7 @@ describe('testCasTransition.ts - Allowing CAS software in a math exam', () => {
|
|
39
39
|
// FIXME: Remove explicit type after Puppeteer 7.x has added better page.waitForFunction types.
|
40
40
|
// https://github.com/puppeteer/puppeteer/issues/6884
|
41
41
|
(innerVisible) => {
|
42
|
-
const element = document.getElementById('1');
|
42
|
+
const element = document.getElementById('question-nr-1');
|
43
43
|
return innerVisible ? element != null : element == null;
|
44
44
|
}, undefined, visible);
|
45
45
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testCasTransition.js","sourceRoot":"","sources":["../../__tests__/testCasTransition.ts"],"names":[],"mappings":";;AAAA,iEAAuD;AACvD,yEAA2E;AAE3E,qDAA0D;AAE1D,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,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,SAAS,CAAC,EAAE;YAC9C,2BAA2B,EAAE,CAAC;SAC/B,CAAC,CAAA;QACF,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,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE7B,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;QAC3B,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4GAA4G,EAAE,KAAK,IAAI,EAAE;QAC1H,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,0BAA0B,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,KAAK,UAAU,cAAc,CAAC,OAAgB;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,UAAU,yBAAyB,CAAC,OAAgB;QACvD,MAAM,IAAI,CAAC,eAAe;QACxB,+FAA+F;QAC/F,qDAAqD;QACrD,CAAC,YAAqB,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,
|
1
|
+
{"version":3,"file":"testCasTransition.js","sourceRoot":"","sources":["../../__tests__/testCasTransition.ts"],"names":[],"mappings":";;AAAA,iEAAuD;AACvD,yEAA2E;AAE3E,qDAA0D;AAE1D,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,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,SAAS,CAAC,EAAE;YAC9C,2BAA2B,EAAE,CAAC;SAC/B,CAAC,CAAA;QACF,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,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE7B,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;QAC3B,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4GAA4G,EAAE,KAAK,IAAI,EAAE;QAC1H,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,0BAA0B,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,KAAK,UAAU,cAAc,CAAC,OAAgB;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,UAAU,yBAAyB,CAAC,OAAgB;QACvD,MAAM,IAAI,CAAC,eAAe;QACxB,+FAA+F;QAC/F,qDAAqD;QACrD,CAAC,YAAqB,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;YACxD,OAAO,YAAY,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAA;QACzD,CAAC,EACD,SAAS,EACT,OAAO,CACR,CAAA;IACH,CAAC;IAED,KAAK,UAAU,0BAA0B;QACvC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;YAC9B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAA;YACjF,IAAI,iBAAiB,EAAE;gBACrB,OAAO,iBAAiB,CAAC,WAAY,CAAC,IAAI,EAAE,KAAK,kBAAkB,CAAA;aACpE;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA"}
|
@@ -27,10 +27,24 @@ describe('testChoiceAnswer.ts - choice answer interactions', () => {
|
|
27
27
|
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
28
28
|
expect(await getRadioButtonValue(page, 1)).toBe('93');
|
29
29
|
});
|
30
|
+
it('a choice answer indicator has correct state in side navigation', async () => {
|
31
|
+
var _a, _b, _c, _d;
|
32
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
33
|
+
const indicator = await page.$('.sidebar-toc-container div[data-indicator-id="44"]');
|
34
|
+
const className = await ((_a = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
35
|
+
const indicatorValue = await ((_b = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('innerHTML')))) === null || _b === void 0 ? void 0 : _b.jsonValue());
|
36
|
+
await setChoiceAnswer(page, 44, '207');
|
37
|
+
const classNameThen = await ((_c = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _c === void 0 ? void 0 : _c.jsonValue());
|
38
|
+
const indicatorValueThen = await ((_d = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('innerHTML')))) === null || _d === void 0 ? void 0 : _d.jsonValue());
|
39
|
+
expect(className).not.toContain('ok');
|
40
|
+
expect(indicatorValue).toContain('');
|
41
|
+
expect(classNameThen).toContain('ok');
|
42
|
+
expect(indicatorValueThen).toContain('');
|
43
|
+
});
|
30
44
|
});
|
31
45
|
async function getRadioButtonValue(page, questionId) {
|
32
46
|
return page
|
33
|
-
.$eval(`.e-radio-button[name="${questionId}"]:checked`,
|
47
|
+
.$eval(`.e-radio-button[name="${questionId}"]:checked`, e => e.value)
|
34
48
|
.catch(() => undefined);
|
35
49
|
}
|
36
50
|
async function setChoiceAnswer(page, questionId, value) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testChoiceAnswer.js","sourceRoot":"","sources":["../../__tests__/testChoiceAnswer.ts"],"names":[],"mappings":";;AAAA,iEAAuD;AACvD,yEAA2E;AAE3E,qDAA0D;AAE1D,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAChE,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,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE7B,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACpC,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAErD,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACpC,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,UAAkB;IAC/D,OAAO,IAAI;SACR,KAAK,CAAC,yBAAyB,UAAU,YAAY,EAAE,CAAC,CAAC,EAAE,
|
1
|
+
{"version":3,"file":"testChoiceAnswer.js","sourceRoot":"","sources":["../../__tests__/testChoiceAnswer.ts"],"names":[],"mappings":"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"}
|
@@ -28,6 +28,8 @@ describe('testGrading.ts', () => {
|
|
28
28
|
await page.keyboard.type('1/x+2x^2');
|
29
29
|
await page.keyboard.press('Escape');
|
30
30
|
await page.waitForSelector('.save-indicator-text--saved');
|
31
|
+
});
|
32
|
+
beforeEach(async () => {
|
31
33
|
await page.goto(`${ctx.url}/fi-FI/normal/grading`);
|
32
34
|
await page.waitForSelector('.e-grading-answer');
|
33
35
|
});
|
@@ -38,7 +40,7 @@ describe('testGrading.ts', () => {
|
|
38
40
|
await navigateToAnswer('1.1');
|
39
41
|
await expectText('.e-grading-answer-length', 'Vastauksen pituus: 19 merkkiä.');
|
40
42
|
await page.waitForSelector('.e-grading-answer-max-length-surplus', HIDDEN);
|
41
|
-
await drag(
|
43
|
+
await drag(345, 150, 500, 150);
|
42
44
|
await page.waitForSelector('.e-grading-answer-add-annotation', VISIBLE);
|
43
45
|
await page.keyboard.type('+1p.');
|
44
46
|
await page.keyboard.press('Enter');
|
@@ -50,41 +52,47 @@ describe('testGrading.ts', () => {
|
|
50
52
|
await expectText('.e-grading-answer-length', `Vastauksen pituus: 368 merkkiä.${surplusText}`);
|
51
53
|
await expectText('.e-grading-answer-max-length-surplus', surplusText);
|
52
54
|
});
|
53
|
-
it('creates
|
55
|
+
it('creates and modifies annotations', async () => {
|
54
56
|
await navigateToAnswer('2');
|
55
|
-
await drag(
|
57
|
+
await drag(300, 210, 502, 210);
|
56
58
|
await page.waitForSelector('.e-grading-answer-add-annotation', VISIBLE);
|
57
59
|
await page.keyboard.type('first annotation message');
|
58
60
|
await page.keyboard.press('Enter');
|
59
61
|
await page.waitForSelector('.e-grading-answer-add-annotation', HIDDEN);
|
60
62
|
await expectText('.e-annotation--censoring', 'vel eros lobortis, dignissim ');
|
61
63
|
await expectAnnotationMessages(['+1', 'first annotation message']);
|
62
|
-
await page.mouse.move(
|
64
|
+
await page.mouse.move(500, 210);
|
63
65
|
await page.waitForSelector('.e-grading-answer-tooltip', VISIBLE);
|
64
66
|
await page.click('.e-grading-answer-tooltip-label');
|
65
67
|
await page.waitForSelector('.e-grading-answer-add-annotation', VISIBLE);
|
66
|
-
await page.keyboard.
|
68
|
+
await page.keyboard.type('2');
|
67
69
|
await page.keyboard.press('Enter');
|
68
70
|
await expectAnnotationMessages(['+1', 'first annotation message2']);
|
69
|
-
await page.mouse.
|
70
|
-
await page.
|
71
|
-
|
72
|
-
|
71
|
+
await page.mouse.reset();
|
72
|
+
await page.waitForSelector('.e-grading-answer-tooltip', HIDDEN);
|
73
|
+
});
|
74
|
+
it('removes annotations', async () => {
|
75
|
+
await navigateToAnswer('2');
|
76
|
+
await drag(242, 300, 252, 310);
|
73
77
|
await page.waitForSelector('.e-grading-answer-add-annotation', VISIBLE);
|
74
78
|
await page.keyboard.type('img annotation msg');
|
75
79
|
await page.keyboard.press('Enter');
|
76
80
|
await page.waitForSelector('.e-grading-answer-add-annotation', HIDDEN);
|
77
81
|
await page.waitForSelector('.e-annotation-wrapper .e-annotation--censoring', VISIBLE);
|
78
82
|
await expectAnnotationMessages(['+1', 'img annotation msg']);
|
83
|
+
await page.hover('.e-annotation--censoring');
|
84
|
+
await page.waitForSelector('.e-grading-answer-tooltip', VISIBLE);
|
85
|
+
await page.click('.e-grading-answer-tooltip-remove');
|
86
|
+
await expectAnnotationMessages(['+1']);
|
79
87
|
});
|
80
88
|
async function expectText(selector, text) {
|
81
89
|
const element = await page.waitForSelector(selector, VISIBLE);
|
82
|
-
const textContent = await (element === null || element === void 0 ? void 0 : element.evaluate(
|
90
|
+
const textContent = await (element === null || element === void 0 ? void 0 : element.evaluate(el => el.textContent));
|
83
91
|
expect(textContent).toBe(text);
|
84
92
|
}
|
85
93
|
async function expectAnnotationMessages(expected) {
|
86
94
|
const annotationList = await page.waitForSelector('.e-annotation-list', VISIBLE);
|
87
|
-
const listItems = await (annotationList === null || annotationList === void 0 ? void 0 : annotationList.evaluate(
|
95
|
+
const listItems = await (annotationList === null || annotationList === void 0 ? void 0 : annotationList.evaluate(el => Array.from(el.querySelectorAll('li')).map(li => li.textContent)));
|
88
96
|
expect(listItems).toEqual(expected);
|
89
97
|
}
|
90
98
|
async function drag(x1, y1, x2, y2) {
|
@@ -100,6 +108,7 @@ describe('testGrading.ts', () => {
|
|
100
108
|
const navi = await page.waitForSelector('.grading-navi');
|
101
109
|
const button = await (navi === null || navi === void 0 ? void 0 : navi.waitForSelector(`text/${displayNumber}`));
|
102
110
|
await (button === null || button === void 0 ? void 0 : button.click());
|
111
|
+
await page.waitForSelector('.e-grading-answer', VISIBLE);
|
103
112
|
}
|
104
113
|
});
|
105
114
|
//# sourceMappingURL=testGrading.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testGrading.js","sourceRoot":"","sources":["../../__tests__/testGrading.ts"],"names":[],"mappings":";;AAAA,iEAAuD;AACvD,yEAA2E;AAE3E,qDAA0D;AAE1D,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AACjC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAC/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,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,SAAS,CAAC,CAAC,CAAA;QAC/C,IAAI,GAAG,MAAM,UAAU,EAAE,CAAA;QACzB,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,MAAM,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;QACtC,MAAM,MAAM,CAAC,CAAC,EAAE,+EAA+E,CAAC,CAAA;QAChG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,CAAC,EAAE,yFAAyF,CAAC,CAAA;QAC1G,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,CAAC,EAAE,4FAA4F,CAAC,CAAA;QAC7G,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,CAAC,EAAE,gGAAgG,CAAC,CAAA;QACjH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,CAAC,EAAE,wFAAwF,CAAC,CAAA;QACzG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC3C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEnC,MAAM,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"testGrading.js","sourceRoot":"","sources":["../../__tests__/testGrading.ts"],"names":[],"mappings":";;AAAA,iEAAuD;AACvD,yEAA2E;AAE3E,qDAA0D;AAE1D,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AACjC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAC/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,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,SAAS,CAAC,CAAC,CAAA;QAC/C,IAAI,GAAG,MAAM,UAAU,EAAE,CAAA;QACzB,MAAM,IAAA,yBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,MAAM,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;QACtC,MAAM,MAAM,CAAC,CAAC,EAAE,+EAA+E,CAAC,CAAA;QAChG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,CAAC,EAAE,yFAAyF,CAAC,CAAA;QAC1G,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,CAAC,EAAE,4FAA4F,CAAC,CAAA;QAC7G,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,CAAC,EAAE,gGAAgG,CAAC,CAAA;QACjH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,CAAC,EAAE,wFAAwF,CAAC,CAAA;QACzG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC3C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEnC,MAAM,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAA;QAClD,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,UAAU,CAAC,0BAA0B,EAAE,gCAAgC,CAAC,CAAA;QAC9E,MAAM,IAAI,CAAC,eAAe,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAA;QAC1E,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAA;QACvE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,wBAAwB,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,WAAW,GAAG,sDAAsD,CAAA;QAC1E,MAAM,UAAU,CAAC,0BAA0B,EAAE,kCAAkC,WAAW,EAAE,CAAC,CAAA;QAC7F,MAAM,UAAU,CAAC,sCAAsC,EAAE,WAAW,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAA;QACvE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACpD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,IAAI,CAAC,eAAe,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAA;QACtE,MAAM,UAAU,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,CAAA;QAC7E,MAAM,wBAAwB,CAAC,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAA;QAElE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAA;QAChE,MAAM,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACnD,MAAM,IAAI,CAAC,eAAe,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAA;QACvE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,wBAAwB,CAAC,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,CAAA;QACnE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAA;QACvE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,MAAM,IAAI,CAAC,eAAe,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAA;QACtE,MAAM,IAAI,CAAC,eAAe,CAAC,gDAAgD,EAAE,OAAO,CAAC,CAAA;QACrF,MAAM,wBAAwB,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAA;QAE5D,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC5C,MAAM,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAA;QAChE,MAAM,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACpD,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,IAAY;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC7D,MAAM,WAAW,GAAG,MAAM,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA,CAAA;QACjE,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IACD,KAAK,UAAU,wBAAwB,CAAC,QAAkB;QACxD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;QAChF,MAAM,SAAS,GAAG,MAAM,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAChE,CAAA,CAAA;QACD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,UAAU,IAAI,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QAChE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QACvB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;IACvB,CAAC;IACD,KAAK,UAAU,MAAM,CAAC,UAAkB,EAAE,IAAY;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,kCAAkC,UAAU,IAAI,EAAE,IAAI,CAAC,CAAA;IACzE,CAAC;IACD,KAAK,UAAU,gBAAgB,CAAC,aAAqB;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QACxD,MAAM,MAAM,GAAG,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,CAAC,QAAQ,aAAa,EAAE,CAAC,CAAA,CAAA;QACnE,MAAM,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAA,CAAA;QACrB,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC,CAAC,CAAA"}
|
@@ -13,9 +13,9 @@ describe('testGradingInstructionsGeneration.ts - grading instructions generation
|
|
13
13
|
let page;
|
14
14
|
let gradingInstructionHtmlFile;
|
15
15
|
beforeAll(async () => {
|
16
|
-
const tmpdir = await tmp_promise_1.default.dir().then(
|
16
|
+
const tmpdir = await tmp_promise_1.default.dir().then(r => r.path);
|
17
17
|
const [outputDirectory] = await (0, exam_engine_rendering_1.createOfflineExam)((0, exam_engine_exams_1.resolveExam)('A_E/A_E.xml'), tmpdir, {
|
18
|
-
type: 'grading-instructions'
|
18
|
+
type: 'grading-instructions'
|
19
19
|
});
|
20
20
|
gradingInstructionHtmlFile = path_1.default.resolve(outputDirectory, 'grading-instructions.html');
|
21
21
|
page = await createPage();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testGradingInstructionsGeneration.js","sourceRoot":"","sources":["../../__tests__/testGradingInstructionsGeneration.ts"],"names":[],"mappings":";;;;;AAAA,iEAAuD;AACvD,yEAAiE;AACjE,gDAAuB;AAEvB,8DAA6B;AAC7B,qDAAyE;AAEzE,QAAQ,CAAC,wEAAwE,EAAE,GAAG,EAAE;IACtF,MAAM,UAAU,GAAG,IAAA,8BAAa,GAAE,CAAA;IAClC,IAAI,IAAU,CAAA;IACd,IAAI,0BAAkC,CAAA;IAEtC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,qBAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,
|
1
|
+
{"version":3,"file":"testGradingInstructionsGeneration.js","sourceRoot":"","sources":["../../__tests__/testGradingInstructionsGeneration.ts"],"names":[],"mappings":";;;;;AAAA,iEAAuD;AACvD,yEAAiE;AACjE,gDAAuB;AAEvB,8DAA6B;AAC7B,qDAAyE;AAEzE,QAAQ,CAAC,wEAAwE,EAAE,GAAG,EAAE;IACtF,MAAM,UAAU,GAAG,IAAA,8BAAa,GAAE,CAAA;IAClC,IAAI,IAAU,CAAA;IACd,IAAI,0BAAkC,CAAA;IAEtC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,qBAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,yCAAiB,EAAC,IAAA,+BAAW,EAAC,aAAa,CAAC,EAAE,MAAM,EAAE;YACpF,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAA;QACF,0BAA0B,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAA;QACvF,IAAI,GAAG,MAAM,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,2BAA2B,CAAC,0BAA0B,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,KAAK,UAAU,2BAA2B,CAAC,QAAgB;QACzD,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,wCAAuB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnF,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;AACH,CAAC,CAAC,CAAA"}
|
@@ -14,7 +14,7 @@ describe('testOfflineGeneration.ts - Offline version generation', () => {
|
|
14
14
|
let examHtmlFile;
|
15
15
|
let attachmentsHtmlFile;
|
16
16
|
beforeAll(async () => {
|
17
|
-
const tmpdir = await tmp_promise_1.default.dir().then(
|
17
|
+
const tmpdir = await tmp_promise_1.default.dir().then(r => r.path);
|
18
18
|
const [outputDirectory] = await (0, exam_engine_rendering_1.createOfflineExam)((0, exam_engine_exams_1.resolveExam)('A_E/A_E.xml'), tmpdir);
|
19
19
|
examHtmlFile = path_1.default.resolve(outputDirectory, 'index.html');
|
20
20
|
attachmentsHtmlFile = path_1.default.resolve(outputDirectory, 'attachments/index.html');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testOfflineGeneration.js","sourceRoot":"","sources":["../../__tests__/testOfflineGeneration.ts"],"names":[],"mappings":";;;;;AAAA,iEAAuD;AACvD,yEAAiE;AACjE,gDAAuB;AAEvB,8DAA6B;AAC7B,qDAAyE;AAEzE,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACrE,MAAM,UAAU,GAAG,IAAA,8BAAa,GAAE,CAAA;IAClC,IAAI,IAAU,CAAA;IACd,IAAI,YAAoB,CAAA;IACxB,IAAI,mBAA2B,CAAA;IAE/B,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,qBAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,
|
1
|
+
{"version":3,"file":"testOfflineGeneration.js","sourceRoot":"","sources":["../../__tests__/testOfflineGeneration.ts"],"names":[],"mappings":";;;;;AAAA,iEAAuD;AACvD,yEAAiE;AACjE,gDAAuB;AAEvB,8DAA6B;AAC7B,qDAAyE;AAEzE,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACrE,MAAM,UAAU,GAAG,IAAA,8BAAa,GAAE,CAAA;IAClC,IAAI,IAAU,CAAA;IACd,IAAI,YAAoB,CAAA;IACxB,IAAI,mBAA2B,CAAA;IAE/B,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,qBAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,yCAAiB,EAAC,IAAA,+BAAW,EAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAA;QACrF,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;QAC1D,mBAAmB,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAA;QAC7E,IAAI,GAAG,MAAM,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,2BAA2B,CAAC,YAAY,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,2BAA2B,CAAC,mBAAmB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,KAAK,UAAU,2BAA2B,CAAC,QAAgB;QACzD,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,wCAAuB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnF,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;AACH,CAAC,CAAC,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"testSidebarNavigation.d.ts","sourceRoot":"","sources":["../../__tests__/testSidebarNavigation.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const exam_engine_exams_1 = require("@digabi/exam-engine-exams");
|
4
|
+
const exam_engine_rendering_1 = require("@digabi/exam-engine-rendering");
|
5
|
+
const puppeteerUtils_1 = require("./puppeteerUtils");
|
6
|
+
describe('testSidebarNavigation.ts — Sidebar navigation functionality', () => {
|
7
|
+
const createPage = (0, puppeteerUtils_1.initPuppeteer)();
|
8
|
+
let page;
|
9
|
+
let ctx;
|
10
|
+
beforeAll(async () => {
|
11
|
+
ctx = await (0, exam_engine_rendering_1.previewExam)((0, exam_engine_exams_1.resolveExam)('GE/GE.xml'));
|
12
|
+
page = await createPage();
|
13
|
+
});
|
14
|
+
afterAll(async () => {
|
15
|
+
await ctx.close();
|
16
|
+
});
|
17
|
+
it('shows an exam error when exam has too many questions answered', async () => {
|
18
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
19
|
+
const errorMarkLocator = '.sidebar-toc-container .error-mark.exam';
|
20
|
+
let errorMark = await page.$(errorMarkLocator);
|
21
|
+
expect(errorMark).toBeFalsy();
|
22
|
+
await type('testivastaus', 21);
|
23
|
+
await type('testivastaus', 23);
|
24
|
+
await type('testivastaus', 26);
|
25
|
+
await type('testivastaus', 32);
|
26
|
+
await type('testivastaus', 37);
|
27
|
+
await type('testivastaus', 41);
|
28
|
+
errorMark = await page.waitForSelector(errorMarkLocator);
|
29
|
+
expect(errorMark).toBeTruthy();
|
30
|
+
});
|
31
|
+
it('shows a section error when section has too many questions answered', async () => {
|
32
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
33
|
+
const errorMarkLocator = '.sidebar-toc-container li[data-section-id="2"] .error-mark';
|
34
|
+
await type('testivastaus', 21);
|
35
|
+
await type('testivastaus', 23);
|
36
|
+
let errorMark = await page.$(errorMarkLocator);
|
37
|
+
expect(errorMark).toBeFalsy();
|
38
|
+
await type('testivastaus', 26);
|
39
|
+
errorMark = await page.waitForSelector(errorMarkLocator);
|
40
|
+
expect(errorMark).toBeTruthy();
|
41
|
+
});
|
42
|
+
it('navigates to question when clicking on it in sidebar', async () => {
|
43
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
44
|
+
const questionNameInSidebar = '.sidebar-toc-container li[data-list-number="6."]';
|
45
|
+
const questionInExam = '.e-exam #question-title-6';
|
46
|
+
const questionSelector = await page.waitForSelector(questionInExam);
|
47
|
+
expect(await (questionSelector === null || questionSelector === void 0 ? void 0 : questionSelector.isIntersectingViewport())).not.toBe(true);
|
48
|
+
await page.click(questionNameInSidebar);
|
49
|
+
expect(await (questionSelector === null || questionSelector === void 0 ? void 0 : questionSelector.isIntersectingViewport())).toBe(true);
|
50
|
+
});
|
51
|
+
const type = (text, questionId = 89) => page.type(`.text-answer[data-question-id="${questionId}"]`, text);
|
52
|
+
});
|
53
|
+
//# sourceMappingURL=testSidebarNavigation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"testSidebarNavigation.js","sourceRoot":"","sources":["../../__tests__/testSidebarNavigation.ts"],"names":[],"mappings":"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"}
|