You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implemented as part of the Phase 6 Action (the two are tightly coupled). **No end-to-end CI test has been run yet.**
61
+
Implemented as part of the Phase 6 Action (the two are tightly coupled). E2E verified via PR #2 self-test: `min-coverage: '20'` passed, `min-coverage: '99'` breached with correct Check Run failure, baselines fetched from prior main push.
62
62
63
63
-[x] Threshold logic in the reporting Action (`min-coverage`, `max-coverage-drop`, `max-complexity`, `max-duplication` inputs)
Lives at `.github/actions/report/`. All files written and TypeScript compiled clean; `dist/run.js` committed. **No end-to-end CI test has been run yet — this is the next objective and is pivotal before any consuming repo can adopt the Action.**
82
+
Lives at `.github/actions/report/`. All files written and TypeScript compiled clean; `dist/run.js` committed. E2E self-test verified: push-to-main ingests, feature-branch push skips cleanly, PR Check Runs post correctly with threshold enforcement.
83
83
84
84
-[x] Action scaffold (`action.yml`, inputs: `worker-url`, threshold knobs; invokes `collect.sh` via `bash` to avoid exec-permission issues)
85
85
-[x] OIDC token minting: `core.getIDToken('coverage-tracker')`; non-default-branch pushes skip before mint to avoid 422
@@ -106,7 +106,7 @@ The Action runner (`src/run.ts`) contains pure helper functions that unit-test t
106
106
-[x] Add `vitest` and `@vitest/coverage-v8` to devDependencies in `.github/actions/report/package.json`
107
107
-[x] Add `vitest.config.ts` to `.github/actions/report/`
108
108
-[x] Update `test` script in `package.json`: `"test": "vitest run --coverage"`
109
-
-[x] Write `src/__tests__/run.test.ts` — 31 tests covering all 5 helpers; all green
109
+
-[x] Write `src/__tests__/run.test.ts` — 52 tests covering all helpers + I/O paths; all green
110
110
-[x] Rebuild `dist/run.js` after adding exports (`npm run build`); verified `run()` fires in bundle (`node dist/run.js` → "WORKER_URL is not set")
111
111
112
112
#### Layer 2 — `collect.sh` parser fixtures
@@ -129,16 +129,16 @@ High value but a real setup cost — requires `@cloudflare/vitest-pool-workers`,
Self-test workflow created. Uses `min-coverage: '20'` (runner's actual coverage is ~22% — only pure helpers are tested). Layer 2 fixture step added alongside the runner tests.
132
+
Self-test workflow created. Uses `min-coverage: '20'`; actual coverage is 98.09% (52 tests covering all helpers + I/O paths). Layer 2 fixture step added alongside the runner tests.
133
133
134
134
#### Step 2 — End-to-end test matrix (run in order)
-[]**Push to feature branch** — Action exits cleanly with "Not on default branch" info log; job green, no 422, no metric written
138
-
-[]**PR from same repo** — baselines fetched (from the push above), Check Run posted on PR head SHA with summary table; pass and fail cases exercised by adjusting `min-coverage`
-[x]**Push to feature branch** — Action exits cleanly with "Not on default branch (test/matrix-threshold-and-branch ≠ main) — skipping ingest." info log; job green, no 422, no metric written
138
+
-[x]**PR from same repo** — baselines fetched, Check Run posted on PR head SHA with summary table; pass (`min-coverage: '20'`) and fail (`min-coverage: '99'`) cases both verified via PR #2
139
139
-[ ]**Fork PR** (if applicable) — OIDC mint fails gracefully (warning, not failure); Check Run post skipped gracefully
140
-
-[]**jscpd** — auto-installs on a fresh runner; `jscpd-report.json` produced; duplication % appears in Check Run summary
141
-
-[]**Threshold breach** — set `min-coverage: '99'`, confirm job fails with correct reason in Check Run summary
140
+
-[x]**jscpd** — auto-installs on fresh runner; `Duplication: 0.00% (no clones detected)` collected; appears in Check Run summary table
141
+
-[x]**Threshold breach** — `min-coverage: '99'` with coverage at 98.09%; action fails with "One or more coverage thresholds were not met.", Check Run posted with `conclusion: failure`
142
142
143
143
**Go/Python parser paths are not exercised by this workflow.** The Layer 2 fixture script covers those; a repo with `go.mod` or `pyproject.toml` and a real coverage artifact is needed for full end-to-end verification of those paths.
0 commit comments