// Copyright (c) 2021, Very Good Ventures // https://verygood.ventures // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file or at // https://opensource.org/licenses/MIT. import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:leaderboard_repository/leaderboard_repository.dart'; import 'package:mockingjay/mockingjay.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/l10n/l10n.dart'; import 'package:pinball/theme/theme.dart'; import 'helpers.dart'; extension PumpApp on WidgetTester { Future pumpApp( Widget widget, { MockNavigator? navigator, GameBloc? gameBloc, ThemeCubit? themeCubit, LeaderboardRepository? leaderboardRepository, }) { return pumpWidget( RepositoryProvider.value( value: leaderboardRepository ?? MockLeaderboardRepository(), child: MultiBlocProvider( providers: [ BlocProvider.value( value: themeCubit ?? MockThemeCubit(), ), BlocProvider.value( value: gameBloc ?? MockGameBloc(), ), ], child: MaterialApp( localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, ], supportedLocales: AppLocalizations.supportedLocales, home: navigator != null ? MockNavigatorProvider(navigator: navigator, child: widget) : widget, ), ), ), ); } }