v0.2 Phase 0+1: planning doc + tooling baseline
Phase 0 — docs/release/v0.2-frontend-overhaul.md as single source of truth for the v0.2 frontend coherence pass. Records hard rules, tooling pins, sacred-behaviour contract list, wrapper catalogue, per-page migration order, verification matrix, KI-05 plan, and the explicit "DO NOT add Skeleton" line. Phase 1 — tooling baseline. All exact-pinned per the plan: - @playwright/test@1.60.0 + playwright@1.60.0 + @axe-core/playwright@4.11.3 - rollup-plugin-visualizer@7.0.1 (wired behind ANALYZE=1) - @vitest/browser@4.1.6 + @vitest/browser-playwright@4.1.6 (provider) - vitest-browser-svelte@2.1.1 (runes-aware Svelte 5 bridge) - cargo-nextest installed globally New configs: playwright.config.ts (frontend-only, dev:frontend webServer, 900x700 + 1440x900 projects, visual baselines deferred), vitest.browser.config.js (separate from jsdom suite). New scripts: test:e2e, test:e2e:ui, test:browser, analyze, test:rust:fast, guard:no-skeleton. guard-no-skeleton.mjs walks package.json + package-lock + src/ for any @skeletonlabs reference and exits 1 if found — locks in the no-Skeleton hard rule for any future agent. Smoke baseline (tests/e2e/smoke.spec.ts): 16 tests passing across two viewports — app loads without Tauri runtime, keyboard nav, axe scan (color-contrast deferred to Phase 7 per docs/release/v0.1-contrast-audit.md), light/dark theme cycle, all three sensory zones (cave/energy/reset). 10 screenshots emitted to test-results/ as non-failing artefacts. Surfaced + fixed two browser-preview bugs while landing the baseline: - src/lib/utils/osInfo.ts: FALLBACK_BROWSER_INFO was evaluated at SSR module-load (navigator undefined → os: 'unknown'), and the UA check ran before navigator.platform — so Playwright's Windows-UA Chromium on a Linux runner detected as Windows, useCustomChrome went true, Titlebar mounted and tripped Tauri-only APIs. Now lazy-built per call; platform is the primary signal, UA only a fallback. - src/lib/components/Titlebar.svelte: defensive hasTauriRuntime() guard on every handler and the $effect. Titlebar should not crash if any future code path mounts it without Tauri. .gitignore: reports/, .playwright/, test-results/, playwright-report/. Per-phase gate green: npm run check (0/0), npm test (0/0), npm run test:e2e (16/16), npm run guard:no-skeleton (clean). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
15
package.json
15
package.json
@@ -13,6 +13,12 @@
|
||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch",
|
||||
"test": "vitest run",
|
||||
"test:watch": "vitest",
|
||||
"test:e2e": "playwright test",
|
||||
"test:e2e:ui": "playwright test --ui",
|
||||
"test:browser": "vitest --config vitest.browser.config.js --run",
|
||||
"test:rust:fast": "cargo nextest run --workspace",
|
||||
"analyze": "ANALYZE=1 vite build",
|
||||
"guard:no-skeleton": "node scripts/guard-no-skeleton.mjs",
|
||||
"tauri": "tauri"
|
||||
},
|
||||
"license": "MIT",
|
||||
@@ -28,17 +34,24 @@
|
||||
"svelte-i18n": "^4.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@axe-core/playwright": "4.11.3",
|
||||
"@playwright/test": "1.60.0",
|
||||
"@sveltejs/adapter-static": "3.0.10",
|
||||
"@sveltejs/kit": "2.58.0",
|
||||
"@sveltejs/vite-plugin-svelte": "5.1.1",
|
||||
"@tailwindcss/vite": "4.2.1",
|
||||
"@tauri-apps/cli": "2.10.1",
|
||||
"@vitest/browser": "4.1.6",
|
||||
"@vitest/browser-playwright": "4.1.6",
|
||||
"jsdom": "29.1.1",
|
||||
"playwright": "1.60.0",
|
||||
"rollup-plugin-visualizer": "7.0.1",
|
||||
"svelte": "5.53.12",
|
||||
"svelte-check": "4.4.5",
|
||||
"tailwindcss": "4.2.1",
|
||||
"typescript": "5.6.3",
|
||||
"vite": "6.4.2",
|
||||
"vitest": "4.1.6"
|
||||
"vitest": "4.1.6",
|
||||
"vitest-browser-svelte": "2.1.1"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user