All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 1m28s
49 lines
2.3 KiB
JavaScript
49 lines
2.3 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { readFile } from 'node:fs/promises';
|
|
|
|
test('leerkracht bouwt visueel een reeks en geeft die in één actie aan meerdere doelgroepen', async () => {
|
|
const [cast, admin, css, core, ...wordWidgets] = await Promise.all([
|
|
readFile('public/js/cast.js', 'utf8'),
|
|
readFile('public/js/admin.js', 'utf8'),
|
|
readFile('public/css/teach.css', 'utf8'),
|
|
readFile('public/js/core.js', 'utf8'),
|
|
readFile('public/js/widgets/letters.js', 'utf8'),
|
|
readFile('public/js/widgets/flits.js', 'utf8'),
|
|
readFile('public/js/widgets/hak.js', 'utf8'),
|
|
readFile('public/js/widgets/ball.js', 'utf8'),
|
|
]);
|
|
|
|
assert.match(cast, /castShareKind\s*=\s*"path"/);
|
|
assert.match(cast, /castSelectedTargets\s*=\s*new Set/);
|
|
assert.match(cast, /assignmentLibraryWidgets\(\)[\s\S]*REGISTRY\.filter/);
|
|
assert.match(cast, /castThemeCatalog[\s\S]*languageThemeList[\s\S]*THEMES\[LANG\]/);
|
|
assert.match(cast, /cast-widget-card/);
|
|
assert.match(cast, /castPathSteps\.push/);
|
|
assert.match(cast, /slice\(0,12-castPathSteps\.length\)/);
|
|
assert.match(cast, /widgetType:step\.widgetType[\s\S]*theme:castThemePayload/);
|
|
assert.doesNotMatch(cast, /currentBoardWidgets/);
|
|
assert.match(cast, /castPupilCoveredByClass/);
|
|
assert.match(cast, /Promise\.allSettled\(targets\.map/);
|
|
assert.match(cast, /castSendSelected/);
|
|
|
|
assert.match(admin, /assignment-composer-cta[\s\S]*btnCast/);
|
|
assert.match(css, /cast-widget-grid[\s\S]*cast-path-step[\s\S]*cast-target-grid/);
|
|
assert.match(css, /cast-sendbar\{position:sticky/);
|
|
assert.match(css, /@media \(max-width:700px\)[\s\S]*cast-composer-sheet/);
|
|
for (const widget of wordWidgets) {
|
|
assert.match(widget, /assignmentWords/);
|
|
assert.match(widget, /assignmentThemeName/);
|
|
assert.match(widget, /srcSel\.disabled=true/);
|
|
}
|
|
|
|
for (const key of [
|
|
'castIntro', 'castLibrarySubtitle', 'castKindPath', 'castLiveStateHint',
|
|
'castWidgetLibrary', 'castSequenceOrder', 'castTheme', 'castThemeNone',
|
|
'castBuiltInThemes', 'castOwnThemes', 'castIndependentStep',
|
|
'castAudienceTitle', 'castSelectVisible', 'castSend', 'castSent',
|
|
'castNeedPath', 'castNeedTarget', 'castOpenComposer',
|
|
]) {
|
|
assert.equal(core.split(`${key}:`).length - 1, 2, `${key} moet tweetalig zijn`);
|
|
}
|
|
});
|