Kundenansicht neu (Aufträge): Aufträge mit Rückfrage vor den übrigen laufenden, nie hinter "Ältere Aufträge anzeigen"

sortiereAuftraege stellt unter den laufenden Aufträgen die mit Rückfrage (braucheInfo) nach vorn, danach
wie bisher die jüngste Aktivität, dann die Reihenfolge des Servers. Erledigte und Stornierte bleiben dahinter.
Tests: Reihenfolge mit Rückfragen und Gruppierung (die Rückfrage mit der ältesten Aktivität bleibt sichtbar).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-17 15:47:21 +00:00
1 parent 6bfcaa892c
commit 14dc2ad1bf
2 files changed
+37 -3

No files matched your search

+33
View File
@@ -69,6 +69,39 @@ test('Reihenfolge: laufende zuerst (letzte Aktivität), dann erledigte (neueste
assert.deepEqual(nummern(liste), ['1', '2', '3', '4', '5', '6', '7', '8'], 'die Eingabe bleibt unverändert')
})
test('Reihenfolge: Aufträge mit Rückfrage stehen vor den übrigen laufenden (auch wenn sie am ältesten sind), unter sich nach Aktivität; erledigte bleiben dahinter', () => {
const liste = [
auftrag(1, 'arbeit', '2026-10-14T00:00:00Z'),
auftrag(2, 'wartet', '2026-09-01T00:00:00Z', [eintrag('2026-09-05', 'alt')]),
auftrag(3, 'neu', '2026-10-13T00:00:00Z'),
auftrag(4, 'fertig', '2026-10-15T00:00:00Z'),
auftrag(5, 'wartet', '2026-09-20T00:00:00Z', [eintrag('2026-10-02', 'etwas neuer')]),
auftrag(6, 'pause', '2026-10-12T00:00:00Z'),
auftrag(7, 'pruefung', '2026-10-11T00:00:00Z'),
auftrag(8, 'storniert', '2026-10-16T00:00:00Z'),
auftrag(9, 'arbeit', '2026-10-10T00:00:00Z'),
]
assert.deepEqual(nummern(sortiereAuftraege(liste)), ['5', '2', '1', '3', '6', '7', '9', '4', '8'])
// ohne Rückfrage ändert sich nichts an der alten Regel (Aktivität, dann Serverreihenfolge)
assert.deepEqual(nummern(sortiereAuftraege(liste.filter((a) => !braucheInfo(a)))), ['1', '3', '6', '7', '9', '4', '8'])
})
test('Gruppierung: eine Rückfrage verschwindet nie hinter „Ältere Aufträge anzeigen“, auch wenn sie die älteste Aktivität hat', () => {
const laufend = Array.from({ length: 6 }, (_, i) => auftrag(200 + i, 'arbeit', `2026-10-0${i + 3}T00:00:00Z`))
const rueckfrage = auftrag(300, 'wartet', '2026-08-01T00:00:00Z', [eintrag('2026-08-02', 'sehr alt')])
const zweite = auftrag(301, 'wartet', '2026-07-01T00:00:00Z')
const g = gruppiereAuftraege([...laufend, rueckfrage, zweite])
assert.deepEqual(nummern(g.sichtbar.slice(0, 2)), ['300', '301'])
assert.equal(g.sichtbar.length, 5)
assert.ok(nummern(g.sichtbar).includes('300') && nummern(g.sichtbar).includes('301'))
assert.ok(g.aeltere.every((a) => !braucheInfo(a)))
// mehr Rückfragen als Plätze: die mit der jüngsten Aktivität stehen vorn, der Rest gehört in „älter“ (kein Auftrag geht verloren)
const viele = Array.from({ length: 7 }, (_, i) => auftrag(400 + i, 'wartet', `2026-10-0${i + 1}T00:00:00Z`))
const g2 = gruppiereAuftraege(viele)
assert.deepEqual(nummern(g2.sichtbar), ['406', '405', '404', '403', '402'])
assert.deepEqual(nummern(g2.aeltere), ['401', '400'])
})
test('Reihenfolge: bei gleicher Aktivität bleibt die Reihenfolge des Servers', () => {
const liste = ['9', '8', '7'].map((n) => auftrag(n, 'arbeit', '2026-10-10T00:00:00Z'))
assert.deepEqual(nummern(sortiereAuftraege(liste)), ['9', '8', '7'])