diff --git a/lib/game/components/ball.dart b/lib/game/components/ball.dart index f7904ff6..a9cd64ce 100644 --- a/lib/game/components/ball.dart +++ b/lib/game/components/ball.dart @@ -1,12 +1,10 @@ -import 'package:flame_bloc/flame_bloc.dart'; import 'package:flame_forge2d/body_component.dart'; import 'package:flutter/material.dart'; import 'package:forge2d/forge2d.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/theme/theme.dart'; -class Ball extends BodyComponent - with BlocComponent { +class Ball extends BodyComponent { Ball({ required Vector2 position, }) : _position = position; diff --git a/lib/theme/view/character_selection_page.dart b/lib/theme/view/character_selection_page.dart index 15bdb81b..5f612b83 100644 --- a/lib/theme/view/character_selection_page.dart +++ b/lib/theme/view/character_selection_page.dart @@ -41,8 +41,9 @@ class CharacterSelectionView extends StatelessWidget { const _CharacterSelectionGridView(), const SizedBox(height: 20), TextButton( - onPressed: () => - Navigator.of(context).push(PinballGamePage.route()), + onPressed: () => Navigator.of(context).push( + PinballGamePage.route(), + ), child: Text(l10n.start), ), ], @@ -65,19 +66,19 @@ class _CharacterSelectionGridView extends StatelessWidget { mainAxisSpacing: 20, crossAxisSpacing: 20, children: const [ - _CharacterImageButton( + CharacterImageButton( DashTheme(), key: Key('characterSelectionPage_dashButton'), ), - _CharacterImageButton( + CharacterImageButton( SparkyTheme(), key: Key('characterSelectionPage_sparkyButton'), ), - _CharacterImageButton( + CharacterImageButton( AndroidTheme(), key: Key('characterSelectionPage_androidButton'), ), - _CharacterImageButton( + CharacterImageButton( DinoTheme(), key: Key('characterSelectionPage_dinoButton'), ), @@ -87,8 +88,9 @@ class _CharacterSelectionGridView extends StatelessWidget { } } -class _CharacterImageButton extends StatelessWidget { - const _CharacterImageButton( +@visibleForTesting +class CharacterImageButton extends StatelessWidget { + const CharacterImageButton( this.characterTheme, { Key? key, }) : super(key: key); diff --git a/test/theme/view/character_selection_page_test.dart b/test/theme/view/character_selection_page_test.dart index 956681a1..eeac690f 100644 --- a/test/theme/view/character_selection_page_test.dart +++ b/test/theme/view/character_selection_page_test.dart @@ -24,7 +24,7 @@ void main() { group('CharacterSelectionPage', () { testWidgets('renders CharacterSelectionView', (tester) async { await tester.pumpApp( - const CharacterSelectionPage(), + CharacterSelectionPage(), themeCubit: themeCubit, ); expect(find.byType(CharacterSelectionView), findsOneWidget); @@ -40,7 +40,7 @@ void main() { Navigator.of(context) .push(CharacterSelectionPage.route()); }, - child: const Text('Tap me'), + child: Text('Tap me'), ); }, ), @@ -64,7 +64,7 @@ void main() { ); expect(find.text(titleText), findsOneWidget); - expect(find.byType(Image), findsNWidgets(4)); + expect(find.byType(CharacterImageButton), findsNWidgets(4)); expect(find.byType(TextButton), findsOneWidget); }); @@ -98,4 +98,13 @@ void main() { verify(() => navigator.push(any())).called(1); }); }); + + testWidgets('CharacterImageButton renders correctly', (tester) async { + await tester.pumpApp( + CharacterImageButton(DashTheme()), + themeCubit: themeCubit, + ); + + expect(find.byType(Image), findsOneWidget); + }); }