import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:shared_preferences_platform_interface/in_memory_shared_preferences_async.dart'; import 'package:shared_preferences_platform_interface/shared_preferences_async_platform_interface.dart'; import 'package:fruitshorts/l10n/app_localizations.dart'; import 'package:fruitshorts/pages/home/home_view.dart'; void main() { setUp(() { SharedPreferencesAsyncPlatform.instance = InMemorySharedPreferencesAsync.empty(); }); testWidgets( 'should_show_server_settings_and_open_dialog_when_debug_tools_are_enabled', (tester) async { await _pumpFailureView(tester, showDebugTools: true); final button = find.byKey(const Key('home-server-settings')); expect(button, findsOneWidget); expect(find.text('Server settings'), findsOneWidget); await tester.tap(button); await tester.pumpAndSettle(); expect(find.byKey(const Key('server-endpoint-input')), findsOneWidget); expect(find.text('Restart the app to apply.'), findsOneWidget); }, ); testWidgets('should_hide_server_settings_when_debug_tools_are_disabled', ( tester, ) async { await _pumpFailureView(tester, showDebugTools: false); expect(find.byKey(const Key('home-server-settings')), findsNothing); expect(find.text('Server settings'), findsNothing); }); } Future _pumpFailureView( WidgetTester tester, { required bool showDebugTools, }) async { await tester.pumpWidget( MaterialApp( locale: const Locale('en'), localizationsDelegates: AppLocalizations.localizationsDelegates, supportedLocales: AppLocalizations.supportedLocales, home: Scaffold( body: HomeFailureView(onRetry: () {}, showDebugTools: showDebugTools), ), ), ); await tester.pumpAndSettle(); }