test: validate UX foundation runtime integration

This commit is contained in:
Masterluke77
2026-07-11 02:57:48 +02:00
parent 2cdc409e8d
commit 1580417f8a
+6 -4
View File
@@ -3,7 +3,7 @@ import { resolve } from 'node:path';
const root = resolve(process.cwd());
const read = path => readFileSync(resolve(root, path), 'utf8');
const index = read('public/index.html');
const runtime = read('public/design-system/theme-runtime.js');
const css = read('public/ux-foundation.css');
const js = read('public/ux-foundation.js');
const pkg = JSON.parse(read('package.json'));
@@ -11,8 +11,9 @@ const pkg = JSON.parse(read('package.json'));
const failures = [];
const assert = (condition, message) => { if (!condition) failures.push(message); };
assert(index.includes('ux-foundation.css'), 'UX-Foundation-Stylesheet ist nicht in public/index.html eingebunden.');
assert(index.includes('ux-foundation.js'), 'UX-Foundation-Script ist nicht in public/index.html eingebunden.');
assert(runtime.includes('/ux-foundation.css?v=1.44.0'), 'UX-Foundation-Stylesheet wird nicht über den stabilen Theme-Runtime-Pfad geladen.');
assert(runtime.includes('/ux-foundation.js?v=1.44.0'), 'UX-Foundation-Script wird nicht über den stabilen Theme-Runtime-Pfad geladen.');
assert(runtime.includes("window.addEventListener('load', loadBehavior"), 'UX-Verhalten startet nicht nach der bestehenden App-Initialisierung.');
assert(pkg.scripts?.['verify:ux-foundation'] === 'node tools/verify-ux-foundation-1.44.0.mjs', 'npm-Script verify:ux-foundation fehlt oder ist falsch.');
assert(String(pkg.scripts?.['verify:all'] || '').includes('verify:ux-foundation'), 'verify:all enthält das UX-Foundation-Gate nicht.');
@@ -26,6 +27,7 @@ for (const tab of ['dashboard', 'today', 'generator', 'history', 'publish', 'inv
assert(js.includes('aria-current'), 'Aktive Navigation wird nicht über aria-current ausgezeichnet.');
assert(js.includes('MutationObserver'), 'Kontexttitel reagieren nicht auf Ansichtswechsel.');
assert(js.includes('data-ux-target'), 'Kontextbezogene Schnellaktionen fehlen.');
assert(js.includes("localStorage.setItem('vendoo_ux_system_nav_open'"), 'Zustand der Systemnavigation wird nicht benutzerfreundlich gespeichert.');
assert(!js.includes('onclick='), 'Inline-Eventhandler sind im UX-Script unzulässig.');
assert(!js.includes('innerHTML +=') && !js.includes('outerHTML'), 'Unsichere DOM-Erweiterung im UX-Script erkannt.');
@@ -41,4 +43,4 @@ if (failures.length) {
process.exit(1);
}
console.log('[UX-FOUNDATION] Navigation, Dashboard-Reduktion, Kontextführung, Responsive-Vertrag und Accessibility-Gates sind vollständig.');
console.log('[UX-FOUNDATION] Navigation, Dashboard-Reduktion, Kontextführung, Runtime-Integration, Responsive-Vertrag und Accessibility-Gates sind vollständig.');