cover cascade deletion

This commit is contained in:
Vadim 2025-08-21 15:02:55 +02:00
parent 357ee76937
commit b93c8ff77b

View file

@ -3,6 +3,8 @@ import 'package:flutter_test/flutter_test.dart';
import 'package:lightmeter/data/models/ev_source_type.dart';
import 'package:lightmeter/data/shared_prefs_service.dart';
import 'package:lightmeter/generated/l10n.dart';
import 'package:lightmeter/res/dimens.dart';
import 'package:lightmeter/screens/logbook_photo_edit/components/picker_list_tile/widget_list_tile_picker.dart';
import 'package:lightmeter/screens/logbook_photo_edit/screen_logbook_photo_edit.dart';
import 'package:lightmeter/screens/logbook_photos/components/grid_tile/widget_grid_tile_logbook_photo.dart';
import 'package:lightmeter/screens/settings/components/shared/dialog_picker/widget_dialog_picker.dart';
@ -61,7 +63,15 @@ void testLogbook(String description) {
await tester.pumpAndSettle();
await tester.openPickerAndSelect<ApertureValue>(S.current.apertureValue, 'f/5.6');
await tester.openPickerAndSelect<ShutterSpeedValue>(S.current.shutterSpeedValue, '1/125');
await tester.openPickerAndSelect<EquipmentProfile>(S.current.equipmentProfile, S.current.notSet);
expect(
find.descendant(
of: find.byWidgetPredicate(
(widget) => widget is PickerListTile && widget.title == S.current.equipmentProfile,
),
matching: find.text(mockEquipmentProfiles.first.name),
),
findsOneWidget,
);
await tester.openPickerAndSelect<Film>(S.current.film, S.current.notSet);
await tester.pumpAndSettle();
@ -82,11 +92,32 @@ void testLogbook(String description) {
/// Verify that only one photo is present
expect(find.byType(LogbookPhotoGridTile), findsOneWidget);
/// Got back and delete the equipment profile used to take the first picture
await tester.navigatorPop();
await tester.tapDescendantTextOf<SettingsScreen>(S.current.equipmentProfiles);
await tester.tap(find.byIcon(Icons.edit_outlined).first);
await tester.pumpAndSettle();
await tester.tap(find.byIcon(Icons.delete_outlined));
await tester.pumpAndSettle(Dimens.durationML);
expect(find.text(mockEquipmentProfiles[0].name), findsNothing);
expect(find.text(mockEquipmentProfiles[1].name), findsOneWidget);
await tester.navigatorPop();
/// Open photo again
await tester.tapDescendantTextOf<SettingsScreen>(S.current.logbook);
await tester.tap(find.byType(LogbookPhotoGridTile).first);
await tester.pumpAndSettle();
/// Verify the edits were saved
expect(
find.descendant(
of: find.byWidgetPredicate(
(widget) => widget is PickerListTile && widget.title == S.current.equipmentProfile,
),
matching: find.text(S.current.notSet),
),
findsOneWidget,
);
expect(find.text('Test note'), findsOneWidget);
expect(find.text('f/5.6'), findsOneWidget);
expect(find.text('1/125'), findsOneWidget);