Appearance
Testing
Linting
bash
# Check all files
npx biome check .
# Auto-fix issues
npx biome check --write .Type Checking
bash
# Dashboard
pnpm --filter @neverline/dashboard exec tsc --noEmit
# API
pnpm --filter @neverline/api exec tsc --noEmitPre-commit Hooks
Husky runs lint-staged on every commit, which executes:
biome check --writeon staged.ts,.tsx,.js,.jsxfiles
Unit & Integration Testing (Vitest)
We use Vitest for unit and integration testing. Coverage threshold is ≥ 80 % (enforced in CI).
bash
# Run all tests
pnpm test
# Run tests with coverage report
pnpm test:coverage
# Run tests in watch mode during development
pnpm test:watchEnd-to-End Testing (Playwright)
We use Playwright for full end-to-end browser testing. Playwright tests execute against a locally running instance seeded with test data.
bash
# 1. Reset database to structured seed state
pnpm --filter @neverline/client db:reset
# 2. Start dev servers
pnpm dev
# 3. In a new terminal, run E2E suites
pnpm test:e2eUI Mode
When debugging E2E tests, use the Playwright UI mode:
bash
pnpm test:e2e --uiManual Verification
While automated tests cover >80% of lines, manual QA is required for:
- Animations and Framer Motion transitions
- Hardware integrations (e.g., physical barcode scanner testing via
apps/mobile-access) - Responsive design on physical mobile devices