test: refactor score texts

pull/276/head
RuiAlonso 3 years ago
parent 45833d2e87
commit 253feb5c23

@ -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),

@ -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<TextComponent>().length;
final texts = game.descendants().whereType<SpriteComponent>().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<TextComponent>().first;
final text = game.descendants().whereType<SpriteComponent>().first;
expect(text.firstChild<MoveEffect>(), 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(),
),

@ -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<ScoreText>();
final scoreText = game.descendants().whereType<ScoreComponent>();
expect(scoreText.length, equals(1));
expect(
scoreText.first.score,
equals(Score.points_6m),
equals(points),
);
expect(
scoreText.first.position,

Loading…
Cancel
Save