diff --git a/test/game/components/controlled_plunger_test.dart b/test/game/components/controlled_plunger_test.dart index 74aa32fd..bb965fc1 100644 --- a/test/game/components/controlled_plunger_test.dart +++ b/test/game/components/controlled_plunger_test.dart @@ -1,5 +1,6 @@ import 'dart:collection'; +import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flame_test/flame_test.dart'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -34,8 +35,7 @@ void main() { 'moves down ' 'when ${event.logicalKey.keyLabel} is pressed', (game) async { - await game.ready(); - await game.add(plunger); + await game.ensureAdd(plunger); controller.onKeyEvent(event, {}); expect(plunger.body.linearVelocity.y, isNegative); @@ -47,10 +47,11 @@ void main() { testRawKeyUpEvents(downKeys, (event) { flameTester.test( 'moves up ' - 'when ${event.logicalKey.keyLabel} is released', + 'when ${event.logicalKey.keyLabel} is released ' + 'and plunger is below its starting position', (game) async { - await game.ready(); - await game.add(plunger); + await game.ensureAdd(plunger); + plunger.body.setTransform(Vector2(0, -1), 0); controller.onKeyEvent(event, {}); expect(plunger.body.linearVelocity.y, isPositive); @@ -58,6 +59,20 @@ void main() { }, ); }); + + testRawKeyUpEvents(downKeys, (event) { + flameTester.test( + 'does not move when ${event.logicalKey.keyLabel} is released ' + 'and plunger is in its starting position', + (game) async { + await game.ensureAdd(plunger); + controller.onKeyEvent(event, {}); + + expect(plunger.body.linearVelocity.y, isZero); + expect(plunger.body.linearVelocity.x, isZero); + }, + ); + }); }); }); }