Kontrolle: Abschnitt Aufträge lädt auch bei ausgefallenen Projektkonten

Scheitert getProjektkonten, wird die Auftragsliste trotzdem geholt; kommt sie, bleibt der
Abschnitt bedienbar und der Fehler der Projekte steht eigens daneben.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-07 15:18:03 +00:00
1 parent b556a459bb
commit 07d36f64e9
2 files changed
+60 -11

No files matched your search

+31 -3
View File
@@ -72,11 +72,39 @@ test('Aufträge scheitern allein: die Projektkonten bleiben, der Fehler steht ei
assert.equal(AUFTRAEGE_FEHLER, 'Die Aufträge konnten nicht geladen werden.')
})
test('Projektkonten scheitern: der Fehler geht weiter, die Aufträge werden nicht abgerufen', async () => {
test('Projektkonten scheitern, Aufträge laden: der Abschnitt Aufträge bleibt bedienbar, der Konten-Fehler steht eigens da', async () => {
const fehler = Object.assign(new Error('Interner Fehler.'), { status: 500 })
const api = fakeApi({ projektkonten: fehler, auftraege: { auftraege: [] } })
const liste = [{ id: 'a1', nummer: 'AB-2026-0001', status: 'versendet' }]
const api = fakeApi({ projektkonten: fehler, auftraege: { auftraege: liste } })
const result = await ladeAuftraegeAnsicht('k1', api)
assert.deepEqual(api.calls, [['konten', 'k1'], ['auftraege', 'k1']])
assert.deepEqual(result, { konten: {}, kontenFehler: 'Interner Fehler.', auftraege: liste, auftraegeFehler: '' })
const ohneText = await ladeAuftraegeAnsicht('k1', fakeApi({ projektkonten: new Error(''), auftraege: { auftraege: liste } }))
assert.equal(ohneText.kontenFehler, KONTEN_FEHLER)
})
test('Projektkonten und Aufträge scheitern: der Fehler der Projektkonten geht weiter (Schalter aus gibt 404)', async () => {
const fehler = Object.assign(new Error('Interner Fehler.'), { status: 500 })
const api = fakeApi({ projektkonten: fehler, auftraege: Object.assign(new Error('Nicht gefunden.'), { status: 404 }) })
await assert.rejects(ladeAuftraegeAnsicht('k1', api), (e) => e === fehler)
assert.deepEqual(api.calls, [['konten', 'k1']])
assert.deepEqual(api.calls, [['konten', 'k1'], ['auftraege', 'k1']])
})
test('ansichtsZustand: Projekte-Fehler mit geladenen Aufträgen – Projekte „fehler“, Aufträge „bereit“', () => {
const liste = [{ id: 'a1' }]
const z = ansichtsZustand({ data: { konten: {}, kontenFehler: 'Interner Fehler.', auftraege: liste, auftraegeFehler: '' }, error: '' })
assert.equal(z.projekteStatus, 'fehler')
assert.equal(z.fehler, 'Interner Fehler.')
assert.equal(z.auftraegeAktiv, true) // der Server hat die Liste geliefert, der Schalter ist also an
assert.equal(z.auftraegeStatus, 'bereit')
assert.deepEqual(z.auftraege, liste)
assert.deepEqual(z.konten, [])
assert.equal(z.nachladeFehler, '')
// scheitert auch ein späteres Neuladen, steht dessen Meldung im Fehlerkasten; die Aufträge bleiben stehen
const spaeter = ansichtsZustand({ data: { konten: {}, kontenFehler: 'Interner Fehler.', auftraege: liste, auftraegeFehler: '' }, error: 'Netz weg' })
assert.equal(spaeter.projekteStatus, 'fehler')
assert.equal(spaeter.fehler, 'Netz weg')
assert.equal(spaeter.auftraegeStatus, 'bereit')
})
test('ansichtsZustand: vor der ersten Antwort „laden“, nach einem Fehler „fehler“ mit der Meldung', () => {