test: trying to fix tests

pull/235/head
RuiAlonso 3 years ago
parent 7aaadb4acf
commit 40526bf0fe

@ -49,7 +49,7 @@ void main() {
); );
flameTester.testGameWidget( flameTester.testGameWidget(
'stops animation after 2 seconds', 'calls onStop stops animation',
setUp: (game, tester) async { setUp: (game, tester) async {
final behavior = MultiballBlinkingBehavior(); final behavior = MultiballBlinkingBehavior();
final bloc = MockMultiballCubit(); final bloc = MockMultiballCubit();
@ -72,7 +72,7 @@ void main() {
), ),
); );
await tester.pump(); await tester.pump();
game.update(2); game.update(0.1);
streamController.add( streamController.add(
MultiballState( MultiballState(
@ -80,6 +80,38 @@ void main() {
lightState: MultiballLightState.lit, lightState: MultiballLightState.lit,
), ),
); );
await tester.pump();
await streamController.close();
verify(bloc.onStop).called(1);
},
);
flameTester.testGameWidget(
'stops animation after 2 seconds',
setUp: (game, tester) async {
final behavior = MultiballBlinkingBehavior();
final bloc = MockMultiballCubit();
final streamController = StreamController<MultiballState>();
whenListen(
bloc,
streamController.stream,
initialState: MultiballState.initial(),
);
when(bloc.onBlink).thenAnswer((_) async {});
final multiball = Multiball.test(bloc: bloc);
await multiball.add(behavior);
await game.ensureAdd(multiball);
streamController.add(
MultiballState(
animationState: MultiballAnimationState.animated,
lightState: MultiballLightState.lit,
),
);
await tester.pump();
game.update(2);
await streamController.close(); await streamController.close();
verify(bloc.onStop).called(1); verify(bloc.onStop).called(1);

@ -1,5 +1,6 @@
// ignore_for_file: cascade_invocations // ignore_for_file: cascade_invocations
import 'package:bloc_test/bloc_test.dart';
import 'package:flame/components.dart'; import 'package:flame/components.dart';
import 'package:flame/game.dart'; import 'package:flame/game.dart';
import 'package:flame_test/flame_test.dart'; import 'package:flame_test/flame_test.dart';
@ -94,6 +95,17 @@ void main() {
Assets.images.sparky.bumper.c.inactive.keyName, Assets.images.sparky.bumper.c.inactive.keyName,
]; ];
late GameBloc gameBloc;
setUp(() {
gameBloc = MockGameBloc();
whenListen(
gameBloc,
const Stream<GameState>.empty(),
initialState: const GameState.initial(),
);
});
final flameTester = FlameTester( final flameTester = FlameTester(
() => PinballTestGame(assets: assets), () => PinballTestGame(assets: assets),
); );
@ -101,11 +113,15 @@ void main() {
() => DebugPinballTestGame(assets: assets), () => DebugPinballTestGame(assets: assets),
); );
final flameBlocTester = FlameBlocTester<PinballGame, GameBloc>(
gameBuilder: () => PinballTestGame(assets: assets),
blocBuilder: () => gameBloc,
);
group('PinballGame', () { group('PinballGame', () {
group('components', () { group('components', () {
// TODO(alestiago): tests that Blueprints get added once the Blueprint // TODO(alestiago): tests that Blueprints get added once the Blueprint
// class is removed. // class is removed.
flameTester.test( flameBlocTester.test(
'has only one Drain', 'has only one Drain',
(game) async { (game) async {
await game.ready(); await game.ready();
@ -116,7 +132,7 @@ void main() {
}, },
); );
flameTester.test( flameBlocTester.test(
'has only one BottomGroup', 'has only one BottomGroup',
(game) async { (game) async {
await game.ready(); await game.ready();
@ -128,7 +144,7 @@ void main() {
}, },
); );
flameTester.test( flameBlocTester.test(
'has only one Plunger', 'has only one Plunger',
(game) async { (game) async {
await game.ready(); await game.ready();
@ -139,7 +155,7 @@ void main() {
}, },
); );
flameTester.test('has one FlutterForest', (game) async { flameBlocTester.test('has one FlutterForest', (game) async {
await game.ready(); await game.ready();
expect( expect(
game.children.whereType<FlutterForest>().length, game.children.whereType<FlutterForest>().length,
@ -147,7 +163,7 @@ void main() {
); );
}); });
flameTester.test( flameBlocTester.test(
'has only one Multiballs', 'has only one Multiballs',
(game) async { (game) async {
await game.ready(); await game.ready();
@ -159,7 +175,7 @@ void main() {
}, },
); );
flameTester.test( flameBlocTester.test(
'one GoogleWord', 'one GoogleWord',
(game) async { (game) async {
await game.ready(); await game.ready();

Loading…
Cancel
Save