Hinweis 05-1: Fehler lesen
Stufe 1: Denkfrage
Test C02-M5-01 sagt "expected false to be true" für ein Follow-up am 10. März, wenn heute
der 15. März ist. Lies isOverdue: Welche Teile der beiden Daten werden verglichen? Schreib
"2026-03-10".slice(0, 7) von Hand auf.
Stufe 2: Teilbeispiel
"2026-03-10".slice(0, 7) ist "2026-03". "2026-03-15".slice(0, 7) ist auch "2026-03".
"2026-03" < "2026-03" ist falsch. Der Tag fehlt im Vergleich. In Mission 3 lagen alle
überfälligen Testdaten in anderen Monaten, deshalb fiel es nicht auf.
Für den zweiten Fehler: leads.sort(...) sortiert das Original. Und a > b ? 1 : 0 sagt nie
"a kommt vor b" (das wäre -1).
Stufe 3: Konkrete Erklärung
isOverdue: Vergleiche die ganzen Strings, lead.nextFollowUp < today. Das funktioniert,
weil das Format YYYY-MM-DD so gebaut ist, dass die Textreihenfolge der Datumsreihenfolge
entspricht. sortByFollowUp: Erst kopieren ([...leads]), dann sortieren; im Vergleich
beide null-Fälle behandeln und sonst a.nextFollowUp.localeCompare(b.nextFollowUp)
zurückgeben. Das liefert -1, 0 oder 1 und ist stabil für gleiche Daten.