Fixes some async issues with ramp tests

pull/505/head
Alvaro Almeida Freire Stivi 1 year ago
parent 04d1f6d59c
commit 1e5cc0cf4d
No known key found for this signature in database

@ -80,6 +80,7 @@ void main() {
flameTester.testGameWidget( flameTester.testGameWidget(
'when hits are multiples of 10 times adds a ScoringBehavior', 'when hits are multiples of 10 times adds a ScoringBehavior',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -101,7 +102,9 @@ void main() {
await game.ready(); await game.ready();
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final scores = game.descendants().whereType<ScoringBehavior>(); final scores = game.descendants().whereType<ScoringBehavior>();
expect(scores.length, 1); expect(scores.length, 1);
}, },
@ -110,6 +113,7 @@ void main() {
flameTester.testGameWidget( flameTester.testGameWidget(
"when hits are not multiple of 10 times doesn't add any ScoringBehavior", "when hits are not multiple of 10 times doesn't add any ScoringBehavior",
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -131,7 +135,9 @@ void main() {
await game.ready(); await game.ready();
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final scores = game.descendants().whereType<ScoringBehavior>(); final scores = game.descendants().whereType<ScoringBehavior>();
expect(scores.length, 0); expect(scores.length, 0);
}, },

@ -80,6 +80,7 @@ void main() {
'adds MultiplierIncreased ' 'adds MultiplierIncreased '
'when hits are multiples of 5 times and multiplier is less than 6', 'when hits are multiples of 5 times and multiplier is less than 6',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -105,9 +106,10 @@ void main() {
); );
streamController.add(state.copyWith(hits: 5)); streamController.add(state.copyWith(hits: 5));
await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
verify(() => gameBloc.add(const MultiplierIncreased())).called(1); verify(() => gameBloc.add(const MultiplierIncreased())).called(1);
}, },
); );
@ -116,6 +118,7 @@ void main() {
"doesn't add MultiplierIncreased " "doesn't add MultiplierIncreased "
'when hits are multiples of 5 times but multiplier is 6', 'when hits are multiples of 5 times but multiplier is 6',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -140,9 +143,10 @@ void main() {
); );
streamController.add(state.copyWith(hits: 5)); streamController.add(state.copyWith(hits: 5));
await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
verifyNever(() => gameBloc.add(const MultiplierIncreased())); verifyNever(() => gameBloc.add(const MultiplierIncreased()));
}, },
); );
@ -178,7 +182,9 @@ void main() {
await game.ready(); await game.ready();
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
verifyNever(() => gameBloc.add(const MultiplierIncreased())); verifyNever(() => gameBloc.add(const MultiplierIncreased()));
}, },
); );

@ -77,6 +77,7 @@ void main() {
'adds onProgressed ' 'adds onProgressed '
'when hits and multiplier are less than 6', 'when hits and multiplier are less than 6',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -105,7 +106,9 @@ void main() {
streamController.add(state.copyWith(hits: 5)); streamController.add(state.copyWith(hits: 5));
await Future<void>.delayed(Duration.zero); await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final bloc = game final bloc = game
.descendants() .descendants()
.whereType< .whereType<
@ -120,6 +123,7 @@ void main() {
'adds onProgressed ' 'adds onProgressed '
'when hits and multiplier are 6 but arrow is not fully lit', 'when hits and multiplier are 6 but arrow is not fully lit',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -148,7 +152,9 @@ void main() {
streamController.add(state.copyWith(hits: 5)); streamController.add(state.copyWith(hits: 5));
await Future<void>.delayed(Duration.zero); await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final bloc = game final bloc = game
.descendants() .descendants()
.whereType< .whereType<
@ -163,6 +169,7 @@ void main() {
"doesn't add onProgressed " "doesn't add onProgressed "
'when hits and multiplier are 6 and arrow is fully lit', 'when hits and multiplier are 6 and arrow is fully lit',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -194,9 +201,10 @@ void main() {
lightState: ArrowLightState.active5, lightState: ArrowLightState.active5,
), ),
); );
await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final bloc = game final bloc = game
.descendants() .descendants()
.whereType< .whereType<
@ -212,6 +220,7 @@ void main() {
'adds onProgressed to dim arrow ' 'adds onProgressed to dim arrow '
'when arrow is fully lit after hit and multiplier is less than 6', 'when arrow is fully lit after hit and multiplier is less than 6',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -243,9 +252,10 @@ void main() {
lightState: ArrowLightState.active5, lightState: ArrowLightState.active5,
), ),
); );
await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final bloc = game final bloc = game
.descendants() .descendants()
.whereType< .whereType<
@ -260,6 +270,7 @@ void main() {
"doesn't add onProgressed to dim arrow " "doesn't add onProgressed to dim arrow "
'when arrow is not fully lit after hit', 'when arrow is not fully lit after hit',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -291,9 +302,10 @@ void main() {
lightState: ArrowLightState.active4, lightState: ArrowLightState.active4,
), ),
); );
await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final bloc = game final bloc = game
.descendants() .descendants()
.whereType< .whereType<
@ -308,6 +320,7 @@ void main() {
"doesn't add onProgressed to dim arrow " "doesn't add onProgressed to dim arrow "
'when multiplier is 6 after hit', 'when multiplier is 6 after hit',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();
@ -336,9 +349,10 @@ void main() {
streamController.add( streamController.add(
state.copyWith(hits: 4), state.copyWith(hits: 4),
); );
await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final bloc = game final bloc = game
.descendants() .descendants()
.whereType< .whereType<

@ -76,6 +76,7 @@ void main() {
flameTester.testGameWidget( flameTester.testGameWidget(
'calls onReset when round lost', 'calls onReset when round lost',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = GameState.initial(); final state = GameState.initial();
final streamController = StreamController<GameState>(); final streamController = StreamController<GameState>();
@ -96,9 +97,10 @@ void main() {
); );
streamController.add(state.copyWith(rounds: state.rounds - 1)); streamController.add(state.copyWith(rounds: state.rounds - 1));
await Future<void>.delayed(Duration.zero);
}, },
verify: (game, _) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final bloc = game final bloc = game
.descendants() .descendants()
.whereType< .whereType<
@ -112,6 +114,7 @@ void main() {
flameTester.testGameWidget( flameTester.testGameWidget(
"doesn't call onReset when round stays the same", "doesn't call onReset when round stays the same",
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = GameState.initial(); final state = GameState.initial();
final streamController = StreamController<GameState>(); final streamController = StreamController<GameState>();
@ -133,9 +136,10 @@ void main() {
streamController streamController
.add(state.copyWith(roundScore: state.roundScore + 100)); .add(state.copyWith(roundScore: state.roundScore + 100));
await Future<void>.delayed(Duration.zero);
}, },
verify: (game, tester) async { verify: (game, tester) async {
game.update(0);
await tester.pump();
final bloc = game final bloc = game
.descendants() .descendants()
.whereType< .whereType<

@ -80,6 +80,7 @@ void main() {
flameTester.testGameWidget( flameTester.testGameWidget(
'adds a ScoringBehavior when hit', 'adds a ScoringBehavior when hit',
setUp: (game, _) async { setUp: (game, _) async {
await game.onLoad();
final bloc = _MockSpaceshipRampCubit(); final bloc = _MockSpaceshipRampCubit();
final state = SpaceshipRampState.initial(); final state = SpaceshipRampState.initial();
final streamController = StreamController<SpaceshipRampState>(); final streamController = StreamController<SpaceshipRampState>();

Loading…
Cancel
Save