67 lines
1.8 KiB
Markdown
67 lines
1.8 KiB
Markdown
---
|
|
description: "Run fast unit tests only (backend SQLite + frontend vitest). Designed for agent verify loop — runs in <30s."
|
|
handoffs:
|
|
- label: "Fix Test Failures"
|
|
agent: "fullstack-coder"
|
|
prompt: "Fix the following test failures from the unit test run. Review the error output and implement fixes."
|
|
condition: "Tests failed"
|
|
tools: "bash, grep, read"
|
|
---
|
|
|
|
## User Input
|
|
$ARGUMENTS
|
|
|
|
## Goal
|
|
Run ONLY fast unit tests on both backend and frontend. This is the **default verification step** during development — should complete in <30s with no Docker dependency.
|
|
|
|
## Required Skills
|
|
MANDATORY USE `skill({name="semantics-testing"})` — test conventions, anti-tautology rules.
|
|
|
|
## Execution Steps
|
|
|
|
### 1. Run backend unit tests
|
|
```bash
|
|
make test-unit
|
|
```
|
|
This excludes `tests/integration/` and uses SQLite in-memory/temp-file databases. No Docker required.
|
|
|
|
If tests fail:
|
|
- Read the failing test file to understand the contract
|
|
- Check if the failure is in code you just changed
|
|
- Handoff to Fix Test Failures if needed
|
|
|
|
### 2. Run frontend unit tests
|
|
```bash
|
|
make test-frontend
|
|
```
|
|
This runs vitest with jsdom environment. All SvelteKit imports are mocked.
|
|
|
|
### 3. Linting (quick gate)
|
|
```bash
|
|
make lint
|
|
```
|
|
|
|
## Output Format
|
|
```
|
|
## Unit Test Results
|
|
|
|
### Backend (pytest)
|
|
- Total: N | Passed: N | Failed: N | Skipped: N
|
|
- Time: X.Xs
|
|
|
|
### Frontend (vitest)
|
|
- Total: N | Passed: N | Failed: N
|
|
|
|
### Linting
|
|
- Backend: [PASS/FAIL]
|
|
- Frontend: [PASS/FAIL]
|
|
|
|
### Overall: [PASS / FAIL]
|
|
```
|
|
|
|
## Constraints
|
|
- NEVER run `pip install` or `npm install`.
|
|
- This target MUST complete in <120s (enforced by timeout wrapper).
|
|
- If tests time out, report which files passed and which timed out.
|
|
- For agent-driven fix loops: run `make test-unit` after every backend change, `make test-frontend` after every frontend change.
|