@stryker-mutator/javascript-mutator

A plugin for javascript projects using Stryker

Usage no npm install needed!

<script type="module">
  import strykerMutatorJavascriptMutator from 'https://cdn.skypack.dev/@stryker-mutator/javascript-mutator';
</script>

README

Mutation testing badge Build Status NPM Node version Slack Chat

Stryker

Stryker JavaScript mutator

A mutator that supports JavaScript for Stryker, the JavaScript Mutation testing framework. This plugin does not transpile any code. The code that the @stryker-mutator/javascript-mutator gets should be executable in your environment (i.e. the @stryker-mutator/javascript-mutator does not add support for Babel projects).

Quickstart

First, install Stryker itself (you can follow the quickstart on the website)

Next, install this package:

npm install --save-dev @stryker-mutator/javascript-mutator

Now open up your stryker.conf.js (or stryker.conf.json) file and add the following components:

mutator: 'javascript',
// OR
mutator: {
    name: 'javascript',
    plugins: ['classProperties', 'optionalChaining'],
    excludedMutations: ['BooleanSubstitution', 'StringLiteral']
}

Now give it a go:

$ stryker run

Configuration

mutator.name [string]

The name of the mutator, use 'javascript' to enable this mutator.

mutator.plugins [(string | ParserPluginWithOptions)[]]

Default: ['asyncGenerators', 'bigInt', 'classProperties', 'dynamicImport', 'flow', 'jsx', 'objectRestSpread', ['decorators', { decoratorsBeforeExport: true }]

Configure custom Babel Syntax plugins. Syntax plugins allow you to parse different pieces of syntax. By default a number of plugins are configured. We might add more in the future. For example: you can configure your own Syntax plugins here to allow for stage 1 features.

mutator.excludedMutations [string[]]

See Stryker core's readme

Mutators

The JavaScript Mutator is a plugin to mutate JavaScript code. This is done using Babel without any plugins.

See test code to know which mutations are supported.