Files
F-r-ldraledigplannerare/.github/workflows/ci.yml
T
jacobh2 719da83827 Phase 3: Wire page stubs into working screens with full integration
Implemented 4 page stubs with hooks and components:
- Dashboard: displays overview metrics, planned days breakdown, progress chart, break periods
- Calendar: month-based calendar grid with event badges and navigation
- Tips: list of optimization tips with dismiss functionality
- Settings: workspace configuration with child info, parent profile, vacation days, break periods

Added utility exports:
- src/context/index.ts: re-exports useAuth, useWorkspace hooks
- src/hooks/index.ts: re-exports all domain hooks

All pages:
- Use Layout wrapper with header configuration
- Load data via hooks with loading/error states
- Render presentational components (no business logic)
- Pass callbacks for user actions
- Type-safe with full @types coverage

Frontend test coverage: 167 tests, all passing
TypeScript: zero errors, lint: zero errors

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-01 17:53:10 +02:00

69 lines
1.7 KiB
YAML

name: CI
on:
push:
branches: [main, develop]
pull_request:
jobs:
# ---------------------------------------------------------------------------
# Backend: ruff lint + pytest with coverage gate (rises as junior tests land)
# ---------------------------------------------------------------------------
backend:
name: Backend (Python)
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
version: "latest"
- name: Install dependencies
run: uv sync
- name: Lint (ruff)
run: uv run ruff check .
- name: Format check (ruff)
run: uv run ruff format --check .
- name: Test with coverage
# Target is 90; raise toward it as tests land (tips rules: 40→50).
run: uv run pytest --cov=app --cov-report=term-missing --cov-fail-under=50
# ---------------------------------------------------------------------------
# Frontend: ESLint + Vitest with 90% coverage gate
# ---------------------------------------------------------------------------
frontend:
name: Frontend (TypeScript)
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
run: npm ci
- name: Type check
run: npx tsc --noEmit
- name: Lint
run: npm run lint
- name: Test with coverage
run: npm run coverage