From ca989eac8d875443096f26148ae457ef92bf1641 Mon Sep 17 00:00:00 2001 From: Erick Zanardo Date: Thu, 3 Mar 2022 15:05:11 -0300 Subject: [PATCH] feat: addressing PR comments --- lib/game/view/pinball_game_page.dart | 22 +++++++++++ lib/game/view/pinball_game_view.dart | 25 ------------ lib/game/view/view.dart | 1 - test/game/view/pinball_game_page_test.dart | 39 ++++++++++++++++++ test/game/view/pinball_game_view_test.dart | 46 ---------------------- 5 files changed, 61 insertions(+), 72 deletions(-) delete mode 100644 lib/game/view/pinball_game_view.dart delete mode 100644 test/game/view/pinball_game_view_test.dart diff --git a/lib/game/view/pinball_game_page.dart b/lib/game/view/pinball_game_page.dart index c4387f34..28834907 100644 --- a/lib/game/view/pinball_game_page.dart +++ b/lib/game/view/pinball_game_page.dart @@ -1,3 +1,4 @@ +import 'package:flame/game.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:pinball/game/game.dart'; @@ -21,3 +22,24 @@ class PinballGamePage extends StatelessWidget { return const PinballGameView(); } } + +class PinballGameView extends StatelessWidget { + const PinballGameView({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return BlocListener( + listener: (context, state) { + if (state.isGameOver) { + showDialog( + context: context, + builder: (_) { + return const GameOverDialog(); + }, + ); + } + }, + child: GameWidget(game: PinballGame()), + ); + } +} diff --git a/lib/game/view/pinball_game_view.dart b/lib/game/view/pinball_game_view.dart deleted file mode 100644 index 44715c25..00000000 --- a/lib/game/view/pinball_game_view.dart +++ /dev/null @@ -1,25 +0,0 @@ -import 'package:flame/game.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:pinball/game/game.dart'; - -class PinballGameView extends StatelessWidget { - const PinballGameView({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - return BlocListener( - listener: (context, state) { - if (state.isGameOver) { - showDialog( - context: context, - builder: (_) { - return const GameOverDialog(); - }, - ); - } - }, - child: GameWidget(game: PinballGame()), - ); - } -} diff --git a/lib/game/view/view.dart b/lib/game/view/view.dart index 39cdb071..53d3813a 100644 --- a/lib/game/view/view.dart +++ b/lib/game/view/view.dart @@ -1,3 +1,2 @@ export 'pinball_game_page.dart'; -export 'pinball_game_view.dart'; export 'widgets/widgets.dart'; diff --git a/test/game/view/pinball_game_page_test.dart b/test/game/view/pinball_game_page_test.dart index 2e005773..be418c1d 100644 --- a/test/game/view/pinball_game_page_test.dart +++ b/test/game/view/pinball_game_page_test.dart @@ -1,4 +1,5 @@ import 'package:bloc_test/bloc_test.dart'; +import 'package:flame/game.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pinball/game/game.dart'; @@ -45,4 +46,42 @@ void main() { expect(find.byType(PinballGamePage), findsOneWidget); }); }); + + group('PinballGameView', () { + testWidgets('renders game', (tester) async { + final gameBloc = MockGameBloc(); + whenListen( + gameBloc, + Stream.value(const GameState.initial()), + initialState: const GameState.initial(), + ); + + await tester.pumpApp(const PinballGameView(), gameBloc: gameBloc); + expect( + find.byWidgetPredicate((w) => w is GameWidget), + findsOneWidget, + ); + }); + + testWidgets( + 'renders a game over dialog when the user has lost', + (tester) async { + final gameBloc = MockGameBloc(); + const state = GameState(score: 0, balls: 0); + whenListen( + gameBloc, + Stream.value(state), + initialState: state, + ); + + await tester.pumpApp(const PinballGameView(), gameBloc: gameBloc); + await tester.pump(); + + expect( + find.text('Game Over'), + findsOneWidget, + ); + }, + ); + }); } diff --git a/test/game/view/pinball_game_view_test.dart b/test/game/view/pinball_game_view_test.dart deleted file mode 100644 index 4f4fe246..00000000 --- a/test/game/view/pinball_game_view_test.dart +++ /dev/null @@ -1,46 +0,0 @@ -import 'package:bloc_test/bloc_test.dart'; -import 'package:flame/game.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:pinball/game/game.dart'; - -import '../../helpers/helpers.dart'; - -void main() { - group('PinballGameView', () { - testWidgets('renders game', (tester) async { - final gameBloc = MockGameBloc(); - whenListen( - gameBloc, - Stream.value(const GameState.initial()), - initialState: const GameState.initial(), - ); - - await tester.pumpApp(const PinballGameView(), gameBloc: gameBloc); - expect( - find.byWidgetPredicate((w) => w is GameWidget), - findsOneWidget, - ); - }); - - testWidgets( - 'renders a game over dialog when the user has lost', - (tester) async { - final gameBloc = MockGameBloc(); - const state = GameState(score: 0, balls: 0); - whenListen( - gameBloc, - Stream.value(state), - initialState: state, - ); - - await tester.pumpApp(const PinballGameView(), gameBloc: gameBloc); - await tester.pump(); - - expect( - find.text('Game Over'), - findsOneWidget, - ); - }, - ); - }); -}