package de.marha.planer import de.marha.planer.data.Dates import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test class DatesTest { @Test fun monthGridStartsMondayBefore() { val grid = Dates.monthGrid(2026, 9) assertEquals(42, grid.size) assertEquals("2026-08-31", grid[0]) assertEquals("2026-06-01", Dates.monthGrid(2026, 6)[0]) } @Test fun weekStartsMonday() { assertEquals("2026-09-14", Dates.startOfWeek("2026-09-17")) assertEquals("2026-09-14", Dates.startOfWeek("2026-09-20")) assertEquals("2026-09-14", Dates.startOfWeek("2026-09-14")) assertEquals(7, Dates.weekDays("2026-09-17").size) } @Test fun isoWeek() { assertEquals(38, Dates.isoWeek("2026-09-17")) assertEquals(53, Dates.isoWeek("2027-01-01")) } @Test fun formats() { assertEquals("Do, 17.09.2026", Dates.formatDate("2026-09-17")) assertEquals("17.09.", Dates.formatDayMonth("2026-09-17")) assertEquals("September 2026", Dates.formatMonth(2026, 9)) assertEquals(90, Dates.timeToMinutes("01:30")) assertEquals("01:30", Dates.minutesToTime(90)) } // Gleiches Format wie die Extension, damit sich Zeitstempel als Strings vergleichen lassen @Test fun nowIsoHasMillisAndZ() { assertTrue(Regex("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$").matches(Dates.nowIso())) } }