import 'package:cookit/src/planning/day.dart'; import 'package:cookit/src/planning/day_format.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:intl/date_symbol_data_local.dart'; void main() { setUpAll(() => initializeDateFormatting('de')); final friday = DateTime.utc(2026, 10, 23); test('weekStartOf honours the configured first weekday', () { expect(weekStartOf(friday, DateTime.monday), DateTime.utc(2026, 10, 19)); expect(weekStartOf(friday, DateTime.tuesday), DateTime.utc(2026, 10, 20)); expect(weekStartOf(friday, DateTime.friday), friday); expect(weekStartOf(friday, DateTime.saturday), DateTime.utc(2026, 10, 17)); }); test('days survive daylight saving time and storage', () { // Summer time ends in Germany on 25 Oct 2026. expect(addDays(DateTime.utc(2026, 10, 24), 2), DateTime.utc(2026, 10, 26)); expect(weekDays(DateTime.utc(2026, 10, 26)).last, DateTime.utc(2026, 11, 1)); expect(dayKey(friday), '2026-10-23'); expect(parseDayKey('2026-10-23'), friday); expect(dayOf(DateTime(2026, 10, 23, 23, 59)), friday); }); test('calendarWeek is the ISO week, also across the turn of the year', () { expect(calendarWeek(DateTime.utc(2026, 10, 19)), 43); expect(calendarWeek(DateTime.utc(2026, 10, 20)), 43); // a Tuesday-start week expect(calendarWeek(DateTime.utc(2026, 12, 28)), 53); expect(calendarWeek(DateTime.utc(2027, 1, 4)), 1); }); test('dayRange', () { expect(dayRange(DateTime.utc(2026, 10, 19), DateTime.utc(2026, 10, 25)), '19.–25. Okt.'); expect(dayRange(DateTime.utc(2026, 10, 26), DateTime.utc(2026, 11, 1)), '26. Okt. – 1. Nov.'); }); }