test: mutation testing — break dotup on purpose and check the suite notices

Each file in .tests/mutations/ is one deliberate bug: what it breaks, why that
matters, the assertion meant to catch it, and an OLD/NEW pair applied to a copy
of the tree. A mutation is KILLED only when the suite fails AND the named
assertion is among the failures — failing for an unrelated reason is reported
as WRONG-TEST, because that is luck, and luck is lost the next time the
unrelated test moves. A mutation whose OLD block no longer matches is STALE
rather than quietly skipped.

19 reproduces the DU-C1 shape: a comment moved back inside the fzf
line-continuation. It is killed by "dotup pick exits 0".
This commit is contained in:
bcherb2
2026-08-21 22:34:53 -04:00
parent 8448ff551a
commit d1e3f8bce2
19 changed files with 344 additions and 0 deletions
@@ -0,0 +1,9 @@
# what: ensure_chezmoi's installer call replaced with true
# why: the private tier died with `chezmoi: not found` AFTER writing the bws token
# kills: the installer call did not install anything
# run: lab:scenarios/31-chezmoi-absent.sh
<<<OLD
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b "$HOME/.local/bin" >/dev/null 2>&1 \
<<<NEW
true >/dev/null 2>&1 \
<<<END