test(workflows): record the discriminating mutation for the integration arm #1050
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!1050
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/1038-discriminating-mutation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #1047, which merged while this was being written. Comment-only change to one test arm — no behaviour change, zero deletions.
What this records
The conflict-resolution review established that the mutation stated on #1047 for the integration arm — dispatch a workflow that does not exist — does not show the arm is an integration check. A plain existence check catches that too, so it does not discriminate.
The mutation that does:
The
#1032guard stays green — release-cut.yml still has its block, so nothing is wrong with the file it reads — while the dispatch has drifted to another file entirely. Only the integration arm sees that.Reproduced independently before recording it: a
decoy-cut.ymlcopy plus a redirected dispatch reddens exactly one arm, withthe #1032 guard does not read decoy-cut.yml -- the file fire-cut actually dispatches.Why it is worth a commit
The arm's value is entirely in being an integration check rather than an existence check, and nothing in the code said so. Someone simplifying it to
os.path.exists(target)would keep every stated mutation green and silently lose the drift case. The discriminating mutation is now written into the arm.The distinction, and the four-mutation matrix that produced it, came from the conflict-resolution review; the reproduction is mine.
Tracker: frankenbit/release-toolkit#1038
APPROVE — exact head
4c5cd9b4f6f5c697779b74f717f13ff583ec9f4a.This is a comment-only follow-up plus a valid changelog fragment; it does not change workflow behavior. I ran the integration arm and independently exercised the discriminating mutation: redirecting
fire-cutto a different existing workflow carrying a valid workflow-level concurrency block made exactly this arm fail withthe #1032 guard does not read decoy-cut.yml, while the baseline passes. This demonstrates an integration check rather than an existence-only check.Evidence at this head:
tests/workflows.bats72/72;go test -count=1 ./...,go vet ./...,go build ./...,rt fragment-check changelog.d(rc=0; only the pre-existing 1046 warning), andgit diff --checkall pass. No remaining blocker.