diff --git a/.github/workflows/test-flutter.yaml b/.github/workflows/test-flutter.yaml index 363c041..23120cd 100644 --- a/.github/workflows/test-flutter.yaml +++ b/.github/workflows/test-flutter.yaml @@ -18,6 +18,8 @@ jobs: name: multi_packages_app_app - dir: example/multi_packages_app/theme name: multi_packages_app_theme + - dir: . + name: adaptive_test defaults: run: working-directory: ${{ matrix.dir }} diff --git a/lib/adaptive_test.dart b/lib/adaptive_test.dart index 33a304e..fcd1c65 100644 --- a/lib/adaptive_test.dart +++ b/lib/adaptive_test.dart @@ -1,15 +1,15 @@ export 'src/adaptive/adaptive_test.dart'; export 'src/adaptive/devices_data.dart'; export 'src/adaptive/widgets/adaptive_wrapper.dart'; -export 'src/adaptive/window_configuration_tester.dart'; export 'src/adaptive/window_config.dart'; +export 'src/adaptive/window_config_data/dynamic_island_data.dart'; +export 'src/adaptive/window_config_data/punch_hole_data.dart'; +export 'src/adaptive/window_config_data/system_nav_bar_data.dart' + show SystemNavBarData; +export 'src/adaptive/window_config_data/window_config_data.dart'; +export 'src/adaptive/window_configuration_tester.dart'; export 'src/configuration.dart'; export 'src/helpers/await_images.dart'; export 'src/helpers/fonts_loader.dart'; export 'src/helpers/goldens_difference.dart'; export 'src/helpers/skip_test_extension.dart'; -export 'src/adaptive/window_config_data/window_config_data.dart'; -export 'src/adaptive/window_config_data/system_nav_bar_data.dart' - show SystemNavBarData; -export 'src/adaptive/window_config_data/punch_hole_data.dart'; -export 'src/adaptive/window_config_data/dynamic_island_data.dart'; diff --git a/lib/src/adaptive/devices_data.dart b/lib/src/adaptive/devices_data.dart index 74b3b44..559b819 100644 --- a/lib/src/adaptive/devices_data.dart +++ b/lib/src/adaptive/devices_data.dart @@ -1,3 +1,5 @@ +// ignore_for_file: constant_identifier_names + import 'package:adaptive_test/src/adaptive/window_config_data/dynamic_island_data.dart'; import 'package:adaptive_test/src/adaptive/window_config_data/punch_hole_data.dart'; import 'package:adaptive_test/src/adaptive/window_config_data/system_nav_bar_data.dart'; diff --git a/lib/src/adaptive/widgets/adaptive_wrapper.dart b/lib/src/adaptive/widgets/adaptive_wrapper.dart index a259f81..22c6658 100644 --- a/lib/src/adaptive/widgets/adaptive_wrapper.dart +++ b/lib/src/adaptive/widgets/adaptive_wrapper.dart @@ -1,8 +1,8 @@ import 'package:adaptive_test/src/adaptive/widgets/layers/hardware_layer.dart'; import 'package:adaptive_test/src/adaptive/widgets/layers/keyboard_layer.dart'; import 'package:adaptive_test/src/adaptive/widgets/layers/system_nav_bar_layer.dart'; -import 'package:adaptive_test/src/adaptive/window_config_data/window_config_data.dart'; import 'package:adaptive_test/src/adaptive/window_config.dart'; +import 'package:adaptive_test/src/adaptive/window_config_data/window_config_data.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/lib/src/adaptive/widgets/layers/keyboard_layer.dart b/lib/src/adaptive/widgets/layers/keyboard_layer.dart index b5d832e..71c9305 100644 --- a/lib/src/adaptive/widgets/layers/keyboard_layer.dart +++ b/lib/src/adaptive/widgets/layers/keyboard_layer.dart @@ -1,5 +1,5 @@ -import 'package:adaptive_test/src/adaptive/window_configuration_tester.dart'; import 'package:adaptive_test/src/adaptive/window_config.dart'; +import 'package:adaptive_test/src/adaptive/window_configuration_tester.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; diff --git a/lib/src/adaptive/widgets/layers/three_button_system_nav_bar_layer.dart b/lib/src/adaptive/widgets/layers/three_button_system_nav_bar_layer.dart index 53c2134..cbb7bae 100644 --- a/lib/src/adaptive/widgets/layers/three_button_system_nav_bar_layer.dart +++ b/lib/src/adaptive/widgets/layers/three_button_system_nav_bar_layer.dart @@ -32,7 +32,7 @@ class ThreeButtonSystemNavBarLayer extends StatelessWidget { children: const [ Icons.arrow_back_ios_rounded, Icons.circle, - Icons.square_rounded + Icons.square_rounded, ] .map( (iconData) => Icon( diff --git a/lib/src/adaptive/window_config_data/window_config_data.dart b/lib/src/adaptive/window_config_data/window_config_data.dart index 02253c1..7e94153 100644 --- a/lib/src/adaptive/window_config_data/window_config_data.dart +++ b/lib/src/adaptive/window_config_data/window_config_data.dart @@ -53,7 +53,8 @@ class WindowConfigData extends Equatable { /// This is null when the device has no notch. final Size? notchSize; - /// Describe the size of the device physical screen top dynamic island in `dp`. + /// Describe the size of the device physical screen top dynamic island in + /// `dp`. /// /// This is null when the device has no dynamic island. final DynamicIslandData? dynamicIsland; diff --git a/lib/src/adaptive/window_configuration_tester.dart b/lib/src/adaptive/window_configuration_tester.dart index eaba821..5267e83 100644 --- a/lib/src/adaptive/window_configuration_tester.dart +++ b/lib/src/adaptive/window_configuration_tester.dart @@ -19,13 +19,15 @@ extension WidgetTesterWithConfigurableWindow on WidgetTester { addTearDown(view.resetViewInsets); } - /// Configure the tester window to represent an opened keyboard on the given device variant. + /// Configure the tester window to represent an opened keyboard on the given + /// device variant. void configureOpenedKeyboardWindow(WindowConfigData windowConfig) { view.viewInsets = windowConfig.viewInsets; view.padding = windowConfig.padding.copyWith(bottom: 0); } - /// Configure the tester window to represent a closed keyboard on the given device variant. + /// Configure the tester window to represent a closed keyboard on the given + /// device variant. void configureClosedKeyboardWindow(WindowConfigData windowConfig) { view.resetViewInsets(); view.padding = windowConfig.padding; diff --git a/lib/src/configuration.dart b/lib/src/configuration.dart index 11b7f4d..59aa9c0 100644 --- a/lib/src/configuration.dart +++ b/lib/src/configuration.dart @@ -1,3 +1,5 @@ +// ignore_for_file: use_setters_to_change_properties + import 'package:adaptive_test/src/adaptive/window_config.dart'; import 'package:adaptive_test/src/adaptive/window_config_data/window_config_data.dart'; import 'package:flutter/material.dart'; @@ -65,7 +67,8 @@ See: https://api.flutter.dev/flutter/flutter_test/flutter_test-library.html /// Set the devices variant on which you want your test to run. /// - /// Eg [iPhone8], [iPhone13], [iPhone16],[iPhone16Dark], [iPadPro], [desktop], [pixel5], [pixel9]. + /// Eg [iPhone8], [iPhone13], [iPhone16],[iPhone16Dark], [iPadPro], + /// [desktop], [pixel5], [pixel9]. void setDeviceVariants(Set deviceConfigs) { _deviceVariant = WindowVariant(deviceConfigs); } diff --git a/lib/src/helpers/fonts_loader.dart b/lib/src/helpers/fonts_loader.dart index a743bce..03545a0 100644 --- a/lib/src/helpers/fonts_loader.dart +++ b/lib/src/helpers/fonts_loader.dart @@ -50,9 +50,9 @@ Future _loadFontsFromManifest( FontLoader _createFontLoader(String fontFamily, List<_FontType> fontTypes) { final fontLoader = FontLoader(fontFamily); - fontTypes.forEach( - (fontType) => fontLoader.addFont(rootBundle.load(fontType.asset)), - ); + for (final fontType in fontTypes) { + fontLoader.addFont(rootBundle.load(fontType.asset)); + } return fontLoader; } diff --git a/lib/src/helpers/goldens_difference.dart b/lib/src/helpers/goldens_difference.dart index 8b5f500..3fa72f6 100644 --- a/lib/src/helpers/goldens_difference.dart +++ b/lib/src/helpers/goldens_difference.dart @@ -36,7 +36,10 @@ void setupFileComparatorWithThreshold([ /// exceeded, marks the test as a failure. class LocalFileComparatorWithThreshold extends LocalFileComparator { LocalFileComparatorWithThreshold(super.testFile, this.threshold) - : assert(threshold >= 0 && threshold <= 1); + : assert( + threshold >= 0 && threshold <= 1, + 'The threshold must be between 0 and 1 inclusive', + ); /// Threshold above which tests will be marked as failing. /// Ranges from 0 to 1, both inclusive. diff --git a/lib/src/helpers/skip_test_extension.dart b/lib/src/helpers/skip_test_extension.dart index 6deb121..e12deb9 100644 --- a/lib/src/helpers/skip_test_extension.dart +++ b/lib/src/helpers/skip_test_extension.dart @@ -9,8 +9,8 @@ extension ShouldSkipAdaptiveTest on AdaptiveTestConfiguration { /// runtime platform does not match the enforced platform, the test will be /// skipped if [AdaptiveTestConfiguration.failTestOnWrongPlatform] is false. /// - /// This extension is used to determine if a test should be skipped based on the - /// [AdaptiveTestConfiguration.enforcedTestPlatform] and + /// This extension is used to determine if a test should be skipped based on + /// the [AdaptiveTestConfiguration.enforcedTestPlatform] and /// [AdaptiveTestConfiguration.failTestOnWrongPlatform] values. bool get shouldSkipTest { final configuration = AdaptiveTestConfiguration.instance; diff --git a/lib/src/helpers/target_platform_extension.dart b/lib/src/helpers/target_platform_extension.dart index fbc72d9..236bcf5 100644 --- a/lib/src/helpers/target_platform_extension.dart +++ b/lib/src/helpers/target_platform_extension.dart @@ -2,7 +2,6 @@ import 'dart:developer'; import 'dart:io'; import 'package:flutter/foundation.dart'; -import 'package:meta/meta.dart'; @internal extension IsRuntimePlatform on TargetPlatform { @@ -13,7 +12,9 @@ extension IsRuntimePlatform on TargetPlatform { TargetPlatform.windows: return; - default: + case TargetPlatform.android || + TargetPlatform.iOS || + TargetPlatform.fuchsia: log('Tests are intended to be runned on linux, macOS or windows' ' platform. But you are running them on $name'); }