Browse Source

test: add vitest baseline and scene state machine skeleton

Made-with: Cursor
master
npmrun 2 weeks ago
parent
commit
0978dc6db8
  1. 1583
      package-lock.json
  2. 7
      package.json
  3. 13
      src/scene/SceneStateMachine.ts
  4. 13
      tests/kernel/scene-state-machine.test.ts
  5. 14
      vitest.config.ts

1583
package-lock.json

File diff suppressed because it is too large

7
package.json

@ -6,7 +6,9 @@
"scripts": { "scripts": {
"check": "taze major", "check": "taze major",
"dev": "vite --host", "dev": "vite --host",
"build": "vite build" "build": "vite build",
"test": "vitest run",
"test:watch": "vitest"
}, },
"keywords": [], "keywords": [],
"author": "", "author": "",
@ -21,6 +23,7 @@
}, },
"devDependencies": { "devDependencies": {
"@pixi/devtools": "^2.0.1", "@pixi/devtools": "^2.0.1",
"typescript": "^5.5.4" "typescript": "^5.5.4",
"vitest": "^2.1.8"
} }
} }

13
src/scene/SceneStateMachine.ts

@ -0,0 +1,13 @@
export type SceneState = "idle" | "loading";
export class SceneStateMachine {
private state: SceneState = "idle";
getState(): SceneState {
return this.state;
}
transitionTo(nextState: SceneState): void {
this.state = nextState;
}
}

13
tests/kernel/scene-state-machine.test.ts

@ -0,0 +1,13 @@
import { describe, expect, it } from "vitest";
import { SceneStateMachine } from "@/scene/SceneStateMachine";
describe("SceneStateMachine", () => {
it("starts in idle state and supports transitioning", () => {
const machine = new SceneStateMachine();
expect(machine.getState()).toBe("idle");
machine.transitionTo("loading");
expect(machine.getState()).toBe("loading");
});
});

14
vitest.config.ts

@ -0,0 +1,14 @@
import path from "node:path";
import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
environment: "node",
include: ["tests/**/*.test.ts"],
},
resolve: {
alias: {
"@": path.resolve(__dirname, "src"),
},
},
});
Loading…
Cancel
Save