Kundenansicht neu P1: weiße Seite, Manifest und leere Ansichten für P2 und P3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-16 16:26:23 +00:00
1 parent 7595844170
commit 142aa6e9d6
15 files changed
+205 -25

No files matched your search

+2 -3
View File
@@ -66,10 +66,9 @@ test('neue Seite: HTML und Cache-Control no-cache; Query bleibt erhalten', async
const r = await rawGet('/dashboard.html?abo=success', { cookie: customerCookie('c1') })
assert.ok(istNeu(r)); assert.equal(r.headers.get('cache-control'), 'no-cache'); assert.match(r.headers.get('content-type'), /^text\/html/)
})
test('Platzhalter trägt beide Marker (N5) und die Hülle des Briefs', () => {
test('neue Seite trägt den Marker (N5) und die Hülle des Briefs', () => {
const html = readFileSync(path.join(publicDir, 'neu', 'dashboard.html'), 'utf8')
for (const teil of ['<meta name="kn-seite" content="neu">', '<body class="kn">', 'data-kn-platzhalter', 'id="kn-platzhalter-ansicht"', 'Kundenansicht neu', 'Platzhalter bis P1', '/api/auth/me']) assert.ok(html.includes(teil), teil)
assert.ok(!/<script[^>]*\btype=["']module/.test(html), 'klassisches Skript, kein Modul')
for (const teil of ['<meta name="kn-seite" content="neu">', '<body class="kn">', '<script type="module" src="/neu/huelle.js"></script>']) assert.ok(html.includes(teil), teil) // P1 ersetzt den Platzhalter aus P0 durch die weiße Hülle
})
test('Direktaufruf /neu/dashboard.html: Pilot ja, sonst 302 auf /dashboard.html', async () => {
stelle('pilot', [MAIL])