import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'package:stackwallet/models/isar/stack_theme.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/theme_service.dart'; import 'package:stackwallet/widgets/custom_loading_overlay.dart'; import '../sample_data/theme_json.dart'; import 'custom_loading_overlay_test.mocks.dart'; @GenerateMocks([ ThemeService, ]) void main() { testWidgets("Test widget displays correct text", (widgetTester) async { final eventBus = EventBus(); final mockThemeService = MockThemeService(); when(mockThemeService.getTheme(themeId: "light")).thenAnswer( (_) => StackTheme.fromJson( json: lightThemeJsonMap, ), ); await widgetTester.pumpWidget( ProviderScope( overrides: [ pThemeService.overrideWithValue(mockThemeService), ], child: MaterialApp( theme: ThemeData( extensions: [ StackColors.fromStackColorTheme( StackTheme.fromJson( json: lightThemeJsonMap, ), ), ], ), home: Material( child: CustomLoadingOverlay( message: "Updating exchange rate", eventBus: eventBus), ), ), ), ); expect(find.text("Updating exchange rate"), findsOneWidget); }); }