diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index 8f7b70e1..9bcc64d6 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -115,14 +115,7 @@ extension PinballGameAssetsX on PinballGame { images.load(components.Assets.images.multiplier.x5.dimmed.keyName), images.load(components.Assets.images.multiplier.x6.lit.keyName), images.load(components.Assets.images.multiplier.x6.dimmed.keyName), - images.load(components.Assets.images.score.points1m.keyName), - images.load(components.Assets.images.score.points1m2.keyName), - images.load(components.Assets.images.score.points2m.keyName), - images.load(components.Assets.images.score.points3m.keyName), - images.load(components.Assets.images.score.points4m.keyName), images.load(components.Assets.images.score.points5k.keyName), - images.load(components.Assets.images.score.points5m.keyName), - images.load(components.Assets.images.score.points6m.keyName), images.load(components.Assets.images.score.points10k.keyName), images.load(components.Assets.images.score.points15k.keyName), images.load(components.Assets.images.score.points20k.keyName), @@ -138,6 +131,13 @@ extension PinballGameAssetsX on PinballGame { images.load(components.Assets.images.score.points400k.keyName), images.load(components.Assets.images.score.points600k.keyName), images.load(components.Assets.images.score.points800k.keyName), + images.load(components.Assets.images.score.points1m.keyName), + images.load(components.Assets.images.score.points1m2.keyName), + images.load(components.Assets.images.score.points2m.keyName), + images.load(components.Assets.images.score.points3m.keyName), + images.load(components.Assets.images.score.points4m.keyName), + images.load(components.Assets.images.score.points5m.keyName), + images.load(components.Assets.images.score.points6m.keyName), images.load(dashTheme.leaderboardIcon.keyName), images.load(sparkyTheme.leaderboardIcon.keyName), images.load(androidTheme.leaderboardIcon.keyName), diff --git a/packages/pinball_components/test/src/components/score_text_effects_test.dart b/packages/pinball_components/test/src/components/score_text_effects_test.dart index 0783f2a8..7f7d9756 100644 --- a/packages/pinball_components/test/src/components/score_text_effects_test.dart +++ b/packages/pinball_components/test/src/components/score_text_effects_test.dart @@ -3,29 +3,56 @@ import 'package:flame/components.dart'; import 'package:flame/effects.dart'; import 'package:flame_test/flame_test.dart'; -import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pinball_components/pinball_components.dart'; import '../../helpers/helpers.dart'; void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + final assets = [ + Assets.images.score.points1m.keyName, + Assets.images.score.points1m2.keyName, + Assets.images.score.points2m.keyName, + Assets.images.score.points3m.keyName, + Assets.images.score.points4m.keyName, + Assets.images.score.points5k.keyName, + Assets.images.score.points5m.keyName, + Assets.images.score.points6m.keyName, + Assets.images.score.points10k.keyName, + Assets.images.score.points15k.keyName, + Assets.images.score.points20k.keyName, + Assets.images.score.points25k.keyName, + Assets.images.score.points30k.keyName, + Assets.images.score.points40k.keyName, + Assets.images.score.points50k.keyName, + Assets.images.score.points60k.keyName, + Assets.images.score.points80k.keyName, + Assets.images.score.points100k.keyName, + Assets.images.score.points120k.keyName, + Assets.images.score.points200k.keyName, + Assets.images.score.points400k.keyName, + Assets.images.score.points600k.keyName, + Assets.images.score.points800k.keyName, + ]; + group('ScoreText', () { - final flameTester = FlameTester(TestGame.new); + final flameTester = FlameTester(() => TestGame(assets)); flameTester.testGameWidget( 'renders correctly', setUp: (game, tester) async { + await game.images.loadAll(assets); game.camera.followVector2(Vector2.zero()); await game.ensureAdd( - ScoreText( + ScoreComponent( score: Score.points_6m, position: Vector2.zero(), ), ); }, verify: (game, tester) async { - final texts = game.descendants().whereType().length; + final texts = game.descendants().whereType().length; expect(texts, equals(1)); }, ); @@ -33,9 +60,10 @@ void main() { flameTester.testGameWidget( 'has a movement effect', setUp: (game, tester) async { + await game.images.loadAll(assets); game.camera.followVector2(Vector2.zero()); await game.ensureAdd( - ScoreText( + ScoreComponent( score: Score.points_6m, position: Vector2.zero(), ), @@ -45,17 +73,20 @@ void main() { await tester.pump(); }, verify: (game, tester) async { - final text = game.descendants().whereType().first; + final text = game.descendants().whereType().first; expect(text.firstChild(), isNotNull); }, ); + // TODO(ruimiguel): review why this test is failing after ScoreComponent + // refactor. flameTester.testGameWidget( 'is removed once finished', setUp: (game, tester) async { + await game.images.loadAll(assets); game.camera.followVector2(Vector2.zero()); await game.ensureAdd( - ScoreText( + ScoreComponent( score: Score.points_6m, position: Vector2.zero(), ), diff --git a/test/game/components/scoring_behavior_test.dart b/test/game/components/scoring_behavior_test.dart index 71899033..9387af5e 100644 --- a/test/game/components/scoring_behavior_test.dart +++ b/test/game/components/scoring_behavior_test.dart @@ -17,6 +17,33 @@ class _TestBodyComponent extends BodyComponent { } void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + final assets = [ + Assets.images.score.points1m.keyName, + Assets.images.score.points1m2.keyName, + Assets.images.score.points2m.keyName, + Assets.images.score.points3m.keyName, + Assets.images.score.points4m.keyName, + Assets.images.score.points5k.keyName, + Assets.images.score.points5m.keyName, + Assets.images.score.points6m.keyName, + Assets.images.score.points10k.keyName, + Assets.images.score.points15k.keyName, + Assets.images.score.points20k.keyName, + Assets.images.score.points25k.keyName, + Assets.images.score.points30k.keyName, + Assets.images.score.points40k.keyName, + Assets.images.score.points50k.keyName, + Assets.images.score.points60k.keyName, + Assets.images.score.points80k.keyName, + Assets.images.score.points100k.keyName, + Assets.images.score.points120k.keyName, + Assets.images.score.points200k.keyName, + Assets.images.score.points400k.keyName, + Assets.images.score.points600k.keyName, + Assets.images.score.points800k.keyName, + ]; + group('ScoringBehavior', () { group('beginContact', () { late GameBloc bloc; @@ -50,13 +77,14 @@ void main() { whenListen(bloc, Stream.value(state), initialState: state); return bloc; }, + assets: assets, ); flameBlocTester.testGameWidget( 'emits Scored event with points', setUp: (game, tester) async { - const points = 20; - final scoringBehavior = ScoringBehavior(points: Score.points_6m); + const points = Score.points_6m; + final scoringBehavior = ScoringBehavior(points: points); await parent.add(scoringBehavior); await game.ensureAdd(parent); @@ -64,7 +92,7 @@ void main() { verify( () => bloc.add( - const Scored(points: points), + Scored(points: points.value), ), ).called(1); }, @@ -87,18 +115,19 @@ void main() { flameBlocTester.testGameWidget( "adds a ScoreText component at Ball's position with points", setUp: (game, tester) async { - final scoringBehavior = ScoringBehavior(points: Score.points_6m); + const points = Score.points_6m; + final scoringBehavior = ScoringBehavior(points: points); await parent.add(scoringBehavior); await game.ensureAdd(parent); scoringBehavior.beginContact(ball, MockContact()); await game.ready(); - final scoreText = game.descendants().whereType(); + final scoreText = game.descendants().whereType(); expect(scoreText.length, equals(1)); expect( scoreText.first.score, - equals(Score.points_6m), + equals(points), ); expect( scoreText.first.position,