@digabi/exam-engine-rendering 19.7.1 → 19.8.0-alpha.4
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/PreviewGrading.js +9 -9
- 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 +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 +69 -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/noopExamServerAPI.js +2 -2
- package/dist/utils/noopExamServerAPI.js.map +1 -1
- package/package.json +9 -9
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"))),
|
@@ -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
|
});
|
@@ -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":"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"}
|
@@ -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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"}
|
@@ -38,19 +38,88 @@ 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
|
+
await page.click('.text-answer[data-question-id="2"] + .expand');
|
97
|
+
const body = await page.$('body');
|
98
|
+
const fullScreenSelector = 'div[data-full-screen-id="1.2"]';
|
99
|
+
const bodyClass = await ((_a = (await (body === null || body === void 0 ? void 0 : body.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
100
|
+
expect(bodyClass).toContain('writer-mode');
|
101
|
+
const fullScreen = await page.$(fullScreenSelector);
|
102
|
+
expect(fullScreen).toBeTruthy();
|
103
|
+
};
|
104
|
+
it('a text answer indicator has correct state in side navigation', async () => {
|
105
|
+
var _a, _b, _c, _d, _e, _f;
|
106
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
107
|
+
await clearInput(90);
|
108
|
+
const indicator = await page.$('.sidebar-toc-container div[data-indicator-id="90"]');
|
109
|
+
const className = await ((_a = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _a === void 0 ? void 0 : _a.jsonValue());
|
110
|
+
const indicatorValue = await ((_b = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('innerHTML')))) === null || _b === void 0 ? void 0 : _b.jsonValue());
|
111
|
+
await type('testivastaus', 90);
|
112
|
+
const classNameThen = await ((_c = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _c === void 0 ? void 0 : _c.jsonValue());
|
113
|
+
const indicatorValueThen = await ((_d = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('innerHTML')))) === null || _d === void 0 ? void 0 : _d.jsonValue());
|
114
|
+
await clearInput(90);
|
115
|
+
const classNameFinally = await ((_e = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('className')))) === null || _e === void 0 ? void 0 : _e.jsonValue());
|
116
|
+
const indicatorValueFinally = await ((_f = (await (indicator === null || indicator === void 0 ? void 0 : indicator.getProperty('innerHTML')))) === null || _f === void 0 ? void 0 : _f.jsonValue());
|
117
|
+
expect(className).not.toContain('ok');
|
118
|
+
expect(indicatorValue).toContain('');
|
119
|
+
expect(classNameThen).toContain('ok');
|
120
|
+
expect(indicatorValueThen).toContain('12');
|
121
|
+
expect(classNameFinally).not.toContain('ok');
|
122
|
+
expect(indicatorValueFinally).toContain('');
|
54
123
|
});
|
55
124
|
const expectErrorIndicator = async (text) => {
|
56
125
|
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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"}
|