- CONVENTIONAL-COMMITS.md: vendored spec (v1.0.0); CLAUDE.md requires agent-written commits to follow it - tasks 0002-0020: remaining task breakdown of the gitea-axi spec (0019 reframed around the three-tier test taxonomy: unit, integration, end-to-end) - spec, CONTEXT.md, and ADRs 0006/0007/0011: pending design refinements from the planning sessions
27 lines
1.9 KiB
Markdown
27 lines
1.9 KiB
Markdown
---
|
|
spec: gitea-axi
|
|
blocked-by: 0001-scaffold-and-issue-list-core
|
|
---
|
|
|
|
## What to build
|
|
|
|
The end-to-end tier of the test suite: a CI workflow that runs the local vitest suite plus end-to-end tests against a live disposable Gitea instance, verifying that fixture recordings remain accurate and the full HTTP pipeline works.
|
|
|
|
This project's test taxonomy has three tiers (recorded here because the committed spec's two-tier wording is frozen):
|
|
|
|
- **Unit tests** — functions within a single file, no I/O (e.g. `parseRemoteUrl`, `relativeTime`).
|
|
- **Integration tests** — functionality across files, driven at the CLI seam (argv in, stdout/exit-code out) against the fixture server; what the spec's "Two-tier test strategy" calls the "local / unit tier".
|
|
- **End-to-end tests** — the same CLI seam against a live disposable Gitea instance; what the spec calls the "CI integration tier". This task builds this tier.
|
|
|
|
CI runs on Gitea Actions on the operator's instance, with the disposable Gitea as a docker service container pinned to the latest stable image tag (bumped deliberately, not floating).
|
|
The end-to-end tests provision what they need on the disposable instance (repo, token, seed issues/PRs) and then exercise the real CLI seam against it.
|
|
The workflow file stays GitHub-Actions-compatible so the GitHub mirror can adopt it nearly verbatim later.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [ ] A workflow runs on push/PR on Gitea Actions, executing the unit and integration tiers (the local vitest suite) and the end-to-end tier
|
|
- [ ] The disposable Gitea runs as a service container pinned to a specific stable image tag
|
|
- [ ] End-to-end tests provision their own repo, token, and seed data on the disposable instance, then assert real CLI output and exit codes for at least the tracer command set
|
|
- [ ] The workflow uses only syntax that works verbatim (or near-verbatim) on GitHub Actions
|
|
- [ ] A fixture-vs-live divergence in a covered response shape fails the end-to-end tier
|