@digabi/exam-engine-rendering 22.1.0-alpha.0 → 22.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/puppeteerUtils.d.ts +1 -0
- package/dist/__tests__/puppeteerUtils.d.ts.map +1 -1
- package/dist/__tests__/puppeteerUtils.js +11 -0
- package/dist/__tests__/puppeteerUtils.js.map +1 -1
- package/dist/__tests__/testEditableGradingInstructionLocalizations.d.ts +2 -0
- package/dist/__tests__/testEditableGradingInstructionLocalizations.d.ts.map +1 -0
- package/dist/__tests__/testEditableGradingInstructionLocalizations.js +156 -0
- package/dist/__tests__/testEditableGradingInstructionLocalizations.js.map +1 -0
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/exam-loader.d.ts.map +1 -1
- package/dist/exam-loader.js +4 -1
- package/dist/exam-loader.js.map +1 -1
- package/dist/preview.js +16 -9
- package/dist/preview.js.map +1 -1
- package/package.json +5 -5
- package/dist/__tests__/testEditableGradingInstruction.d.ts +0 -2
- package/dist/__tests__/testEditableGradingInstruction.d.ts.map +0 -1
- package/dist/__tests__/testEditableGradingInstruction.js +0 -112
- package/dist/__tests__/testEditableGradingInstruction.js.map +0 -1
@@ -3,6 +3,7 @@ export declare function initPuppeteer(): () => Promise<Page>;
|
|
3
3
|
export declare function loadExam(page: Page, url: string): Promise<void>;
|
4
4
|
export declare function delay(millis: number): Promise<void>;
|
5
5
|
export declare function getInnerText(page: Page, selector: string): Promise<string>;
|
6
|
+
export declare function getInnerHtml(page: Page, selector: string): Promise<string>;
|
6
7
|
export declare function getOuterHtml(page: Page, selector: string): Promise<string>;
|
7
8
|
export declare function getTextContent(page: Page, selector: string): Promise<string>;
|
8
9
|
export declare function getPageAndRequestErrors(page: Page, filename: string): Promise<{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"puppeteerUtils.d.ts","sourceRoot":"","sources":["../../__tests__/puppeteerUtils.ts"],"names":[],"mappings":"AAEA,OAAkB,EAAW,IAAI,EAAE,MAAM,WAAW,CAAA;AAIpD,wBAAgB,aAAa,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,CAmBnD;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAED,wBAAsB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlF;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM;;;GAczE"}
|
1
|
+
{"version":3,"file":"puppeteerUtils.d.ts","sourceRoot":"","sources":["../../__tests__/puppeteerUtils.ts"],"names":[],"mappings":"AAEA,OAAkB,EAAW,IAAI,EAAE,MAAM,WAAW,CAAA;AAIpD,wBAAgB,aAAa,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,CAmBnD;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAED,wBAAsB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlF;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM;;;GAczE"}
|
@@ -7,6 +7,7 @@ exports.initPuppeteer = initPuppeteer;
|
|
7
7
|
exports.loadExam = loadExam;
|
8
8
|
exports.delay = delay;
|
9
9
|
exports.getInnerText = getInnerText;
|
10
|
+
exports.getInnerHtml = getInnerHtml;
|
10
11
|
exports.getOuterHtml = getOuterHtml;
|
11
12
|
exports.getTextContent = getTextContent;
|
12
13
|
exports.getPageAndRequestErrors = getPageAndRequestErrors;
|
@@ -48,6 +49,16 @@ async function getInnerText(page, selector) {
|
|
48
49
|
}
|
49
50
|
});
|
50
51
|
}
|
52
|
+
async function getInnerHtml(page, selector) {
|
53
|
+
return page.$eval(selector, e => {
|
54
|
+
if (e instanceof HTMLElement) {
|
55
|
+
return e.innerHTML;
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
throw new Error(`Expected a HTML element, got ${e.localName}`);
|
59
|
+
}
|
60
|
+
});
|
61
|
+
}
|
51
62
|
async function getOuterHtml(page, selector) {
|
52
63
|
return page.$eval(selector, e => {
|
53
64
|
if (e instanceof HTMLElement) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"puppeteerUtils.js","sourceRoot":"","sources":["../../__tests__/puppeteerUtils.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;AAMZ,sCAmBC;AAED,4BAGC;AAED,sBAEC;AAED,oCAQC;AAED,oCAQC;AAED,wCAQC;AAED,0DAcC;
|
1
|
+
{"version":3,"file":"puppeteerUtils.js","sourceRoot":"","sources":["../../__tests__/puppeteerUtils.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;AAMZ,sCAmBC;AAED,4BAGC;AAED,sBAEC;AAED,oCAQC;AAED,oCAQC;AAED,oCAQC;AAED,wCAQC;AAED,0DAcC;AAxFD,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,CAAC,aAAa;YACxB,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,oBAAoB,EAAE,CAAA;QACpD,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;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;AAEM,KAAK,UAAU,KAAK,CAAC,MAAc;IACxC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AAC5D,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,IAAU,EAAE,QAAgB;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,SAAS,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,IAAU,EAAE,QAAgB;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,SAAS,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,IAAU,EAAE,QAAgB;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,SAAS,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,IAAU,EAAE,QAAgB;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,WAAY,CAAC,IAAI,EAAE,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,IAAU,EAAE,QAAgB;IACxE,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,MAAM,UAAU,GAAY,EAAE,CAAA;IAE9B,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;QAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAG,CAAC,SAAS,CAAA;QAC1C,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;YACrC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;IACpE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAA;AACtC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"testEditableGradingInstructionLocalizations.d.ts","sourceRoot":"","sources":["../../__tests__/testEditableGradingInstructionLocalizations.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,156 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const exam_engine_rendering_1 = require("@digabi/exam-engine-rendering");
|
4
|
+
const puppeteerUtils_1 = require("./puppeteerUtils");
|
5
|
+
const langs = ['fi-FI', 'sv-FI'];
|
6
|
+
const examTypes = ['hearing-impaired', 'visually-impaired'];
|
7
|
+
describe('testEditableGradingInstructionLocalization.ts — Grading instruction localize mastering', () => {
|
8
|
+
const createPage = (0, puppeteerUtils_1.initPuppeteer)();
|
9
|
+
let page;
|
10
|
+
let ctx;
|
11
|
+
let origEditableGradingInstructions = undefined;
|
12
|
+
beforeAll(async () => {
|
13
|
+
origEditableGradingInstructions = process.env.EDITABLE_GRADING_INSTRUCTIONS;
|
14
|
+
process.env.EDITABLE_GRADING_INSTRUCTIONS = 'true';
|
15
|
+
ctx = await (0, exam_engine_rendering_1.previewExam)(`${__dirname}/fixtures/XX/koe.xml`, {
|
16
|
+
editableGradingInstructions: true
|
17
|
+
});
|
18
|
+
page = await createPage();
|
19
|
+
});
|
20
|
+
afterAll(async () => {
|
21
|
+
process.env.EDITABLE_GRADING_INSTRUCTIONS = origEditableGradingInstructions;
|
22
|
+
await ctx.close();
|
23
|
+
});
|
24
|
+
it('renders exam grading instructions as read-only (removing unnecessary localizations), exam grading instructions are not editable', async () => {
|
25
|
+
await page.goto(`${ctx.url}/fi-FI/normal/grading-instructions`);
|
26
|
+
await page.waitForSelector('.e-exam-grading-instruction');
|
27
|
+
const valueFi = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-exam-grading-instruction');
|
28
|
+
expect(valueFi.replace(/\n\s+/g, ' ')).toContain(` Normaali tekstikappale <br> <span>Lokalisaatio: Ei attribuutteja <br> </span> <span lang="fi-FI">Lokalisaatio: FI only <br> </span> `);
|
29
|
+
await page.goto(`${ctx.url}/sv-FI/visually-impaired/grading-instructions`);
|
30
|
+
await page.waitForSelector('.e-exam-grading-instruction');
|
31
|
+
const valueSv = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-exam-grading-instruction');
|
32
|
+
expect(valueSv.replace(/\n\s+/g, ' ')).toContain(` Normaali tekstikappale <br> <span>Lokalisaatio: Ei attribuutteja <br> </span> <span lang="sv-FI">Lokalisaatio: SV only <br> </span> <span lang="sv-FI">Lokalisaatio: SV NV <br> </span> <span>Lokalisaatio: NV only <br> </span> `);
|
33
|
+
});
|
34
|
+
it('renders all grading instructions regardless the localization (language or exam type)', async () => {
|
35
|
+
const valueFi = await getContent(page, `${ctx.url}/fi-FI/visually-impaired/grading-instructions`);
|
36
|
+
expect(valueFi)
|
37
|
+
.toContain(`<div><e:answer-grading-instruction path="/e:exam/e:section/e:question/e:text-answer/e:answer-grading-instruction">
|
38
|
+
Normaali tekstikappale
|
39
|
+
<div data-editor-id="e-localization-block">Lokalisaatio: Ei attribuutteja</div>
|
40
|
+
<div lang="fi-FI" data-editor-id="e-localization-block">Lokalisaatio: FI only
|
41
|
+
<br>
|
42
|
+
<span exam-type="hearing-impaired" lang="fi-FI" data-editor-id="e-localization-inline" hidden="hidden">Lokalisaatio: FI KV (supports localization nesting)
|
43
|
+
<br>
|
44
|
+
</span>
|
45
|
+
</div>
|
46
|
+
<div lang="fi-FI" exam-type="visually-impaired" data-editor-id="e-localization-block">Lokalisaatio: FI NV
|
47
|
+
</div>
|
48
|
+
<div lang="fi-FI" exam-type="visually-impaired" data-editor-id="e-localization-block">Lokalisaatio: FI NV
|
49
|
+
</div>
|
50
|
+
<div lang="sv-FI" data-editor-id="e-localization-block" hidden="hidden">
|
51
|
+
<p>Lokalisaatio: SV only</p>
|
52
|
+
</div>
|
53
|
+
<div lang="sv-FI" exam-type="hearing-impaired" data-editor-id="e-localization-block" hidden="hidden">Lokalisaatio: SV KV
|
54
|
+
</div>
|
55
|
+
<div lang="sv-FI" exam-type="visually-impaired" data-editor-id="e-localization-block" hidden="hidden">Lokalisaatio: SV NV
|
56
|
+
</div>
|
57
|
+
<div exam-type="hearing-impaired" data-editor-id="e-localization-block" hidden="hidden">Lokalisaatio: KV only
|
58
|
+
</div>
|
59
|
+
<div exam-type="visually-impaired" data-editor-id="e-localization-block">Lokalisaatio: NV only
|
60
|
+
</div>
|
61
|
+
<div lang="sv-FI" data-editor-id="e-localization-block" hidden="hidden">
|
62
|
+
<table><tbody><tr><td>Testitaulukko</td></tr></tbody></table>
|
63
|
+
</div>
|
64
|
+
</e:answer-grading-instruction></div>`);
|
65
|
+
const valueSv = await getContent(page, `${ctx.url}/sv-FI/hearing-impaired/grading-instructions`);
|
66
|
+
expect(valueSv).toContain(`<div><e:answer-grading-instruction path="/e:exam/e:section/e:question/e:text-answer/e:answer-grading-instruction">
|
67
|
+
Normaali tekstikappale
|
68
|
+
<div data-editor-id="e-localization-block">Lokalisaatio: Ei attribuutteja</div>
|
69
|
+
<div lang="fi-FI" data-editor-id="e-localization-block" hidden="hidden">Lokalisaatio: FI only
|
70
|
+
<br>
|
71
|
+
<span exam-type="hearing-impaired" lang="fi-FI" data-editor-id="e-localization-inline" hidden="hidden">Lokalisaatio: FI KV (supports localization nesting)
|
72
|
+
<br>
|
73
|
+
</span>
|
74
|
+
</div>
|
75
|
+
<div lang="fi-FI" exam-type="visually-impaired" data-editor-id="e-localization-block" hidden="hidden">Lokalisaatio: FI NV
|
76
|
+
</div>
|
77
|
+
<div lang="fi-FI" exam-type="visually-impaired" data-editor-id="e-localization-block" hidden="hidden">Lokalisaatio: FI NV
|
78
|
+
</div>
|
79
|
+
<div lang="sv-FI" data-editor-id="e-localization-block">
|
80
|
+
<p>Lokalisaatio: SV only</p>
|
81
|
+
</div>
|
82
|
+
<div lang="sv-FI" exam-type="hearing-impaired" data-editor-id="e-localization-block">Lokalisaatio: SV KV
|
83
|
+
</div>
|
84
|
+
<div lang="sv-FI" exam-type="visually-impaired" data-editor-id="e-localization-block" hidden="hidden">Lokalisaatio: SV NV
|
85
|
+
</div>
|
86
|
+
<div exam-type="hearing-impaired" data-editor-id="e-localization-block">Lokalisaatio: KV only
|
87
|
+
</div>
|
88
|
+
<div exam-type="visually-impaired" data-editor-id="e-localization-block" hidden="hidden">Lokalisaatio: NV only
|
89
|
+
</div>
|
90
|
+
<div lang="sv-FI" data-editor-id="e-localization-block">
|
91
|
+
<table><tbody><tr><td>Testitaulukko</td></tr></tbody></table>
|
92
|
+
</div>
|
93
|
+
</e:answer-grading-instruction></div>`);
|
94
|
+
});
|
95
|
+
it('hides grading instruction localizations not belonging to the opened page', async () => {
|
96
|
+
const value = await getContent(page, `${ctx.url}/fi-FI/normal/grading-instructions`);
|
97
|
+
expect(value).toContain('<span exam-type="hearing-impaired" lang="fi-FI" data-editor-id="e-localization-inline" hidden="hidden">');
|
98
|
+
expect(value).toContain('<div lang="sv-FI" exam-type="visually-impaired" data-editor-id="e-localization-block" hidden="hidden">');
|
99
|
+
expect(value).toContain('<div lang="sv-FI" data-editor-id="e-localization-block" hidden="hidden">');
|
100
|
+
expect(value).toContain('<div lang="sv-FI" exam-type="hearing-impaired" data-editor-id="e-localization-block" hidden="hidden">');
|
101
|
+
expect(value).toContain('<div lang="sv-FI" exam-type="visually-impaired" data-editor-id="e-localization-block" hidden="hidden">');
|
102
|
+
});
|
103
|
+
it('grading instruction without localization is shown on all pages', async () => {
|
104
|
+
for (const lang of langs) {
|
105
|
+
for (const examType of examTypes) {
|
106
|
+
const value = await getContent(page, `${ctx.url}/${lang}/${examType}/grading-instructions`);
|
107
|
+
expect(value).toContain('Normaali tekstikappale');
|
108
|
+
}
|
109
|
+
}
|
110
|
+
});
|
111
|
+
it('grading instruction localization without any attributes is shown on all pages', async () => {
|
112
|
+
for (const lang of langs) {
|
113
|
+
for (const examType of examTypes) {
|
114
|
+
const value = await getContent(page, `${ctx.url}/${lang}/${examType}/grading-instructions`);
|
115
|
+
expect(value).toContain('Lokalisaatio: Ei attribuutteja');
|
116
|
+
}
|
117
|
+
}
|
118
|
+
});
|
119
|
+
it('grading instruction localization with language attribute shows instruction all pages to that language, regardless the exam type', async () => {
|
120
|
+
for (const examType of examTypes) {
|
121
|
+
const valueFi = await getContent(page, `${ctx.url}/fi-FI/${examType}/grading-instructions`);
|
122
|
+
expect(valueFi).toContain('Lokalisaatio: FI only');
|
123
|
+
const valueSv = await getContent(page, `${ctx.url}/sv-FI/${examType}/grading-instructions`);
|
124
|
+
expect(valueSv).toContain('Lokalisaatio: SV only');
|
125
|
+
}
|
126
|
+
});
|
127
|
+
it('grading instruction with exam type attribute shows instruction all pages to that exam type, regardless the language', async () => {
|
128
|
+
for (const lang of langs) {
|
129
|
+
const valueHi = await getContent(page, `${ctx.url}/${lang}/hearing-impaired/grading-instructions`);
|
130
|
+
expect(valueHi).toContain('Lokalisaatio: KV only');
|
131
|
+
const valueVi = await getContent(page, `${ctx.url}/${lang}/visually-impaired/grading-instructions`);
|
132
|
+
expect(valueVi).toContain('Lokalisaatio: NV only');
|
133
|
+
}
|
134
|
+
});
|
135
|
+
it('support multiple question grading instructions on the same question', async () => {
|
136
|
+
const values = await getContent(page, `${ctx.url}/fi-FI/normal/grading-instructions`, [
|
137
|
+
'.e-grading-instructions-question .e-answer-grading-instruction',
|
138
|
+
'.e-grading-instructions-question .e-answer-grading-instruction ~ .e-answer-grading-instruction',
|
139
|
+
'.e-grading-instructions-question .e-answer-grading-instruction ~ .e-answer-grading-instruction ~ .e-answer-grading-instruction'
|
140
|
+
]);
|
141
|
+
expect(values).toEqual([
|
142
|
+
'<div><e:question-grading-instruction path="/e:exam/e:section/e:question/e:question-grading-instruction[1]">1</e:question-grading-instruction></div>',
|
143
|
+
'<div><e:question-grading-instruction path="/e:exam/e:section/e:question/e:question-grading-instruction[2]">2</e:question-grading-instruction></div>',
|
144
|
+
'<div><e:question-grading-instruction path="/e:exam/e:section/e:question/e:question-grading-instruction[3]">3</e:question-grading-instruction></div>'
|
145
|
+
]);
|
146
|
+
});
|
147
|
+
async function getContent(page, url, selectors = ['.e-answer-grading-instruction:last-of-type']) {
|
148
|
+
await page.goto(url);
|
149
|
+
await page.waitForSelector('.e-answer-grading-instruction');
|
150
|
+
if (selectors.length == 1) {
|
151
|
+
return (0, puppeteerUtils_1.getInnerHtml)(page, `${selectors[0]}`);
|
152
|
+
}
|
153
|
+
return Promise.all(selectors.map(selector => (0, puppeteerUtils_1.getInnerHtml)(page, `${selector}`)));
|
154
|
+
}
|
155
|
+
});
|
156
|
+
//# sourceMappingURL=testEditableGradingInstructionLocalizations.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"testEditableGradingInstructionLocalizations.js","sourceRoot":"","sources":["../../__tests__/testEditableGradingInstructionLocalizations.ts"],"names":[],"mappings":"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"}
|