diff --git a/scripts/create-test/boilerplates/default.ts b/scripts/create-test/boilerplates/default.ts index fa914b150c2..e644e740594 100644 --- a/scripts/create-test/boilerplates/default.ts +++ b/scripts/create-test/boilerplates/default.ts @@ -1,7 +1,10 @@ import { AbilityId } from "#enums/ability-id"; +import { BattlerIndex } from "#enums/battler-index"; import { MoveId } from "#enums/move-id"; +import { MoveResult } from "#enums/move-result"; import { SpeciesId } from "#enums/species-id"; import { GameManager } from "#test/test-utils/game-manager"; +import i18next from "i18next"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; @@ -32,12 +35,18 @@ describe("{{description}}", () => { .enemyLevel(100); }); + // Find more awesome utility functions inside `#test/test-utils`! it("should do XYZ", async () => { await game.classicMode.startBattle([SpeciesId.FEEBAS]); + const feebas = game.field.getPlayerPokemon(); + game.move.use(MoveId.SPLASH); + await game.move.forceEnemyMove(MoveId.CELEBRATE); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); await game.toEndOfTurn(); - expect(true).toBe(true); + expect(feebas).toHaveUsedMove({ move: MoveId.SPLASH, result: MoveResult.SUCCESS }); + expect(game.textInterceptor.logs).toContain(i18next.t("moveTriggers:splash")); }); }); diff --git a/test/font-face.setup.ts b/test/setup/font-face.setup.ts similarity index 100% rename from test/font-face.setup.ts rename to test/setup/font-face.setup.ts diff --git a/test/matchers.setup.ts b/test/setup/matchers.setup.ts similarity index 96% rename from test/matchers.setup.ts rename to test/setup/matchers.setup.ts index 53711ddc3a3..88ca0a5c6bc 100644 --- a/test/matchers.setup.ts +++ b/test/setup/matchers.setup.ts @@ -21,7 +21,7 @@ import { expect } from "vitest"; /* * Setup file for custom matchers. - * Make sure to define the call signatures in `test/@types/vitest.d.ts` too! + * Make sure to define the call signatures in `#test/@types/vitest.d.ts` too! */ expect.extend({ diff --git a/test/vitest.setup.ts b/test/setup/vitest.setup.ts similarity index 93% rename from test/vitest.setup.ts rename to test/setup/vitest.setup.ts index 23adab01a05..3f506d73228 100644 --- a/test/vitest.setup.ts +++ b/test/setup/vitest.setup.ts @@ -35,8 +35,8 @@ vi.mock(import("i18next"), async importOriginal => { const filename = req.params[0]; try { - const localeFiles = import.meta.glob("../public/locales/en/**/*.json", { eager: true }); - const json = localeFiles[`../public/locales/en/${filename}`] || {}; + const localeFiles = import.meta.glob("../../public/locales/en/**/*.json", { eager: true }); + const json = localeFiles[`../../public/locales/en/${filename}`] || {}; if (import.meta.env.VITE_I18N_DEBUG === "1") { console.log("Loaded locale", filename); } diff --git a/vitest.config.ts b/vitest.config.ts index 7fa2494bb4e..682b8052878 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -15,7 +15,7 @@ export default defineConfig(({ mode }) => ({ slowTestThreshold: 10_000, // TODO: Consider enabling // expect: {requireAssertions: true}, - setupFiles: ["./test/font-face.setup.ts", "./test/vitest.setup.ts", "./test/matchers.setup.ts"], + setupFiles: ["./test/setup/font-face.setup.ts", "./test/setup/vitest.setup.ts", "./test/setup/matchers.setup.ts"], sequence: { sequencer: MySequencer, },