From a5f211ad4bb19c5d7f36194e3e887c6b8e4b3a09 Mon Sep 17 00:00:00 2001 From: Vadim <44135514+vodemn@users.noreply.github.com> Date: Wed, 10 Sep 2025 09:33:20 +0200 Subject: [PATCH] fixed integration tests --- integration_test/logbook_test.dart | 4 +-- .../metering_screen_layout_test.dart | 20 +++++++------- .../dialog_picker/widget_dialog_picker.dart | 17 ++++++------ pubspec.lock | 26 +++++++++---------- pubspec.yaml | 4 +-- 5 files changed, 35 insertions(+), 36 deletions(-) diff --git a/integration_test/logbook_test.dart b/integration_test/logbook_test.dart index b0465b6..d49e8db 100644 --- a/integration_test/logbook_test.dart +++ b/integration_test/logbook_test.dart @@ -173,7 +173,7 @@ void testLogbookEquipmentProfileChanges(String description) { ); _expectPickerListTileValue( S.current.apertureValue, - 'f/${mockPinholeEquipmentProfiles.first.aperture}', + ApertureValue(mockPinholeEquipmentProfiles.first.aperture, StopType.full).toString(), reason: 'Aperture value must be automatically set when selecting a pinhole profile', ); @@ -204,7 +204,7 @@ void testLogbookEquipmentProfileChanges(String description) { _expectPickerListTileValue( S.current.apertureValue, - 'f/${mockPinholeEquipmentProfiles[1].aperture}', + ApertureValue(mockPinholeEquipmentProfiles[1].aperture, StopType.full).toString(), reason: 'Aperture value must be updated when switching to a different pinhole profile', ); diff --git a/integration_test/metering_screen_layout_test.dart b/integration_test/metering_screen_layout_test.dart index 1d29f73..ae0f5f6 100644 --- a/integration_test/metering_screen_layout_test.dart +++ b/integration_test/metering_screen_layout_test.dart @@ -59,7 +59,7 @@ void testToggleLayoutFeatures(String description) { ); expectExtremeExposurePairs( 'f/1.0 - 1/320', - 'f/45 - 6"', + 'f/45 - 6s', reason: 'Aperture and shutter speed ranges must be reset to default values when equipment profile is reset', ); expectExposurePairsListItem( @@ -73,7 +73,7 @@ void testToggleLayoutFeatures(String description) { expectExposurePairsListItem( tester, 'f/45', - '6"', + '6s', reason: 'Aperture and shutter speed ranges must be reset to default values when equipment profile is reset.', ); @@ -92,10 +92,10 @@ void testToggleLayoutFeatures(String description) { (tester) async { await tester.pumpApplication(); await tester.takePhoto(); - expectExtremeExposurePairs('f/1.0 - 1/320', 'f/45 - 6"'); + expectExtremeExposurePairs('f/1.0 - 1/320', 'f/45 - 6s'); expectExposurePairsListItem(tester, 'f/1.0', '1/320'); await tester.scrollToTheLastExposurePair(); - expectExposurePairsListItem(tester, 'f/45', '6"'); + expectExposurePairsListItem(tester, 'f/45', '6s'); // Disable layout feature await tester.toggleLayoutFeature(S.current.meteringScreenFeatureExtremeExposurePairs); @@ -116,7 +116,7 @@ void testToggleLayoutFeatures(String description) { expectExposurePairsListItem( tester, 'f/45', - '6"', + '6s', reason: 'Exposure pairs list must not be affected by the visibility of the extreme exposure pairs container.', ); @@ -125,7 +125,7 @@ void testToggleLayoutFeatures(String description) { await tester.toggleLayoutFeature(S.current.meteringScreenFeatureExtremeExposurePairs); expectExtremeExposurePairs( 'f/1.0 - 1/320', - 'f/45 - 6"', + 'f/45 - 6s', reason: 'Exposure pairs list must not be affected by the visibility of the extreme exposure pairs container.', ); @@ -138,10 +138,10 @@ void testToggleLayoutFeatures(String description) { await tester.pumpApplication(selectedFilmId: mockFilms.first.id); await tester.takePhoto(); expectPickerTitle(mockFilms.first.name); - expectExtremeExposurePairs('f/1.0 - 1/320', 'f/45 - 12"'); + expectExtremeExposurePairs('f/1.0 - 1/320', 'f/45 - 12s'); expectExposurePairsListItem(tester, 'f/1.0', '1/320'); await tester.scrollToTheLastExposurePair(); - expectExposurePairsListItem(tester, 'f/45', '12"'); + expectExposurePairsListItem(tester, 'f/45', '12s'); // Disable layout feature await tester.toggleLayoutFeature(S.current.meteringScreenFeatureFilmPicker); @@ -153,7 +153,7 @@ void testToggleLayoutFeatures(String description) { ); expectExtremeExposurePairs( 'f/1.0 - 1/320', - 'f/45 - 6"', + 'f/45 - 6s', reason: 'Shutter speed must not be affected by reciprocity when film is discarded.', ); expectExposurePairsListItem( @@ -166,7 +166,7 @@ void testToggleLayoutFeatures(String description) { expectExposurePairsListItem( tester, 'f/45', - '6"', + '6s', reason: 'Shutter speed must not be affected by reciprocity when film is discarded.', ); diff --git a/lib/screens/settings/components/shared/dialog_picker/widget_dialog_picker.dart b/lib/screens/settings/components/shared/dialog_picker/widget_dialog_picker.dart index cd29825..b06732c 100644 --- a/lib/screens/settings/components/shared/dialog_picker/widget_dialog_picker.dart +++ b/lib/screens/settings/components/shared/dialog_picker/widget_dialog_picker.dart @@ -24,20 +24,19 @@ class DialogPicker extends StatefulWidget { } class _DialogPickerState extends State> { - late T _selected = widget.selectedValue; + T? _selected; final ScrollController _scrollController = ScrollController(); - bool _hasSelection = false; @override void initState() { super.initState(); - SchedulerBinding.instance.addPostFrameCallback((_) { - final selectedIndex = widget.values.indexOf(_selected); - if (selectedIndex >= 0) { + final selectedIndex = widget.values.indexOf(widget.selectedValue); + if (selectedIndex >= 0) { + _selected = widget.selectedValue; + SchedulerBinding.instance.addPostFrameCallback((_) { _scrollController.jumpTo((Dimens.grid56 * selectedIndex).clamp(0, _scrollController.position.maxScrollExtent)); - _hasSelection = true; - } - }); + }); + } } @override @@ -95,7 +94,7 @@ class _DialogPickerState extends State> { child: Text(S.of(context).cancel), ), TextButton( - onPressed: _hasSelection ? () => Navigator.of(context).pop(_selected) : null, + onPressed: _selected != null ? () => Navigator.of(context).pop(_selected) : null, child: Text(S.of(context).select), ), ], diff --git a/pubspec.lock b/pubspec.lock index a91fc43..52032fa 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -170,10 +170,10 @@ packages: dependency: transitive description: name: built_value - sha256: "082001b5c3dc495d4a42f1d5789990505df20d8547d42507c29050af6933ee27" + sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d url: "https://pub.dev" source: hosted - version: "8.10.1" + version: "8.12.0" camera: dependency: "direct main" description: @@ -861,8 +861,8 @@ packages: dependency: "direct main" description: path: "." - ref: "feature/MLI-48" - resolved-ref: "4a169640bff3d3a3206a2c352a75cbcea4871b1c" + ref: main + resolved-ref: "3f5bae6d2500a746fb83ab345919095a815244d1" url: "https://github.com/vodemn/m3_lightmeter_iap" source: git version: "4.1.2+37" @@ -870,11 +870,11 @@ packages: dependency: "direct main" description: path: "." - ref: "feature/MLR-18" - resolved-ref: "61bb3f8a9164d19f6e47c96fbea1cbe3aaf39fc3" + ref: "v2.5.0" + resolved-ref: "680affb45c5d03ed4fe61c30ee0d6e6fab0f2c12" url: "https://github.com/vodemn/m3_lightmeter_resources" source: git - version: "2.4.0+13" + version: "2.5.0+14" macros: dependency: transitive description: @@ -967,10 +967,10 @@ packages: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" + sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" path: dependency: transitive description: @@ -1119,10 +1119,10 @@ packages: dependency: transitive description: name: provider - sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" + sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272" url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "6.1.5+1" pub_semver: dependency: transitive description: @@ -1524,10 +1524,10 @@ packages: dependency: transitive description: name: watcher - sha256: "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a" + sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.3" web: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0db7015..842e43b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,11 +33,11 @@ dependencies: m3_lightmeter_iap: git: url: "https://github.com/vodemn/m3_lightmeter_iap" - ref: feature/MLI-48 + ref: main m3_lightmeter_resources: git: url: "https://github.com/vodemn/m3_lightmeter_resources" - ref: feature/MLR-18 + ref: v2.5.0 map_launcher: 3.2.0 material_color_utilities: 0.12.0 package_info_plus: 8.1.3