# Testing ## Layers - **Unit** (`tsx --test`): `app/shared/*` — formula, derived, creation, snapshot, system validate - **Integration**: SQLite store (builder), GameSystemsStore (player) - **E2E** (Playwright Electron): functional asserts — not smoke-only (see plan) ## Commands ```bash # builder npm test npm run test:e2e # when e2e suite is added # player (meta_builder) npx tsx --test app/main/gameSystems/gameSystemsStore.test.ts npx tsx --test app/shared/characterSheet/core.test.ts ``` ## Preset smoke ```bash node scripts/preset-smoke.mjs ``` Validates every `presets/*.json` (except samples) via `validateSystemDefinition` + sample derived compute.