Add folder game, file browser UI, and automated tests.

Introduces a localStorage-backed messy-desktop challenge with sub-steps,
drag-and-drop and Places/Back navigation, IBM Plex Mono, and a /api/health
endpoint. Adds Vitest coverage for the API and level logic plus Playwright
smoke tests.

Made-with: Cursor
This commit is contained in:
2026-04-11 18:22:50 +12:00
parent 818da20af8
commit 1957e96363
21 changed files with 1429 additions and 53 deletions

30
playwright.config.ts Normal file
View File

@@ -0,0 +1,30 @@
import { defineConfig, devices } from "@playwright/test";
export default defineConfig({
testDir: "./e2e",
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: process.env.CI ? "github" : "html",
use: {
baseURL: "http://127.0.0.1:3000",
trace: "on-first-retry",
},
projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
webServer: {
command: "npm run dev",
url: "http://127.0.0.1:3000",
reuseExistingServer: !process.env.CI,
timeout: 120_000,
env: {
...process.env,
NODE_ENV: "development",
SKIP_ENV_VALIDATION: "1",
DATABASE_URL: "file:./prisma/db.sqlite",
AUTH_SECRET:
process.env.AUTH_SECRET ??
"playwright-local-dev-secret-32chars!!",
},
},
});