diff --git a/mobile/test/flutter_test_config.dart b/mobile/test/flutter_test_config.dart new file mode 100644 index 0000000000..afee643fe7 --- /dev/null +++ b/mobile/test/flutter_test_config.dart @@ -0,0 +1,13 @@ +import 'dart:async'; + +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/foundation.dart'; +import 'package:logging/logging.dart'; + +Future testExecutable(FutureOr Function() testMain) async { + Logger.root.level = Level.OFF; + EasyLocalization.logger.enableBuildModes = []; + // ignore: banned-usage + debugPrint = (String? message, {int? wrapWidth}) {}; + return testMain(); +} diff --git a/mobile/test/modules/map/map_theme_override_test.dart b/mobile/test/modules/map/map_theme_override_test.dart index 56efde98dd..817ce0c4b1 100644 --- a/mobile/test/modules/map/map_theme_override_test.dart +++ b/mobile/test/modules/map/map_theme_override_test.dart @@ -1,5 +1,4 @@ @Skip('Flaky test, needs investigation') -@Tags(['widget']) library; import 'package:drift/drift.dart'; diff --git a/mobile/test/widget_tester_extensions.dart b/mobile/test/widget_tester_extensions.dart index bb3fc3f418..5f43a80b89 100644 --- a/mobile/test/widget_tester_extensions.dart +++ b/mobile/test/widget_tester_extensions.dart @@ -1,27 +1,51 @@ +import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:immich_mobile/constants/locales.dart'; +import 'package:immich_mobile/generated/codegen_loader.g.dart'; extension PumpConsumerWidget on WidgetTester { - /// Wraps the provided [widget] with Material app such that it becomes: + /// Wraps the provided [widget] with a localized Material app such that it + /// becomes: + /// + /// EasyLocalization + /// |-ProviderScope + /// |-MaterialApp (localization delegates wired up) + /// |-Material + /// |-[widget] /// - /// ProviderScope - /// |-MaterialApp - /// |-Material - /// |-[widget] Future pumpConsumerWidget( Widget widget, { Duration? duration, EnginePhase phase = EnginePhase.sendSemanticsUpdate, List overrides = const [], }) async { - return pumpWidget( - ProviderScope( - overrides: overrides, - child: MaterialApp(debugShowCheckedModeBanner: false, home: Material(child: widget)), + await pumpWidget( + EasyLocalization( + supportedLocales: locales.values.toList(), + path: translationsPath, + startLocale: locales.values.first, + fallbackLocale: locales.values.first, + saveLocale: false, + useFallbackTranslations: true, + assetLoader: const CodegenLoader(), + child: ProviderScope( + overrides: overrides, + child: Builder( + builder: (context) => MaterialApp( + debugShowCheckedModeBanner: false, + localizationsDelegates: context.localizationDelegates, + supportedLocales: context.supportedLocales, + locale: context.locale, + home: Material(child: widget), + ), + ), + ), ), duration: duration, phase: phase, ); + await pumpAndSettle(); } }