forked from eatvio/eatvio_app
60 lines
1.7 KiB
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);
|
|
});
|
|
}
|