Home

boring / v2

publicBoring-Software-Inc/v2
Overview Code History Branches Pull requestsIssuesInsights Campfire Docs
main
HomeOverview Code PRsIssues

test(e2e): scripted live E2E for the comment lifecycle (§11)

4 months ago

39957ef
Authored
grim7/13/2026, 10:36:44 AM
bun test proves the lifecycle logic against a fake adapter; it does not
prove github accepts our calls or that the thread ends up correct. the
block→pass transition is the exact flow that broke on a real contributor's
PR (dither-kit#8), so it earns a live regression guard.

`bun run test:lifecycle` drives ONE PR through blocked → passed → blocked
on a sacrificial repo and asserts REAL github state via `gh api`, never our
DB:
- trips crypto-address (a wallet address in the diff) — deterministic, and
  needs no `workflow` oauth scope, unlike a honeypot workflow file.
- phase 1 (blocked): exactly one tripwire comment carrying the marker,
  reads blocked; a request-changes review exists; the tripwire check is
  failure on the head sha.
- phase 2 (passed transition): two comments — the first struck-through,
  superseded, marker-less; the second the passed resolution with the
  marker; the review is DISMISSED; the check is success on the new sha.
- phase 3 (re-block transition): three comments — the passed one now
  superseded, a fresh blocked comment last; a new review; check failure.

extends the test:run env-routing; idempotent (wipes its prior pr/branch
first); polls with a timeout and a clear "is the worker up?" message;
exits non-zero on any assertion failure (artifacts left to inspect on
failure, cleaned up on success). tier: §11 nightly/pre-release, NOT per-PR
CI — documented in the README (needs real creds + tunnel + a non-exempt
pusher). explicitly NOT automated: whether the copy reads well — a human
reads the thread once, taste stays human. imports COMMENT_MARKER/CHECK_NAME
from @tripwire/forge-github (added to root devDependencies) rather than
hardcoding drift-prone tokens.

checks: typecheck all, biome, boundaries, 229 tests (the live script is
not part of bun test).

Parent896b9ae

6 files changed
  • DECISIONS.md+39−0
  • README.md+27−0
  • all-summaries.md+20−0
  • bun.lock+1−0
  • package.json+4−2
  • scripts/test-lifecycle.ts+346−0