import 'package:eatvio_app/features/diary/presentation/diary_edit_access.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { final now = DateTime(2026, 9, 30, 12); bool canEdit({ bool isConsultantView = false, bool isDiaryCommented = false, bool isDiaryFinished = false, int closed = 0, String diaryDate = '2026-09-28', }) { return canEditDiaryDay( isConsultantView: isConsultantView, isDiaryCommented: isDiaryCommented, isDiaryFinished: isDiaryFinished, closed: closed, diaryDate: diaryDate, now: now, ); } test('finished days inside the seven-day window stay editable', () { expect(canEdit(isDiaryFinished: true, diaryDate: '2026-09-30'), isTrue); expect(canEdit(isDiaryFinished: true, diaryDate: '2026-09-29'), isTrue); expect(canEdit(isDiaryFinished: true, diaryDate: '2026-09-23'), isTrue); }); test('finished days older than the seven-day window stay read-only', () { expect(canEdit(isDiaryFinished: true, diaryDate: '2026-09-22'), isFalse); }); test('commented days stay read-only inside the window', () { expect(canEdit(isDiaryCommented: true, diaryDate: '2026-09-30'), isFalse); expect( canEdit( isDiaryCommented: true, isDiaryFinished: true, diaryDate: '2026-09-29', ), isFalse, ); }); test('an open day outside the window stays editable', () { expect(canEdit(diaryDate: '2026-09-01'), isTrue); }); test('a closed flag blocks editing even inside the window', () { expect( canEdit(isDiaryFinished: true, closed: 1, diaryDate: '2026-09-30'), isFalse, ); }); test('consultant view stays read-only', () { expect(canEdit(isConsultantView: true, diaryDate: '2026-09-30'), isFalse); }); }