Öffnungszeiten: Team-Panel, Ersatz-HTML und Rechtliches-Karte

Panel unter der Zeile Öffnungszeiten live (Header-Selektor, Kontakt-/Hinweis-Leiste aus, Speichern mit teamVersion,
Ersatz-HTML kopieren je Plan), Meldung zum Ersatz-Ticket nach dem Abschalten, Hindernis an aktionen, Statustext der Zeiten,
Team-API (GET ersatz, PATCH team), Karte Leistungsbeschreibung Öffnungszeiten live in setup-legal (Schlüssel höchstens 36 Zeichen).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-05 07:12:04 +00:00
1 parent 994347408d
commit 3d67aa88cf
10 files changed
+498 -6

No files matched your search

+19
View File
@@ -125,3 +125,22 @@ test('401 des Portals: einmal mit frischem JWT wiederholen; scheitert dann creat
assert.deepEqual(await retry.api('/uebersicht'), { ok: true })
assert.deepEqual(retry.calls.map((c) => c.init.headers.Authorization), ['Bearer jwt-1', 'Bearer jwt-2'])
})
test('Fehlercode und Feldmeldungen des Portals bleiben am Fehler (409 ZEITEN_VERALTET, 400 mit fehler)', async () => {
const { api } = client({
responses: [
reply(409, { error: 'Inzwischen geändert – bitte neu laden.', code: 'ZEITEN_VERALTET' }),
reply(400, { error: 'Bitte prüfen.', fehler: { navSelektor: 'zu lang' } }),
reply(409, { error: 'nur Text' }),
],
})
const veraltet = await fails(api('/x', { method: 'PATCH', body: {} }))
assert.equal(veraltet.status, 409)
assert.equal(veraltet.code, 'ZEITEN_VERALTET')
const ungueltig = await fails(api('/x', { method: 'PATCH', body: {} }))
assert.equal(ungueltig.status, 400)
assert.deepEqual(ungueltig.fehler, { navSelektor: 'zu lang' })
const ohne = await fails(api('/x'))
assert.equal(ohne.code, undefined)
assert.equal(ohne.fehler, undefined)
})