From b93c8ff77b5fcdbc2a1a1d0c5f979bea0e5d70da Mon Sep 17 00:00:00 2001 From: Vadim <44135514+vodemn@users.noreply.github.com> Date: Thu, 21 Aug 2025 15:02:55 +0200 Subject: [PATCH] cover cascade deletion --- integration_test/logbook_test.dart | 33 +++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/integration_test/logbook_test.dart b/integration_test/logbook_test.dart index 922202f..ef3a5c8 100644 --- a/integration_test/logbook_test.dart +++ b/integration_test/logbook_test.dart @@ -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(S.current.apertureValue, 'f/5.6'); await tester.openPickerAndSelect(S.current.shutterSpeedValue, '1/125'); - await tester.openPickerAndSelect(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(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(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(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);