diff --git a/packages/pinball_components/test/src/components/spaceship_ramp/spaceship_ramp_test.dart b/packages/pinball_components/test/src/components/spaceship_ramp/spaceship_ramp_test.dart index 1258c653..8eecae69 100644 --- a/packages/pinball_components/test/src/components/spaceship_ramp/spaceship_ramp_test.dart +++ b/packages/pinball_components/test/src/components/spaceship_ramp/spaceship_ramp_test.dart @@ -1,6 +1,7 @@ // ignore_for_file: cascade_invocations import 'package:bloc_test/bloc_test.dart'; +import 'package:flame/components.dart'; import 'package:flame_test/flame_test.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; @@ -13,32 +14,58 @@ class _MockSpaceshipRampCubit extends Mock implements SpaceshipRampCubit {} void main() { TestWidgetsFlutterBinding.ensureInitialized(); final assets = [ - Assets.images.android.bumper.a.lit.keyName, - Assets.images.android.bumper.a.dimmed.keyName, - Assets.images.android.bumper.b.lit.keyName, - Assets.images.android.bumper.b.dimmed.keyName, - Assets.images.android.bumper.cow.lit.keyName, - Assets.images.android.bumper.cow.dimmed.keyName, + Assets.images.android.ramp.boardOpening.keyName, + Assets.images.android.ramp.railingForeground.keyName, + Assets.images.android.ramp.railingBackground.keyName, + Assets.images.android.ramp.main.keyName, + Assets.images.android.ramp.arrow.inactive.keyName, + Assets.images.android.ramp.arrow.active1.keyName, + Assets.images.android.ramp.arrow.active2.keyName, + Assets.images.android.ramp.arrow.active3.keyName, + Assets.images.android.ramp.arrow.active4.keyName, + Assets.images.android.ramp.arrow.active5.keyName, ]; final flameTester = FlameTester(() => TestGame(assets)); - flameTester.test('closes bloc when removed', (game) async { - final bloc = _MockSpaceshipRampCubit(); - whenListen( - bloc, - const Stream.empty(), - initialState: const SpaceshipRampState.initial(), + group('SpaceshipRamp', () { + flameTester.test( + 'loads correctly', + (game) async { + final spaceshipRamp = SpaceshipRamp(); + await game.ensureAdd(spaceshipRamp); + expect(game.descendants(), contains(spaceshipRamp)); + }, ); - when(bloc.close).thenAnswer((_) async {}); - final ramp = SpaceshipRamp.test( - bloc: bloc, - ); + flameTester.test('closes bloc when removed', (game) async { + final bloc = _MockSpaceshipRampCubit(); + whenListen( + bloc, + const Stream.empty(), + initialState: const SpaceshipRampState.initial(), + ); + when(bloc.close).thenAnswer((_) async {}); + + final ramp = SpaceshipRamp.test( + bloc: bloc, + ); + + await game.ensureAdd(ramp); + game.remove(ramp); + await game.ready(); - await game.ensureAdd(ramp); - game.remove(ramp); - await game.ready(); + verify(bloc.close).called(1); + }); - verify(bloc.close).called(1); + group('adds', () { + flameTester.test('new children', (game) async { + final component = Component(); + final spaceshipRamp = SpaceshipRamp( + children: [component], + ); + await game.ensureAdd(spaceshipRamp); + expect(spaceshipRamp.children, contains(component)); + }); + }); }); }