diff --git a/packages/pinball_components/test/src/components/golden/plunger.png b/packages/pinball_components/test/src/components/golden/plunger.png deleted file mode 100644 index a33405f1..00000000 Binary files a/packages/pinball_components/test/src/components/golden/plunger.png and /dev/null differ diff --git a/packages/pinball_components/test/src/components/golden/plunger/end.png b/packages/pinball_components/test/src/components/golden/plunger/end.png new file mode 100644 index 00000000..861b760b Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/plunger/end.png differ diff --git a/packages/pinball_components/test/src/components/golden/plunger/start.png b/packages/pinball_components/test/src/components/golden/plunger/start.png new file mode 100644 index 00000000..caa39f66 Binary files /dev/null and b/packages/pinball_components/test/src/components/golden/plunger/start.png differ diff --git a/packages/pinball_components/test/src/components/plunger_test.dart b/packages/pinball_components/test/src/components/plunger_test.dart index 7922f060..c7e3f7d9 100644 --- a/packages/pinball_components/test/src/components/plunger_test.dart +++ b/packages/pinball_components/test/src/components/plunger_test.dart @@ -25,7 +25,16 @@ void main() { verify: (game, tester) async { await expectLater( find.byGame(), - matchesGoldenFile('golden/plunger.png'), + matchesGoldenFile('golden/plunger/start.png'), + ); + + final plunger = game.descendants().whereType().first; + plunger.pull(); + game.update(1); + await tester.pump(); + await expectLater( + find.byGame(), + matchesGoldenFile('golden/plunger/end.png'), ); }, ); @@ -110,12 +119,17 @@ void main() { }); group('pull', () { + late Plunger plunger; + + setUp(() { + plunger = Plunger( + compressionDistance: compressionDistance, + ); + }); + flameTester.test( 'moves downwards when pull is called', (game) async { - final plunger = Plunger( - compressionDistance: compressionDistance, - ); await game.ensureAdd(plunger); plunger.pull(); @@ -123,6 +137,18 @@ void main() { expect(plunger.body.linearVelocity.x, isZero); }, ); + + flameTester.test( + 'moves downwards when pull is called ' + 'and plunger is below its starting position', (game) async { + await game.ensureAdd(plunger); + plunger.pull(); + plunger.release(); + plunger.pull(); + + expect(plunger.body.linearVelocity.y, isPositive); + expect(plunger.body.linearVelocity.x, isZero); + }); }); group('release', () {