Move band management into dedicated settings pages
- Add BandSettingsPage (/bands/:id/settings/:panel) with Members, Storage, and Band Settings panels matching the mockup design - Strip members list, invite controls, and NC folder config from BandPage — library view now focuses purely on recordings workflow - Add band-scoped nav section to AppShell sidebar (Members, Storage, Band Settings) with correct per-panel active states - Fix amAdmin bug: was checking if any member is admin; now correctly checks if the current user holds the admin role - Add 31 vitest tests covering BandPage cleanliness, routing, access control (admin vs member), and per-panel mutation behaviour - Add test:web, test:api:unit, test:feature (post-feature pipeline), and ci tasks to Taskfile; frontend tests run via podman node:20-alpine - Add README with architecture overview, setup guide, and test docs - Add @testing-library/dom and @testing-library/jest-dom to package.json Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
41
Taskfile.yml
41
Taskfile.yml
@@ -87,16 +87,51 @@ tasks:
|
||||
|
||||
# ── Testing ───────────────────────────────────────────────────────────────────
|
||||
|
||||
# Run this after every feature branch — fast, no external services required.
|
||||
test:feature:
|
||||
desc: "Post-feature pipeline: typecheck + frontend tests + backend unit tests (no services needed)"
|
||||
cmds:
|
||||
- task: typecheck:web
|
||||
- task: test:web
|
||||
- task: test:api:unit
|
||||
- task: test:worker
|
||||
- task: test:watcher
|
||||
|
||||
# Full CI pipeline — runs everything including integration tests.
|
||||
# Requires: services up (task dev:detach), DB migrated.
|
||||
ci:
|
||||
desc: "Full CI pipeline: lint + typecheck + all tests (requires services running)"
|
||||
cmds:
|
||||
- task: lint
|
||||
- task: typecheck:web
|
||||
- task: test:web
|
||||
- task: test:api
|
||||
- task: test:worker
|
||||
- task: test:watcher
|
||||
|
||||
test:
|
||||
desc: Run all tests
|
||||
desc: Run all backend tests (unit + integration)
|
||||
deps: [test:api, test:worker, test:watcher]
|
||||
|
||||
test:web:
|
||||
desc: Run frontend unit tests (via podman — no local Node required)
|
||||
dir: web
|
||||
cmds:
|
||||
- podman run --rm -v "$(pwd)":/app:Z -w /app node:20-alpine
|
||||
sh -c "npm install --legacy-peer-deps --silent && npm run test"
|
||||
|
||||
test:api:
|
||||
desc: Run API tests with coverage
|
||||
desc: Run all API tests with coverage (unit + integration)
|
||||
dir: api
|
||||
cmds:
|
||||
- uv run pytest tests/ -v --cov=src/rehearsalhub --cov-report=term-missing
|
||||
|
||||
test:api:unit:
|
||||
desc: Run API unit tests only (no database or external services required)
|
||||
dir: api
|
||||
cmds:
|
||||
- uv run pytest tests/unit/ -v -m "not integration"
|
||||
|
||||
test:worker:
|
||||
desc: Run worker tests with coverage
|
||||
dir: worker
|
||||
@@ -110,7 +145,7 @@ tasks:
|
||||
- uv run pytest tests/ -v --cov=src/watcher --cov-report=term-missing
|
||||
|
||||
test:integration:
|
||||
desc: Run integration tests
|
||||
desc: Run integration tests (requires services running)
|
||||
dir: api
|
||||
cmds:
|
||||
- uv run pytest tests/integration/ -v -m integration
|
||||
|
||||
Reference in New Issue
Block a user