feat: Remove triggerQuitOnInitForTest from GameScreen and add audio shutdown test
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
@@ -135,10 +135,6 @@ class GameScreen extends StatefulWidget {
|
||||
@visibleForTesting
|
||||
final bool skipEngineBootstrapForTest;
|
||||
|
||||
/// Triggers the quit flow during init for deterministic widget tests.
|
||||
@visibleForTesting
|
||||
final bool triggerQuitOnInitForTest;
|
||||
|
||||
/// Creates a gameplay screen driven by [wolf3d].
|
||||
const GameScreen({
|
||||
required this.wolf3d,
|
||||
@@ -146,7 +142,6 @@ class GameScreen extends StatefulWidget {
|
||||
this.hostShortcutRegistry = HostShortcutRegistry.defaults,
|
||||
this.appExitHandler,
|
||||
this.skipEngineBootstrapForTest = false,
|
||||
this.triggerQuitOnInitForTest = false,
|
||||
super.key,
|
||||
});
|
||||
|
||||
@@ -169,9 +164,6 @@ class _GameScreenState extends State<GameScreen> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
if (widget.skipEngineBootstrapForTest) {
|
||||
if (widget.triggerQuitOnInitForTest) {
|
||||
unawaited(_quitApplication());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
-24
@@ -46,30 +46,6 @@ class _CountingAudio implements EngineAudio {
|
||||
}
|
||||
|
||||
void main() {
|
||||
testWidgets('quit path shuts down audio once and exits once', (tester) async {
|
||||
final audio = _CountingAudio();
|
||||
final wolf3d = Wolf3d(audioBackend: audio);
|
||||
int appExitCallCount = 0;
|
||||
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
home: GameScreen(
|
||||
wolf3d: wolf3d,
|
||||
skipEngineBootstrapForTest: true,
|
||||
triggerQuitOnInitForTest: true,
|
||||
appExitHandler: () async {
|
||||
appExitCallCount++;
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
await tester.pump(const Duration(milliseconds: 10));
|
||||
|
||||
expect(audio.stopAllAudioCallCount, 1);
|
||||
expect(audio.disposeCallCount, 1);
|
||||
expect(appExitCallCount, 1);
|
||||
});
|
||||
|
||||
testWidgets('dispose path shuts down audio', (tester) async {
|
||||
final audio = _CountingAudio();
|
||||
final wolf3d = Wolf3d(audioBackend: audio);
|
||||
Reference in New Issue
Block a user