Files
eatvio_app/test/features/diary/presentation/diary_edit_access_test.dart

60 lines
1.7 KiB
Dart

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 today and yesterday stay editable', () {
expect(canEdit(isDiaryFinished: true, diaryDate: '2026-09-30'), isTrue);
expect(canEdit(isDiaryFinished: true, diaryDate: '2026-09-29'), isTrue);
});
test('finished days older than yesterday stay read-only', () {
expect(canEdit(isDiaryFinished: true, diaryDate: '2026-09-28'), 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);
});
}