Files
gitea-axi/.claude/tasks/0019-ci-integration-tier.md
alexion d03a079854 docs: adopt Conventional Commits and land planning docs
- 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
2026-07-11 07:14:39 -04:00

1.9 KiB

spec, blocked-by
spec blocked-by
gitea-axi 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