diff --git a/packages/pinball_components/lib/src/components/spaceship_ramp/spaceship_ramp.dart b/packages/pinball_components/lib/src/components/spaceship_ramp/spaceship_ramp.dart index c64efae6..6a505263 100644 --- a/packages/pinball_components/lib/src/components/spaceship_ramp/spaceship_ramp.dart +++ b/packages/pinball_components/lib/src/components/spaceship_ramp/spaceship_ramp.dart @@ -395,7 +395,6 @@ class _SpaceshipRampOpening extends LayerSensor { /// Small sensor body used to detect when a ball has entered the /// [SpaceshipRamp]. /// {@endtemplate} -@visibleForTesting class RampSensor extends BodyComponent with ParentIsA, InitialPosition, Layered { /// {@macro ramp_sensor} diff --git a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active1.png b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active1.png index 1342e4a9..ce6fb69e 100644 Binary files a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active1.png and b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active1.png differ diff --git a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active2.png b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active2.png index daf85a54..8f7464af 100644 Binary files a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active2.png and b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active2.png differ diff --git a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active3.png b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active3.png index 3d9f1998..a518acd3 100644 Binary files a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active3.png and b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active3.png differ diff --git a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active4.png b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active4.png index aa7eac8f..cc03868d 100644 Binary files a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active4.png and b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active4.png differ diff --git a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active5.png b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active5.png index 597b1b66..21bfab65 100644 Binary files a/packages/pinball_components/test/src/components/golden/spaceship_ramp/active5.png and b/packages/pinball_components/test/src/components/golden/spaceship_ramp/active5.png differ diff --git a/packages/pinball_components/test/src/components/golden/spaceship_ramp/inactive.png b/packages/pinball_components/test/src/components/golden/spaceship_ramp/inactive.png index edd38070..44877daf 100644 Binary files a/packages/pinball_components/test/src/components/golden/spaceship_ramp/inactive.png and b/packages/pinball_components/test/src/components/golden/spaceship_ramp/inactive.png differ 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 new file mode 100644 index 00000000..57a030cb --- /dev/null +++ b/packages/pinball_components/test/src/components/spaceship_ramp/spaceship_ramp_test.dart @@ -0,0 +1,49 @@ +// 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'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_components/src/components/android_bumper/behaviors/behaviors.dart'; +import 'package:pinball_components/src/components/bumping_behavior.dart'; + +import '../../../helpers/helpers.dart'; + +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, + ]; + final flameTester = FlameTester(() => TestGame(assets)); + + group('RampSensor', () { + flameTester.test('closes bloc when removed', (game) async { + final bloc = MockRampSensorCubit(); + whenListen( + bloc, + const Stream.empty(), + initialState: const RampSensorState.initial(), + ); + when(bloc.close).thenAnswer((_) async {}); + final rampSensor = RampSensor.test( + type: RampSensorType.door, + bloc: bloc, + ); + final parent = SpaceshipRamp.test(); + + await game.ensureAdd(parent); + await parent.ensureAdd(rampSensor); + parent.remove(rampSensor); + await game.ready(); + + verify(bloc.close).called(1); + }); + }); +} diff --git a/test/game/pinball_game_test.dart b/test/game/pinball_game_test.dart index c2357046..723366c2 100644 --- a/test/game/pinball_game_test.dart +++ b/test/game/pinball_game_test.dart @@ -472,8 +472,11 @@ void main() { game.onTapUp(tapUpEvent); await game.ready(); + final currentBalls = + game.descendants().whereType().toList(); + expect( - game.descendants().whereType().length, + currentBalls.length, equals(previousBalls.length + 1), ); },