diff --git a/src/test/moves/pursuit.test.ts b/src/test/moves/pursuit.test.ts index db390beb337..d36b249f09a 100644 --- a/src/test/moves/pursuit.test.ts +++ b/src/test/moves/pursuit.test.ts @@ -603,14 +603,13 @@ describe("Moves - Pursuit", () => { expectPursuitSucceeded(game.scene.getPlayerField()[1]); }); - // fails: mysterious crash it("should not hit a switching ally for double damage (hard-switch, player field)", async () => { // arrange await startBattle(); forceMovesLast(game.scene.getPlayerField()); // act - playerSwitches(0); + playerSwitches(2); playerUsesPursuit(1, BattlerIndex.PLAYER); enemyUses(Moves.SPLASH); await runCombatTurn(); diff --git a/src/test/utils/gameManager.ts b/src/test/utils/gameManager.ts index 9f481eaed6e..17aca8ae153 100644 --- a/src/test/utils/gameManager.ts +++ b/src/test/utils/gameManager.ts @@ -365,6 +365,10 @@ export default class GameManager { */ doSelectPartyPokemon(slot: number, inPhase = "SwitchPhase") { this.onNextPrompt(inPhase, Mode.PARTY, () => { + if (this.scene.getParty()[slot].isActive(true)) { + throw new Error("Attempting to switch in a party member that is already active"); + } + const partyHandler = this.scene.ui.getHandler() as PartyUiHandler; partyHandler.setCursor(slot); diff --git a/src/test/utils/phaseInterceptor.ts b/src/test/utils/phaseInterceptor.ts index 91fadf0eb86..da71b508972 100644 --- a/src/test/utils/phaseInterceptor.ts +++ b/src/test/utils/phaseInterceptor.ts @@ -343,6 +343,7 @@ export default class PhaseInterceptor { lastTime = currentTime; if (timeSpentInPrompt > PROMPT_TIMEOUT && !warned) { + warned = true; console.error("Prompt handling stalled waiting for prompt:", actionForNextPrompt); expect.fail("Prompt timeout"); }