Initial commit: CookIT recipe collection and week planner

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
CedricandClaude Opus 5.5 committed 2026-10-28 22:55:09 +01:00
commit 7d7a0bc60b
173 files changed
+22803

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
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.');
});
}