diff --git a/packages/pinball_components/lib/src/components/dino_walls.dart b/packages/pinball_components/lib/src/components/dino_walls.dart index 1a1d2c5b..05b3ca37 100644 --- a/packages/pinball_components/lib/src/components/dino_walls.dart +++ b/packages/pinball_components/lib/src/components/dino_walls.dart @@ -14,9 +14,6 @@ class DinoWalls extends Forge2DBlueprint { /// {@macro dinowalls} DinoWalls({required this.position}); - /// Total size of the spaceship. - static final size = Vector2(25, 19); - /// The [position] where the elements will be created final Vector2 position; diff --git a/packages/pinball_components/test/src/components/dino_walls_test.dart b/packages/pinball_components/test/src/components/dino_walls_test.dart new file mode 100644 index 00000000..7a7fda13 --- /dev/null +++ b/packages/pinball_components/test/src/components/dino_walls_test.dart @@ -0,0 +1,67 @@ +// ignore_for_file: cascade_invocations + +import 'package:flame_forge2d/flame_forge2d.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 '../../helpers/helpers.dart'; + +void main() { + group('DinoWalls', () { + TestWidgetsFlutterBinding.ensureInitialized(); + final flameTester = FlameTester(TestGame.new); + + flameTester.test( + 'loads correctly', + (game) async { + final dinoWalls = DinoWalls(position: Vector2.zero()); + await game.addFromBlueprint(dinoWalls); + await game.ready(); + + for (final wall in dinoWalls.components) { + expect(game.contains(wall), isTrue); + } + }, + ); + + group('DinoTopWall', () { + flameTester.testGameWidget( + 'renders correctly', + setUp: (game, tester) async { + await game.add( + DinoTopWall()..initialPosition = Vector2(0, -50), + ); + await game.ready(); + await tester.pump(); + }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/dino-top-wall.png'), + ); + }, + ); + }); + + group('DinoBottomWall', () { + flameTester.testGameWidget( + 'renders correctly', + setUp: (game, tester) async { + await game.add( + DinoBottomWall()..initialPosition = Vector2(0, -12), + ); + await game.ready(); + await tester.pump(); + }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/dino-bottom-wall.png'), + ); + }, + ); + }); + }); +} diff --git a/packages/pinball_components/test/src/components/golden/dino-bottom-wall.png b/packages/pinball_components/test/src/components/golden/dino-bottom-wall.png new file mode 100644 index 00000000..14ae9c0d Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/dino-bottom-wall.png differ diff --git a/packages/pinball_components/test/src/components/golden/dino-top-wall.png b/packages/pinball_components/test/src/components/golden/dino-top-wall.png new file mode 100644 index 00000000..0d434d69 Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/dino-top-wall.png differ