52 lines
1.8 KiB
JavaScript
52 lines
1.8 KiB
JavaScript
// 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',
|
|
},
|
|
],
|
|
},
|
|
];
|