Hinweis 05-1: Fehler lesen

Stufe 1 zuerst lesen, dann selbst probieren. Die nächste Stufe erst, wenn du nach zwei Versuchen feststeckst.

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.

Zurück zu Mission 5: Fehler finden und Zugriff prüfen