58 lines
1.8 KiB
Dart
58 lines
1.8 KiB
Dart
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<void> _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();
|
|
}
|