diff --git a/packages/pinball_components/test/src/components/baseboard_test.dart b/packages/pinball_components/test/src/components/baseboard_test.dart index b1ce58e2..c0f0c498 100644 --- a/packages/pinball_components/test/src/components/baseboard_test.dart +++ b/packages/pinball_components/test/src/components/baseboard_test.dart @@ -9,11 +9,30 @@ import '../../helpers/helpers.dart'; void main() { group('Baseboard', () { - // TODO(allisonryan0002): Add golden tests. - TestWidgetsFlutterBinding.ensureInitialized(); final flameTester = FlameTester(TestGame.new); + flameTester.testGameWidget( + 'renders correctly', + setUp: (game, tester) async { + final leftBaseboard = Baseboard( + side: BoardSide.left, + )..initialPosition = Vector2(-20, 0); + final rightBaseboard = Baseboard( + side: BoardSide.right, + )..initialPosition = Vector2(20, 0); + + await game.ensureAddAll([leftBaseboard, rightBaseboard]); + game.camera.followVector2(Vector2.zero()); + }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/baseboard.png'), + ); + }, + ); + flameTester.test( 'loads correctly', (game) async { diff --git a/packages/pinball_components/test/src/components/boundaries_test.dart b/packages/pinball_components/test/src/components/boundaries_test.dart index 2c6fe1da..f3724cbd 100644 --- a/packages/pinball_components/test/src/components/boundaries_test.dart +++ b/packages/pinball_components/test/src/components/boundaries_test.dart @@ -15,17 +15,15 @@ void main() { 'render correctly', setUp: (game, tester) async { await game.addFromBlueprint(Boundaries()); - await game.ready(); game.camera.followVector2(Vector2.zero()); game.camera.zoom = 3.9; }, - // TODO(allisonryan0002): enable test when workflows are fixed. - // verify: (game, tester) async { - // await expectLater( - // find.byGame(), - // matchesGoldenFile('golden/boundaries.png'), - // ); - // }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/boundaries.png'), + ); + }, ); }); } diff --git a/packages/pinball_components/test/src/components/dash_animatronic_test.dart b/packages/pinball_components/test/src/components/dash_animatronic_test.dart index b268fee0..e4b31ca6 100644 --- a/packages/pinball_components/test/src/components/dash_animatronic_test.dart +++ b/packages/pinball_components/test/src/components/dash_animatronic_test.dart @@ -1,5 +1,6 @@ // ignore_for_file: cascade_invocations +import 'package:flame/extensions.dart'; import 'package:flame_test/flame_test.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pinball_components/pinball_components.dart'; @@ -11,6 +12,33 @@ void main() { final flameTester = FlameTester(TestGame.new); group('DashAnimatronic', () { + flameTester.testGameWidget( + 'renders correctly', + setUp: (game, tester) async { + await game.ensureAdd(DashAnimatronic()..playing = true); + game.camera.followVector2(Vector2.zero()); + }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/dash_animatronic/start.png'), + ); + + game.update(1); + await tester.pump(); + await expectLater( + find.byGame(), + matchesGoldenFile('golden/dash_animatronic/middle.png'), + ); + + game.update(4); + await tester.pump(); + await expectLater( + find.byGame(), + matchesGoldenFile('golden/dash_animatronic/end.png'), + ); + }, + ); flameTester.test( 'loads correctly', (game) async { diff --git a/packages/pinball_components/test/src/components/dino_walls_test.dart b/packages/pinball_components/test/src/components/dino_walls_test.dart index bb85bc8e..2279a396 100644 --- a/packages/pinball_components/test/src/components/dino_walls_test.dart +++ b/packages/pinball_components/test/src/components/dino_walls_test.dart @@ -1,5 +1,6 @@ // 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:pinball_components/pinball_components.dart'; @@ -11,6 +12,21 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); final flameTester = FlameTester(TestGame.new); + flameTester.testGameWidget( + 'renders correctly', + setUp: (game, tester) async { + await game.addFromBlueprint(DinoWalls()); + game.camera.followVector2(Vector2.zero()); + game.camera.zoom = 6.5; + }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/dino-walls.png'), + ); + }, + ); + flameTester.test( 'loads correctly', (game) async { diff --git a/packages/pinball_components/test/src/components/failures/slingshots_isolatedDiff.png b/packages/pinball_components/test/src/components/failures/slingshots_isolatedDiff.png new file mode 100644 index 00000000..2ae666d5 Binary files /dev/null and b/packages/pinball_components/test/src/components/failures/slingshots_isolatedDiff.png differ diff --git a/packages/pinball_components/test/src/components/failures/slingshots_maskedDiff.png b/packages/pinball_components/test/src/components/failures/slingshots_maskedDiff.png new file mode 100644 index 00000000..3f78ef18 Binary files /dev/null and b/packages/pinball_components/test/src/components/failures/slingshots_maskedDiff.png differ diff --git a/packages/pinball_components/test/src/components/failures/slingshots_masterImage.png b/packages/pinball_components/test/src/components/failures/slingshots_masterImage.png new file mode 100644 index 00000000..2e4ada7b Binary files /dev/null and b/packages/pinball_components/test/src/components/failures/slingshots_masterImage.png differ diff --git a/packages/pinball_components/test/src/components/failures/slingshots_testImage.png b/packages/pinball_components/test/src/components/failures/slingshots_testImage.png new file mode 100644 index 00000000..69a6dc11 Binary files /dev/null and b/packages/pinball_components/test/src/components/failures/slingshots_testImage.png differ diff --git a/packages/pinball_components/test/src/components/failures/sparky-computer_isolatedDiff.png b/packages/pinball_components/test/src/components/failures/sparky-computer_isolatedDiff.png new file mode 100644 index 00000000..68303d16 Binary files /dev/null and b/packages/pinball_components/test/src/components/failures/sparky-computer_isolatedDiff.png differ diff --git a/packages/pinball_components/test/src/components/failures/sparky-computer_maskedDiff.png b/packages/pinball_components/test/src/components/failures/sparky-computer_maskedDiff.png new file mode 100644 index 00000000..862febe4 Binary files /dev/null and b/packages/pinball_components/test/src/components/failures/sparky-computer_maskedDiff.png differ diff --git a/packages/pinball_components/test/src/components/failures/sparky-computer_masterImage.png b/packages/pinball_components/test/src/components/failures/sparky-computer_masterImage.png new file mode 100644 index 00000000..2f7ff65b Binary files /dev/null and b/packages/pinball_components/test/src/components/failures/sparky-computer_masterImage.png differ diff --git a/packages/pinball_components/test/src/components/failures/sparky-computer_testImage.png b/packages/pinball_components/test/src/components/failures/sparky-computer_testImage.png new file mode 100644 index 00000000..109f9903 Binary files /dev/null and b/packages/pinball_components/test/src/components/failures/sparky-computer_testImage.png differ diff --git a/packages/pinball_components/test/src/components/failures/waiting_isolatedDiff.png b/packages/pinball_components/test/src/components/failures/waiting_isolatedDiff.png deleted file mode 100644 index 0b04f9c4..00000000 Binary files a/packages/pinball_components/test/src/components/failures/waiting_isolatedDiff.png and /dev/null differ diff --git a/packages/pinball_components/test/src/components/failures/waiting_maskedDiff.png b/packages/pinball_components/test/src/components/failures/waiting_maskedDiff.png deleted file mode 100644 index 34105852..00000000 Binary files a/packages/pinball_components/test/src/components/failures/waiting_maskedDiff.png and /dev/null differ diff --git a/packages/pinball_components/test/src/components/failures/waiting_masterImage.png b/packages/pinball_components/test/src/components/failures/waiting_masterImage.png deleted file mode 100644 index 25e24a6b..00000000 Binary files a/packages/pinball_components/test/src/components/failures/waiting_masterImage.png and /dev/null differ diff --git a/packages/pinball_components/test/src/components/failures/waiting_testImage.png b/packages/pinball_components/test/src/components/failures/waiting_testImage.png deleted file mode 100644 index 00164289..00000000 Binary files a/packages/pinball_components/test/src/components/failures/waiting_testImage.png and /dev/null differ diff --git a/packages/pinball_components/test/src/components/flipper_test.dart b/packages/pinball_components/test/src/components/flipper_test.dart index efd4d2b0..b335d805 100644 --- a/packages/pinball_components/test/src/components/flipper_test.dart +++ b/packages/pinball_components/test/src/components/flipper_test.dart @@ -13,9 +13,29 @@ void main() { final flameTester = FlameTester(TestGame.new); group('Flipper', () { - // TODO(alestiago): Add golden tests. // TODO(alestiago): Consider testing always both left and right Flipper. + flameTester.testGameWidget( + 'renders correctly', + setUp: (game, tester) async { + final leftFlipper = Flipper( + side: BoardSide.left, + )..initialPosition = Vector2(-10, 0); + final rightFlipper = Flipper( + side: BoardSide.right, + )..initialPosition = Vector2(10, 0); + + await game.ensureAddAll([leftFlipper, rightFlipper]); + game.camera.followVector2(Vector2.zero()); + }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/flipper.png'), + ); + }, + ); + flameTester.test( 'loads correctly', (game) async { diff --git a/packages/pinball_components/test/src/components/flutter_sign_post_test.dart b/packages/pinball_components/test/src/components/flutter_sign_post_test.dart index 98815af7..0b504094 100644 --- a/packages/pinball_components/test/src/components/flutter_sign_post_test.dart +++ b/packages/pinball_components/test/src/components/flutter_sign_post_test.dart @@ -1,5 +1,6 @@ // 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:pinball_components/pinball_components.dart'; @@ -11,6 +12,20 @@ void main() { final flameTester = FlameTester(TestGame.new); group('FlutterSignPost', () { + flameTester.testGameWidget( + 'renders correctly', + setUp: (game, tester) async { + await game.ensureAdd(FlutterSignPost()); + game.camera.followVector2(Vector2.zero()); + }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/flutter-sign-post.png'), + ); + }, + ); + flameTester.test( 'loads correctly', (game) async { diff --git a/packages/pinball_components/test/src/components/golden/baseboard.png b/packages/pinball_components/test/src/components/golden/baseboard.png new file mode 100644 index 00000000..df83fa4c Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/baseboard.png differ diff --git a/packages/pinball_components/test/src/components/golden/dash_animatronic/end.png b/packages/pinball_components/test/src/components/golden/dash_animatronic/end.png new file mode 100644 index 00000000..8c99f674 Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/dash_animatronic/end.png differ diff --git a/packages/pinball_components/test/src/components/golden/dash_animatronic/middle.png b/packages/pinball_components/test/src/components/golden/dash_animatronic/middle.png new file mode 100644 index 00000000..b2bf16a3 Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/dash_animatronic/middle.png differ diff --git a/packages/pinball_components/test/src/components/golden/dash_animatronic/start.png b/packages/pinball_components/test/src/components/golden/dash_animatronic/start.png new file mode 100644 index 00000000..8c99f674 Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/dash_animatronic/start.png differ diff --git a/packages/pinball_components/test/src/components/golden/dino-walls.png b/packages/pinball_components/test/src/components/golden/dino-walls.png new file mode 100644 index 00000000..80b07157 Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/dino-walls.png differ diff --git a/packages/pinball_components/test/src/components/golden/flipper.png b/packages/pinball_components/test/src/components/golden/flipper.png new file mode 100644 index 00000000..79b7ca5b Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/flipper.png differ diff --git a/packages/pinball_components/test/src/components/golden/flutter-sign-post.png b/packages/pinball_components/test/src/components/golden/flutter-sign-post.png new file mode 100644 index 00000000..68388670 Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/flutter-sign-post.png differ diff --git a/packages/pinball_components/test/src/components/golden/plunger/plunger.png b/packages/pinball_components/test/src/components/golden/plunger.png similarity index 100% rename from packages/pinball_components/test/src/components/golden/plunger/plunger.png rename to packages/pinball_components/test/src/components/golden/plunger.png diff --git a/packages/pinball_components/test/src/components/golden/plunger/rocket.png b/packages/pinball_components/test/src/components/golden/rocket.png similarity index 100% rename from packages/pinball_components/test/src/components/golden/plunger/rocket.png rename to packages/pinball_components/test/src/components/golden/rocket.png diff --git a/packages/pinball_components/test/src/components/golden/spaceship-rail.png b/packages/pinball_components/test/src/components/golden/spaceship-rail.png new file mode 100644 index 00000000..d81f7dba Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/spaceship-rail.png differ diff --git a/packages/pinball_components/test/src/components/golden/spaceship-ramp.png b/packages/pinball_components/test/src/components/golden/spaceship-ramp.png index a6825d00..b88ae491 100644 Binary files a/packages/pinball_components/test/src/components/golden/spaceship-ramp.png and b/packages/pinball_components/test/src/components/golden/spaceship-ramp.png differ diff --git a/packages/pinball_components/test/src/components/golden/sparky-computer.png b/packages/pinball_components/test/src/components/golden/sparky-computer.png index 2f7ff65b..109f9903 100644 Binary files a/packages/pinball_components/test/src/components/golden/sparky-computer.png and b/packages/pinball_components/test/src/components/golden/sparky-computer.png differ diff --git a/packages/pinball_components/test/src/components/kicker_test.dart b/packages/pinball_components/test/src/components/kicker_test.dart index 55802703..b61b49bc 100644 --- a/packages/pinball_components/test/src/components/kicker_test.dart +++ b/packages/pinball_components/test/src/components/kicker_test.dart @@ -21,17 +21,15 @@ void main() { side: BoardSide.right, )..initialPosition = Vector2(20, 0); - await game.addAll([leftKicker, rightKicker]); - await game.ready(); + await game.ensureAddAll([leftKicker, rightKicker]); game.camera.followVector2(Vector2.zero()); }, - // TODO(ruimiguel): enable test when workflows are fixed. - //verify: (game, tester) async { - // await expectLater( - // find.byGame(), - // matchesGoldenFile('golden/kickers.png'), - // ); - //}, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/kickers.png'), + ); + }, ); flameTester.test( diff --git a/packages/pinball_components/test/src/components/launch_ramp_test.dart b/packages/pinball_components/test/src/components/launch_ramp_test.dart index c7c7b1b2..8509ca59 100644 --- a/packages/pinball_components/test/src/components/launch_ramp_test.dart +++ b/packages/pinball_components/test/src/components/launch_ramp_test.dart @@ -15,17 +15,15 @@ void main() { 'renders correctly', setUp: (game, tester) async { await game.addFromBlueprint(LaunchRamp()); - await game.ready(); game.camera.followVector2(Vector2.zero()); game.camera.zoom = 4.1; }, - // TODO(allisonryan0002): enable test when workflows are fixed. - // verify: (game, tester) async { - // await expectLater( - // find.byGame(), - // matchesGoldenFile('golden/launch-ramp.png'), - // ); - // }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/launch-ramp.png'), + ); + }, ); }); } diff --git a/packages/pinball_components/test/src/components/plunger_test.dart b/packages/pinball_components/test/src/components/plunger_test.dart index 5695b0e9..903834b4 100644 --- a/packages/pinball_components/test/src/components/plunger_test.dart +++ b/packages/pinball_components/test/src/components/plunger_test.dart @@ -17,19 +17,15 @@ void main() { flameTester.testGameWidget( 'renders correctly', setUp: (game, tester) async { - await game.add( - Plunger( - compressionDistance: compressionDistance, - ), - ); - await game.ready(); + await game.ensureAdd(Plunger(compressionDistance: compressionDistance)); + game.camera.followVector2(Vector2.zero()); game.camera.zoom = 4.1; }, verify: (game, tester) async { await expectLater( find.byGame(), - matchesGoldenFile('golden/plunger/plunger.png'), + matchesGoldenFile('golden/plunger.png'), ); }, ); diff --git a/packages/pinball_components/test/src/components/rocket_test.dart b/packages/pinball_components/test/src/components/rocket_test.dart index c6a92561..87cfe515 100644 --- a/packages/pinball_components/test/src/components/rocket_test.dart +++ b/packages/pinball_components/test/src/components/rocket_test.dart @@ -20,7 +20,7 @@ void main() { verify: (game, tester) async { await expectLater( find.byGame(), - matchesGoldenFile('golden/plunger/rocket.png'), + matchesGoldenFile('golden/rocket.png'), ); }, ); diff --git a/packages/pinball_components/test/src/components/slingshot_test.dart b/packages/pinball_components/test/src/components/slingshot_test.dart index 6f015e13..b402923d 100644 --- a/packages/pinball_components/test/src/components/slingshot_test.dart +++ b/packages/pinball_components/test/src/components/slingshot_test.dart @@ -18,16 +18,14 @@ void main() { 'renders correctly', setUp: (game, tester) async { await game.addFromBlueprint(Slingshots()); - await game.ready(); game.camera.followVector2(Vector2.zero()); }, - // TODO(allisonryan0002): enable test when workflows are fixed. - // verify: (game, tester) async { - // await expectLater( - // find.byGame(), - // matchesGoldenFile('golden/slingshots.png'), - // ); - // }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/slingshots.png'), + ); + }, ); flameTester.test( diff --git a/packages/pinball_components/test/src/components/spaceship_rail_test.dart b/packages/pinball_components/test/src/components/spaceship_rail_test.dart index 6c5410b1..b7cd8abc 100644 --- a/packages/pinball_components/test/src/components/spaceship_rail_test.dart +++ b/packages/pinball_components/test/src/components/spaceship_rail_test.dart @@ -13,6 +13,21 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); final flameTester = FlameTester(TestGame.new); + flameTester.testGameWidget( + 'renders correctly', + setUp: (game, tester) async { + await game.addFromBlueprint(SpaceshipRail()); + game.camera.followVector2(Vector2.zero()); + game.camera.zoom = 8; + }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/spaceship-rail.png'), + ); + }, + ); + flameTester.test( 'loads correctly', (game) async { diff --git a/packages/pinball_components/test/src/components/spaceship_ramp_test.dart b/packages/pinball_components/test/src/components/spaceship_ramp_test.dart index 7e5f1c46..066a2634 100644 --- a/packages/pinball_components/test/src/components/spaceship_ramp_test.dart +++ b/packages/pinball_components/test/src/components/spaceship_ramp_test.dart @@ -15,16 +15,14 @@ void main() { 'renders correctly', setUp: (game, tester) async { await game.addFromBlueprint(SpaceshipRamp()); - await game.ready(); game.camera.followVector2(Vector2(-13, -50)); }, - // TODO(allisonryan0002): enable test when workflows are fixed. - // verify: (game, tester) async { - // await expectLater( - // find.byGame(), - // matchesGoldenFile('golden/spaceship-ramp.png'), - // ); - // }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/spaceship-ramp.png'), + ); + }, ); }); } diff --git a/packages/pinball_components/test/src/components/spaceship_test.dart b/packages/pinball_components/test/src/components/spaceship_test.dart index 4d980c69..00b5a7d4 100644 --- a/packages/pinball_components/test/src/components/spaceship_test.dart +++ b/packages/pinball_components/test/src/components/spaceship_test.dart @@ -44,15 +44,12 @@ void main() { 'renders correctly', setUp: (game, tester) async { await game.addFromBlueprint(Spaceship(position: Vector2(30, -30))); - await game.ready(); - await tester.pump(); }, verify: (game, tester) async { - // FIXME(erickzanardo): Failing pipeline. - // await expectLater( - // find.byGame(), - // matchesGoldenFile('golden/spaceship.png'), - // ); + await expectLater( + find.byGame(), + matchesGoldenFile('golden/spaceship.png'), + ); }, ); }); diff --git a/packages/pinball_components/test/src/components/sparky_computer_test.dart b/packages/pinball_components/test/src/components/sparky_computer_test.dart index 7e761b97..3fc8b763 100644 --- a/packages/pinball_components/test/src/components/sparky_computer_test.dart +++ b/packages/pinball_components/test/src/components/sparky_computer_test.dart @@ -15,16 +15,14 @@ void main() { 'renders correctly', setUp: (game, tester) async { await game.addFromBlueprint(SparkyComputer()); - await game.ready(); game.camera.followVector2(Vector2(-15, -50)); }, - // TODO(allisonryan0002): enable test when workflows are fixed. - // verify: (game, tester) async { - // await expectLater( - // find.byGame(), - // matchesGoldenFile('golden/sparky-computer.png'), - // ); - // }, + verify: (game, tester) async { + await expectLater( + find.byGame(), + matchesGoldenFile('golden/sparky-computer.png'), + ); + }, ); }); }