import { describe, expect, it } from "vitest"; import { collectSceneDefinitions } from "../src/init/sceneDiscovery"; import { SceneType } from "../src/enums/SceneType"; class DummyScene { name = "dummy"; type = SceneType.Normal; stage = {}; } describe("collectSceneDefinitions", () => { it("collects every page_*.ts scene without manual whitelist", () => { const modules = { "./stages/page_init.ts": { default: DummyScene }, "./stages/_global/page_00_global.ts": { default: DummyScene }, "./stages/welcome/page_welcome.ts": { default: DummyScene }, }; const scenes = collectSceneDefinitions(modules); expect(scenes.map((item) => item.name)).toEqual(["init", "00_global", "welcome"]); }); it("skips files excluded by predicate", () => { const modules = { "./stages/page_init.ts": { default: DummyScene }, "./stages/_global/page_00_global.ts": { default: DummyScene }, "./stages/welcome/page_welcome.ts": { default: DummyScene }, }; const scenes = collectSceneDefinitions(modules, { exclude: (name) => name.startsWith("00_"), }); expect(scenes.map((item) => item.name)).toEqual(["init", "welcome"]); }); });