// tests/fix-round-4-5b-part-4-mutations.mjs // The mutations of fix round 4-5b, part 4 (decision 90), for the shared red // script (tests/helpers/red-round.sh, through tests/helpers/red-mutate.mjs). // An id named here has tests that pass at the round's start point 591f3c4 and // is proven red under its mutations instead: // - CTB: the catch of the shell reading already blocks at 591f3c4 (the // round adds only its test, through a preload); the mutation makes the // catch let the command through, in 591f3c4's hook. // - NVR: the [TOK] title and part 2's case name are already reworded in the // working tree's tests/ that the script copies into the clone; each // mutation puts the old "never" wording back into one of the two files. // Every span must match exactly once in the clone (591f3c4's code with the // working tree's tests/). Data only; never matched by `npm test`. export const MUTATIONS = [ { key: 'CTB-catch', id: 'CTB', what: 'the catch of the shell reading lets the command through', spans: [ { file: 'hooks/scripts/pre-bash-executor.mjs', find: 'blockArgs(true, true);', replace: 'void 0;', }, ], }, { key: 'NVR-title', id: 'NVR', what: 'the [TOK] title claims never again', spans: [ { file: 'tests/lib/arg-parser-tokenize.test.mjs', find: '[TOK] a quoted value stops at a quote that starts a word, and', replace: '[TOK] a quoted value never swallows a later flag, and', }, ], }, { key: 'NVR-e2e', id: 'NVR', what: "part 2's case name claims never again", spans: [ { file: 'tests/e2e-fix-round-4-5b-part-2.sh', find: "a quoted value stops at the quote that starts --since's value", replace: 'a quoted value never swallows --since', }, ], }, ];