mirror of
https://github.com/tiennm99/loto.git
synced 2026-05-17 04:59:16 +00:00
f2dff7b879
Adds vitest + happy-dom as devDependencies and npm scripts test (one-shot) and test:watch. No SvelteKit/vite reconfig needed — vitest auto-picks up the existing vite plugin chain. game-logic.test.js (26 tests): generateGrid shape invariants (9x9, exact 5/row, exact 5/col, no duplicates) over 200 random trials; per-column number ranges (col 0 = 1-9, col 8 = 80-90); ascending-within-column rule; isRowComplete/getWaitingNumber edge cases; full save/load roundtrip for the persistence layer including corrupt-JSON and wrong-shape rejection. settings-store.test.js (12 tests): defaults frozen, load with valid/invalid/corrupt payloads, hex regex rejects shorthand, save persists to localStorage and pushes CSS var, reset returns to brown default. Uses happy-dom env for localStorage and documentElement. code-standards.md: documents the rune globals declaration and the .svelte.js convention for rune-using non-component modules.
35 lines
838 B
JSON
35 lines
838 B
JSON
{
|
|
"name": "loto",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite dev",
|
|
"dev:codeserver": "VITE_DEV_PROFILE=codeserver vite dev --host 0.0.0.0",
|
|
"build": "vite build",
|
|
"build:gh": "BUILD_PROFILE=gh vite build",
|
|
"preview": "vite preview",
|
|
"lint": "eslint .",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest"
|
|
},
|
|
"optionalDependencies": {
|
|
"lightningcss-linux-x64-gnu": "1.32.0"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9",
|
|
"@sveltejs/adapter-static": "^3",
|
|
"@sveltejs/kit": "^2",
|
|
"@sveltejs/vite-plugin-svelte": "^6",
|
|
"@tailwindcss/vite": "^4",
|
|
"eslint": "^9",
|
|
"eslint-plugin-svelte": "^2",
|
|
"globals": "^15",
|
|
"happy-dom": "20.9.0",
|
|
"svelte": "^5",
|
|
"tailwindcss": "^4",
|
|
"vite": "^7",
|
|
"vitest": "4.1.5"
|
|
}
|
|
}
|