From 0eac761e729d7e327fe5076636d5abb78745ee10 Mon Sep 17 00:00:00 2001 From: Bertie690 Date: Sun, 4 May 2025 09:39:36 -0400 Subject: [PATCH] Hopefully fixed tests since we use `Phaser.Math.RND.frac` --- test/abilities/harvest.test.ts | 2 +- test/battle/double_battle.test.ts | 5 ++--- test/eggs/manaphy-egg.test.ts | 7 +++---- test/mystery-encounter/encounters/safari-zone.test.ts | 5 ++--- .../encounters/the-pokemon-salesman-encounter.test.ts | 5 ++--- 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/test/abilities/harvest.test.ts b/test/abilities/harvest.test.ts index 23c0ed9088c..54a70dbd82f 100644 --- a/test/abilities/harvest.test.ts +++ b/test/abilities/harvest.test.ts @@ -160,7 +160,7 @@ describe("Abilities - Harvest", () => { // ate 1 berry and recovered it expect(regieleki.battleData.berriesEaten).toEqual([]); - expect(getPlayerBerries()).toEqual([expect.objectContaining({ berryType: BerryType.PETAYA, stackCount: 1 })]); + expectBerriesContaining({ name: "BERRY", type: BerryType.PETAYA, count: 1 }); expect(game.scene.getPlayerPokemon()?.getStatStage(Stat.SPATK)).toBe(1); // heal up so harvest doesn't proc and kill enemy diff --git a/test/battle/double_battle.test.ts b/test/battle/double_battle.test.ts index a30d55aac3d..6575ef00ba7 100644 --- a/test/battle/double_battle.test.ts +++ b/test/battle/double_battle.test.ts @@ -9,6 +9,7 @@ import { StatusEffect } from "#enums/status-effect"; import GameManager from "#test/testUtils/gameManager"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; +import { randSeedFloat } from "#app/utils/common"; describe("Double Battles", () => { const DOUBLE_CHANCE = 8; // Normal chance of double battle is 1/8 @@ -62,9 +63,7 @@ describe("Double Battles", () => { let doubleCount = 0; let singleCount = 0; - vi.spyOn(Phaser.Math.RND, "realInRange").mockImplementation((min: number, max: number) => { - return rngSweepProgress * (max - min) + min; - }); + vi.fn(randSeedFloat).mockImplementation(() => rngSweepProgress); game.override .enemyMoveset(Moves.SPLASH) diff --git a/test/eggs/manaphy-egg.test.ts b/test/eggs/manaphy-egg.test.ts index 1e7f67a7bb5..e1ab7855724 100644 --- a/test/eggs/manaphy-egg.test.ts +++ b/test/eggs/manaphy-egg.test.ts @@ -1,6 +1,7 @@ import { Egg } from "#app/data/egg"; import { EggSourceType } from "#app/enums/egg-source-types"; import { EggTier } from "#app/enums/egg-type"; +import { randSeedFloat } from "#app/utils/common"; import { Species } from "#enums/species"; import GameManager from "#test/testUtils/gameManager"; import Phaser from "phaser"; @@ -9,7 +10,7 @@ import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vite describe("Manaphy Eggs", () => { let phaserGame: Phaser.Game; let game: GameManager; - const EGG_HATCH_COUNT: number = 48; + const EGG_HATCH_COUNT = 48; let rngSweepProgress = 0; beforeAll(() => { @@ -33,9 +34,7 @@ describe("Manaphy Eggs", () => { * possible RNG outcomes. This will let us quickly and consistently find * the probability of each RNG outcome. */ - vi.spyOn(Phaser.Math.RND, "realInRange").mockImplementation((min: number, max: number) => { - return rngSweepProgress * (max - min) + min; - }); + vi.fn(randSeedFloat).mockImplementation(() => rngSweepProgress); }); it("should have correct Manaphy rates and Rare Egg Move rates, from the egg gacha", () => { diff --git a/test/mystery-encounter/encounters/safari-zone.test.ts b/test/mystery-encounter/encounters/safari-zone.test.ts index 3506020aae4..b82c6c83aad 100644 --- a/test/mystery-encounter/encounters/safari-zone.test.ts +++ b/test/mystery-encounter/encounters/safari-zone.test.ts @@ -20,6 +20,7 @@ import { } from "#app/data/mystery-encounters/encounters/safari-zone-encounter"; import * as EncounterPhaseUtils from "#app/data/mystery-encounters/utils/encounter-phase-utils"; import { NON_LEGEND_PARADOX_POKEMON } from "#app/data/balance/special-species-groups"; +import { randSeedFloat } from "#app/utils/common"; const namespace = "mysteryEncounters/safariZone"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; @@ -134,9 +135,7 @@ describe("Safari Zone - Mystery Encounter", () => { const NUM_ROLLS = 2000; // As long as this is greater than total number of species, this should cover all possible RNG rolls let rngSweepProgress = 0; // Will simulate full range of RNG rolls by steadily increasing from 0 to 1 - vi.spyOn(Phaser.Math.RND, "realInRange").mockImplementation((min: number, max: number) => { - return rngSweepProgress * (max - min) + min; - }); + vi.fn(randSeedFloat).mockImplementation(() => rngSweepProgress); vi.spyOn(Phaser.Math.RND, "shuffle").mockImplementation((arr: any[]) => arr); for (let i = 0; i < NUM_ROLLS; i++) { diff --git a/test/mystery-encounter/encounters/the-pokemon-salesman-encounter.test.ts b/test/mystery-encounter/encounters/the-pokemon-salesman-encounter.test.ts index 4adb8c6b076..4458a58db9a 100644 --- a/test/mystery-encounter/encounters/the-pokemon-salesman-encounter.test.ts +++ b/test/mystery-encounter/encounters/the-pokemon-salesman-encounter.test.ts @@ -21,6 +21,7 @@ import { MysteryEncounterTier } from "#enums/mystery-encounter-tier"; import { initSceneWithoutEncounterPhase } from "#test/testUtils/gameManagerUtils"; import { MysteryEncounterPhase } from "#app/phases/mystery-encounter-phases"; import { NON_LEGEND_PARADOX_POKEMON } from "#app/data/balance/special-species-groups"; +import { randSeedFloat } from "#app/utils/common"; const namespace = "mysteryEncounters/thePokemonSalesman"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; @@ -195,9 +196,7 @@ describe("The Pokemon Salesman - Mystery Encounter", () => { const NUM_ROLLS = 2000; // As long as this is greater than total number of species, this should cover all possible RNG rolls let rngSweepProgress = 0; // Will simulate full range of RNG rolls by steadily increasing from 0 to 1 - vi.spyOn(Phaser.Math.RND, "realInRange").mockImplementation((min: number, max: number) => { - return rngSweepProgress * (max - min) + min; - }); + vi.fn(randSeedFloat).mockImplementation(() => rngSweepProgress); vi.spyOn(Phaser.Math.RND, "shuffle").mockImplementation((arr: any[]) => arr); for (let i = 0; i < NUM_ROLLS; i++) {