@digabi/exam-engine-rendering 22.0.2 → 22.0.4-alpha.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__/testEditableGradingInstruction.js +84 -20
- package/dist/__tests__/testEditableGradingInstruction.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 +86 -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/getPreviewWebpackConfig.d.ts.map +1 -1
- package/dist/getPreviewWebpackConfig.js +2 -1
- package/dist/getPreviewWebpackConfig.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/preview-edit.d.ts +2 -0
- package/dist/preview-edit.d.ts.map +1 -0
- package/dist/preview-edit.js +182 -0
- package/dist/preview-edit.js.map +1 -0
- package/dist/preview.js +14 -1
- package/dist/preview.js.map +1 -1
- package/package.json +5 -5
@@ -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":"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"}
|
@@ -14,12 +14,72 @@ describe('testEditableGradingInstruction.ts — Grading instruction editing', ()
|
|
14
14
|
afterAll(async () => {
|
15
15
|
await ctx.close();
|
16
16
|
});
|
17
|
+
describe('list', () => {
|
18
|
+
it('New bullet list can be added', async () => {
|
19
|
+
await openGradingInstructionsPage();
|
20
|
+
await focusOnEditor();
|
21
|
+
await page.click('.e-answer-grading-instruction [data-testid="editor-menu-add-bullet_list"]');
|
22
|
+
const value = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
23
|
+
expect(value).toContain(`<ul><li><p><br class="ProseMirror-trailingBreak"></p></li></ul>`);
|
24
|
+
});
|
25
|
+
it('New ordered list can be added', async () => {
|
26
|
+
await openGradingInstructionsPage();
|
27
|
+
await focusOnEditor();
|
28
|
+
await page.click('.e-answer-grading-instruction [data-testid="editor-menu-add-ordered_list"]');
|
29
|
+
const value = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
30
|
+
expect(value).toContain(`<ol><li><p><br class="ProseMirror-trailingBreak"></p></li></ol>`);
|
31
|
+
});
|
32
|
+
it('New list item can be added with enter', async () => {
|
33
|
+
await openGradingInstructionsPage();
|
34
|
+
await focusOnEditor();
|
35
|
+
await page.click('.e-answer-grading-instruction [data-testid="editor-menu-add-bullet_list"]');
|
36
|
+
await page.type('.e-answer-grading-instruction .ProseMirror li', 'foo');
|
37
|
+
await page.keyboard.press('Enter');
|
38
|
+
const value = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
39
|
+
expect(value).toContain(`<ul><li><p>foo</p></li><li><p><br class="ProseMirror-trailingBreak"></p></li></ul>`);
|
40
|
+
});
|
41
|
+
it('List can be splitted in half with double enter', async () => {
|
42
|
+
await openGradingInstructionsPage();
|
43
|
+
await focusOnEditor();
|
44
|
+
await page.click('.e-answer-grading-instruction [data-testid="editor-menu-add-bullet_list"]');
|
45
|
+
await page.type('.e-answer-grading-instruction .ProseMirror li', 'foo');
|
46
|
+
await page.keyboard.press('Enter');
|
47
|
+
await page.type('.e-answer-grading-instruction .ProseMirror li:nth-child(2)', 'bar');
|
48
|
+
await page.click('.e-answer-grading-instruction .ProseMirror li:nth-child(1)');
|
49
|
+
await page.keyboard.press('Enter');
|
50
|
+
await page.keyboard.press('Enter');
|
51
|
+
const value = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
52
|
+
expect(value).toContain(`<ul><li><p>foo</p></li></ul><p><br class="ProseMirror-trailingBreak"></p><ul><li><p>bar</p></li></ul>`);
|
53
|
+
});
|
54
|
+
it('Indentation can be changed with tab and shift-tab', async () => {
|
55
|
+
await openGradingInstructionsPage();
|
56
|
+
await focusOnEditor();
|
57
|
+
await page.click('.e-answer-grading-instruction [data-testid="editor-menu-add-bullet_list"]');
|
58
|
+
await page.type('.e-answer-grading-instruction .ProseMirror li', 'foo');
|
59
|
+
await page.keyboard.press('Enter');
|
60
|
+
await page.keyboard.press('Tab');
|
61
|
+
const valueTab = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
62
|
+
expect(valueTab).toContain(`<ul><li><p>foo</p><ul><li><p><br class="ProseMirror-trailingBreak"></p></li></ul></li></ul>`);
|
63
|
+
await page.keyboard.down('Shift');
|
64
|
+
await page.keyboard.press('Tab');
|
65
|
+
await page.keyboard.up('Shift');
|
66
|
+
const valueShiftTab = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
67
|
+
expect(valueShiftTab).toContain(`<ul><li><p>foo</p></li><li><p><br class="ProseMirror-trailingBreak"></p></li></ul>`);
|
68
|
+
});
|
69
|
+
});
|
17
70
|
describe('e:formula', () => {
|
18
71
|
it('New equation can be added', async () => {
|
19
72
|
await openGradingInstructionsPage();
|
20
73
|
await addEquation('\\sqrt{1}');
|
21
|
-
const value = await getInnerHtml('.e-answer-grading-instruction .ProseMirror');
|
22
|
-
expect(value).toContain(`<img alt="\\sqrt{1}" src="/math.svg?latex=${encodeURIComponent('\\sqrt{1}')}" contenteditable="false">`);
|
74
|
+
const value = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
75
|
+
expect(value).toContain(`<img alt="\\sqrt{1}" formula="true" src="/math.svg?latex=${encodeURIComponent('\\sqrt{1}')}" contenteditable="false">`);
|
76
|
+
});
|
77
|
+
it('New equation cannot be added if formula popup is already open', async () => {
|
78
|
+
await openGradingInstructionsPage();
|
79
|
+
await focusOnEditor();
|
80
|
+
expect(await getDisabledStatus(page, '.e-answer-grading-instruction [data-testid="add-formula"]')).toBeFalsy();
|
81
|
+
await addFormula();
|
82
|
+
expect(await getDisabledStatus(page, '.e-answer-grading-instruction [data-testid="add-formula"]')).toBeTruthy();
|
23
83
|
});
|
24
84
|
it('Equation can be deleted', async () => {
|
25
85
|
await openGradingInstructionsPage();
|
@@ -27,8 +87,8 @@ describe('testEditableGradingInstruction.ts — Grading instruction editing', ()
|
|
27
87
|
await openEquationEditor(`\\\\sqrt{1}`);
|
28
88
|
await page.click('[data-testid="e-popup-delete"]');
|
29
89
|
await page.click('[data-testid="e-popup-delete"]');
|
30
|
-
const value = await getInnerHtml('.e-answer-grading-instruction .ProseMirror');
|
31
|
-
expect(value).not.toContain('
|
90
|
+
const value = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
91
|
+
expect(value).not.toContain('src="/math.svg?latex=\\sqrt{1}"');
|
32
92
|
});
|
33
93
|
it('Added equation can be modified', async () => {
|
34
94
|
await openGradingInstructionsPage();
|
@@ -37,8 +97,8 @@ describe('testEditableGradingInstruction.ts — Grading instruction editing', ()
|
|
37
97
|
await openMathEquationEditor('\\\\sqrt{1}');
|
38
98
|
await replaceLatex('\\sqrt{2}');
|
39
99
|
await saveEquation();
|
40
|
-
const value = await getInnerHtml('.e-answer-grading-instruction .ProseMirror');
|
41
|
-
expect(value).toContain(`<img alt="\\sqrt{2}" src="/math.svg?latex=${encodeURIComponent('\\sqrt{2}')}" contenteditable="false">`);
|
100
|
+
const value = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
101
|
+
expect(value).toContain(`<img alt="\\sqrt{2}" formula="true" src="/math.svg?latex=${encodeURIComponent('\\sqrt{2}')}" contenteditable="false">`);
|
42
102
|
});
|
43
103
|
it('Changes can be cancelled', async () => {
|
44
104
|
await openGradingInstructionsPage();
|
@@ -47,8 +107,8 @@ describe('testEditableGradingInstruction.ts — Grading instruction editing', ()
|
|
47
107
|
await openMathEquationEditor('\\\\sqrt{1}');
|
48
108
|
await replaceLatex('\\sqrt{2}');
|
49
109
|
await page.click('[data-testid="e-popup-cancel"]');
|
50
|
-
const value = await getInnerHtml('.e-answer-grading-instruction .ProseMirror');
|
51
|
-
expect(value).toContain(`<img alt="\\sqrt{1}" src="/math.svg?latex=${encodeURIComponent('\\sqrt{1}')}" contenteditable="false">`);
|
110
|
+
const value = await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
111
|
+
expect(value).toContain(`<img alt="\\sqrt{1}" formula="true" src="/math.svg?latex=${encodeURIComponent('\\sqrt{1}')}" contenteditable="false">`);
|
52
112
|
});
|
53
113
|
it('Non-equation cannot be saved and error is shown', async () => {
|
54
114
|
await openGradingInstructionsPage();
|
@@ -56,8 +116,16 @@ describe('testEditableGradingInstruction.ts — Grading instruction editing', ()
|
|
56
116
|
await addFormula();
|
57
117
|
await page.type('.e-popup-content', 'text');
|
58
118
|
expect(await page.waitForSelector(`[data-testid="e-popup-save"]:disabled`)).toBeTruthy();
|
59
|
-
expect(await getInnerHtml('.e-popup-error')).toBe('Ainoastaan yksi kaava sallittu');
|
119
|
+
expect(await (0, puppeteerUtils_1.getInnerHtml)(page, '.e-popup-error')).toBe('Ainoastaan yksi kaava sallittu');
|
60
120
|
});
|
121
|
+
async function getDisabledStatus(page, selector) {
|
122
|
+
return page.$eval(selector, e => {
|
123
|
+
if (e instanceof HTMLButtonElement) {
|
124
|
+
return e.disabled;
|
125
|
+
}
|
126
|
+
throw new Error('Not a button');
|
127
|
+
});
|
128
|
+
}
|
61
129
|
async function replaceLatex(latex) {
|
62
130
|
await clearInput('.math-editor-latex-field');
|
63
131
|
await page.type('.math-editor-latex-field', latex);
|
@@ -87,13 +155,6 @@ describe('testEditableGradingInstruction.ts — Grading instruction editing', ()
|
|
87
155
|
await page.waitForSelector(`[data-testid="e-popup-save"]:not(:disabled)`);
|
88
156
|
await page.click('[data-testid="e-popup-save"]');
|
89
157
|
}
|
90
|
-
async function openGradingInstructionsPage() {
|
91
|
-
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
92
|
-
await page.goto(`${ctx.url}/fi-FI/normal/grading-instructions`);
|
93
|
-
}
|
94
|
-
async function focusOnEditor() {
|
95
|
-
await page.click(`.e-answer-grading-instruction .ProseMirror`);
|
96
|
-
}
|
97
158
|
async function addFormula() {
|
98
159
|
await page.click('.e-answer-grading-instruction [data-testid="add-formula"]');
|
99
160
|
}
|
@@ -103,10 +164,13 @@ describe('testEditableGradingInstruction.ts — Grading instruction editing', ()
|
|
103
164
|
await page.keyboard.press('KeyE');
|
104
165
|
await page.keyboard.up('Control');
|
105
166
|
}
|
106
|
-
async function getInnerHtml(selector) {
|
107
|
-
const element = await page.waitForSelector(selector);
|
108
|
-
return element.evaluate(el => el.innerHTML);
|
109
|
-
}
|
110
167
|
});
|
168
|
+
async function focusOnEditor() {
|
169
|
+
await page.click(`.e-answer-grading-instruction .ProseMirror`);
|
170
|
+
}
|
171
|
+
async function openGradingInstructionsPage() {
|
172
|
+
await (0, puppeteerUtils_1.loadExam)(page, ctx.url);
|
173
|
+
await page.goto(`${ctx.url}/fi-FI/normal/grading-instructions`);
|
174
|
+
}
|
111
175
|
});
|
112
176
|
//# sourceMappingURL=testEditableGradingInstruction.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testEditableGradingInstruction.js","sourceRoot":"","sources":["../../__tests__/testEditableGradingInstruction.ts"],"names":[],"mappings":";;AAAA,iEAAuD;AACvD,yEAA2E;AAE3E,
|
1
|
+
{"version":3,"file":"testEditableGradingInstruction.js","sourceRoot":"","sources":["../../__tests__/testEditableGradingInstruction.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"testEditableGradingInstructionLocalizations.d.ts","sourceRoot":"","sources":["../../__tests__/testEditableGradingInstructionLocalizations.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,86 @@
|
|
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 editing', () => {
|
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 getProseMirrorContent(page, `${ctx.url}/fi-FI/visually-impaired/grading-instructions`);
|
36
|
+
expect(valueFi).toContain('<p>Normaali tekstikappale <br> <span>Lokalisaatio: Ei attribuutteja <br></span> <span lang="fi-FI">Lokalisaatio: FI only <br> <span lang="fi-FI" exam-type="hearing-impaired" hidden="hidden">Lokalisaatio: FI KV (supports localization nesting) <br></span></span> <span lang="fi-FI" exam-type="visually-impaired">Lokalisaatio: FI NV <br></span> <span lang="fi-FI" exam-type="visually-impaired">Lokalisaatio: FI NV <br></span><br class="ProseMirror-trailingBreak"></p><div lang="sv-FI" hidden="hidden"><p>Lokalisaatio: SV only</p></div><p><span lang="sv-FI" exam-type="hearing-impaired" hidden="hidden">Lokalisaatio: SV KV <br></span> <span lang="sv-FI" exam-type="visually-impaired" hidden="hidden">Lokalisaatio: SV NV <br></span> <span exam-type="hearing-impaired" hidden="hidden">Lokalisaatio: KV only <br></span> <span exam-type="visually-impaired">Lokalisaatio: NV only <br></span><br class="ProseMirror-trailingBreak"></p><div lang="sv-FI" hidden="hidden"><table><tbody><tr><td>Testitaulukko</td></tr></tbody></table></div>');
|
37
|
+
const valueSv = await getProseMirrorContent(page, `${ctx.url}/sv-FI/hearing-impaired/grading-instructions`);
|
38
|
+
expect(valueSv).toContain('<p>Normaali tekstikappale <br> <span>Lokalisaatio: Ei attribuutteja <br></span> <span lang="fi-FI" hidden="hidden">Lokalisaatio: FI only <br> <span lang="fi-FI" exam-type="hearing-impaired" hidden="hidden">Lokalisaatio: FI KV (supports localization nesting) <br></span></span> <span lang="fi-FI" exam-type="visually-impaired" hidden="hidden">Lokalisaatio: FI NV <br></span> <span lang="fi-FI" exam-type="visually-impaired" hidden="hidden">Lokalisaatio: FI NV <br></span><br class="ProseMirror-trailingBreak"></p><div lang="sv-FI"><p>Lokalisaatio: SV only</p></div><p><span lang="sv-FI" exam-type="hearing-impaired">Lokalisaatio: SV KV <br></span> <span lang="sv-FI" exam-type="visually-impaired" hidden="hidden">Lokalisaatio: SV NV <br></span> <span exam-type="hearing-impaired">Lokalisaatio: KV only <br></span> <span exam-type="visually-impaired" hidden="hidden">Lokalisaatio: NV only <br></span><br class="ProseMirror-trailingBreak"></p><div lang="sv-FI"><table><tbody><tr><td>Testitaulukko</td></tr></tbody></table></div>');
|
39
|
+
});
|
40
|
+
it('hides grading instruction localizations not belonging to the opened page', async () => {
|
41
|
+
const value = await getProseMirrorContent(page, `${ctx.url}/fi-FI/normal/grading-instructions`);
|
42
|
+
expect(value).toContain('<span lang="fi-FI" exam-type="hearing-impaired" hidden="hidden">');
|
43
|
+
expect(value).toContain('<span lang="fi-FI" exam-type="visually-impaired" hidden="hidden">');
|
44
|
+
expect(value).toContain('<div lang="sv-FI" hidden="hidden">');
|
45
|
+
expect(value).toContain('<span lang="sv-FI" exam-type="hearing-impaired" hidden="hidden">');
|
46
|
+
expect(value).toContain('<span lang="sv-FI" exam-type="visually-impaired" hidden="hidden">');
|
47
|
+
});
|
48
|
+
it('grading instruction without localization is shown on all pages', async () => {
|
49
|
+
for (const lang of langs) {
|
50
|
+
for (const examType of examTypes) {
|
51
|
+
const value = await getProseMirrorContent(page, `${ctx.url}/${lang}/${examType}/grading-instructions`);
|
52
|
+
expect(value).toContain('Normaali tekstikappale');
|
53
|
+
}
|
54
|
+
}
|
55
|
+
});
|
56
|
+
it('grading instruction localization without any attributes is shown on all pages', async () => {
|
57
|
+
for (const lang of langs) {
|
58
|
+
for (const examType of examTypes) {
|
59
|
+
const value = await getProseMirrorContent(page, `${ctx.url}/${lang}/${examType}/grading-instructions`);
|
60
|
+
expect(value).toContain('Lokalisaatio: Ei attribuutteja');
|
61
|
+
}
|
62
|
+
}
|
63
|
+
});
|
64
|
+
it('grading instruction localization with language attribute shows instruction all pages to that language, regardless the exam type', async () => {
|
65
|
+
for (const examType of examTypes) {
|
66
|
+
const valueFi = await getProseMirrorContent(page, `${ctx.url}/fi-FI/${examType}/grading-instructions`);
|
67
|
+
expect(valueFi).toContain('Lokalisaatio: FI only');
|
68
|
+
const valueSv = await getProseMirrorContent(page, `${ctx.url}/sv-FI/${examType}/grading-instructions`);
|
69
|
+
expect(valueSv).toContain('Lokalisaatio: SV only');
|
70
|
+
}
|
71
|
+
});
|
72
|
+
it('grading instruction with exam type attribute shows instruction all pages to that exam type, regardless the language', async () => {
|
73
|
+
for (const lang of langs) {
|
74
|
+
const valueHi = await getProseMirrorContent(page, `${ctx.url}/${lang}/hearing-impaired/grading-instructions`);
|
75
|
+
expect(valueHi).toContain('Lokalisaatio: KV only');
|
76
|
+
const valueVi = await getProseMirrorContent(page, `${ctx.url}/${lang}/visually-impaired/grading-instructions`);
|
77
|
+
expect(valueVi).toContain('Lokalisaatio: NV only');
|
78
|
+
}
|
79
|
+
});
|
80
|
+
async function getProseMirrorContent(page, url) {
|
81
|
+
await page.goto(url);
|
82
|
+
await page.waitForSelector('.e-answer-grading-instruction .ProseMirror');
|
83
|
+
return (0, puppeteerUtils_1.getInnerHtml)(page, '.e-answer-grading-instruction .ProseMirror');
|
84
|
+
}
|
85
|
+
});
|
86
|
+
//# sourceMappingURL=testEditableGradingInstructionLocalizations.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"testEditableGradingInstructionLocalizations.js","sourceRoot":"","sources":["../../__tests__/testEditableGradingInstructionLocalizations.ts"],"names":[],"mappings":"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"}
|