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:
1 parent
b556a459bb
commit
07d36f64e9
2 files changed
+60
-11
No files matched your search
@@ -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', () => {
|
||||
|
||||
Reference in new issue
Block a user