Repository navigation
v0.10.0
Stryker runs from a package directory
@redproof/stryker takes a cwd option, relative to the Gate root. Stryker runs from that directory, and configFile and Stryker's own relative paths resolve from it. The directory cannot leave the Gate root, lexically or through a symbolic link. A cwd that resolves outside refuses with stryker-cwd-outside-root. Real monorepos need this: a mutation-test target is usually one package, not the repository root.
Accepted-mutant baselines
@redproof/stryker gains a noNewUndetectedMutants Rule, id stryker/no-new-undetected-mutants. It reads a checked-in JSON array, acceptedMutantsFile, resolved from the working directory. Each entry names a mutant by file, full start and end location, mutator, and replacement. This is the same key Stryker uses in stryker-incremental.json, so an entry can be copied from that report.
The Rule matches identities, not counts. A new surviving mutant breaches even when the total survivor count is unchanged. Three cases refuse. A malformed, duplicate, or escaping entry refuses before Stryker runs, with stryker-accepted-mutants-invalid or stryker-accepted-mutants-outside-root. An accepted mutant that the tests now detect refuses with stryker-accepted-mutants-stale. An undetected mutant without a stable identity refuses with stryker-mutant-identity-unavailable, or stryker-mutant-identity-ambiguous when two mutants share one identity.
Select noNewUndetectedMutants in place of mutantsDetected. With both, every accepted mutant still breaches mutantsDetected.
Stryker temp files
The adapter runs Stryker with cleanTempDir: 'always'. A failing initial test run no longer leaves .stryker-tmp inside the Gate copy. Before this release that turned a REFUSE into an unrestored-workspace error during prove.
API
StrykerAdapterOptions.cwd?: string.StrykerRuleOptions.noNewUndetectedMutants?: { acceptedMutantsFile: string }.AcceptedStrykerMutantis exported.- The
Known optionslist in the unknown-rule error now names three options.