Shop Review A M2: Bestellaktionen, Erstattung und Widerruf erledigt auch bei abgeschaltetem Shop

Die Routen aktion, erstatten und widerrufe/erledigt akzeptieren jetzt auch den Zustand disabled; Einstellungen, Artikel und Oeffnen bleiben gesperrt. Die Oberflaeche laesst Bestellungen und Widerrufe bei abgeschaltetem Shop bearbeitbar (ctx.abwickeln), der Hinweis nennt es.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-05 09:37:29 +00:00
1 parent 21805c9a93
commit c6706f88ff
6 files changed
+42 -15

No files matched your search

+10 -2
View File
@@ -39,9 +39,9 @@ const widerruf = (nr, extra = {}) => ({
/** Fake-Server: jede Anfrage geht an route(aufruf) ⇒ { status, body }; Standard 200 {}. */
const starte = (route) => installFakeDom({ antworten: Array.from({ length: 60 }, () => route) })
function baueCtx({ nurLesen = false } = {}) {
function baueCtx({ nurLesen = false, abwickeln } = {}) {
const ctx = {
projectId: 'p1', status: { state: 'active' }, nurLesen, meldungen: [], aktuell: () => true, request,
projectId: 'p1', status: { state: 'active' }, nurLesen, ...(abwickeln ? { abwickeln } : {}), meldungen: [], aktuell: () => true, request,
zeigeMeldung: (text, art) => ctx.meldungen.push({ text, art }),
neuLaden: async () => ctx.status,
}
@@ -496,6 +496,14 @@ test('nurLesen: keine Aktionen, kein Erstatten, kein „erledigt“; Lesen und C
assert.equal(posts(fx).length, 0)
}))
test('abwickeln (Shop abgeschaltet): Aktionen, Erstatten und „erledigt“ bleiben, obwohl nurLesen gilt', mit(server(), async (fx) => {
const { panel } = await oeffneDetail(fx, { nurLesen: true, abwickeln: true })
assert.ok(aktion(fx, panel, 'versendet') || aktion(fx, panel, 'abgeschlossen') || fx.finde(panel, 'form[data-form="erstatten"]'))
await fx.klick(fx.finde(panel, '[data-ansicht="widerrufe"]'))
await fx.ruhe()
assert.ok(aktion(fx, panel, 'erledigt'))
}))
test('Antwort nach dem Wechsel des Reiters zeichnet nicht in das fremde Panel', mit(server(), async (fx) => {
const ctx = baueCtx()
const panel = h('div')