Skip to content

Commit ab7966c

Browse files
committed
Improve tests, 100% coverage
1 parent c2905f6 commit ab7966c

File tree

5 files changed

+78
-12
lines changed

5 files changed

+78
-12
lines changed

no-tests-module/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log('I have no tests')

no-tests-module/package.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"scripts": {
3+
"test": "exit 1"
4+
}
5+
}

test/exampleModule.js

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
const test = require('ava')
2+
3+
const Mutode = require('../src/mutode')
4+
5+
const MUTANTS = 74
6+
const KILLED = 54
7+
const SURVIVED = 19
8+
const DISCARDED = 1
9+
10+
process.chdir('./example-module')
11+
12+
const opts = {}
13+
14+
if (process.env.MUTODE_CONCURRENCY) opts.concurrency = process.env.MUTODE_CONCURRENCY
15+
16+
test.serial('Example module', async t => {
17+
let mutode = new Mutode(opts)
18+
await mutode.run()
19+
t.is(mutode.killed + mutode.survived + mutode.discarded, mutode.mutants)
20+
t.true(mutode.mutants >= MUTANTS)
21+
t.true(mutode.killed >= KILLED)
22+
t.true(mutode.survived >= SURVIVED)
23+
t.true(mutode.discarded >= DISCARDED)
24+
t.true(mutode.coverage > 50)
25+
await t.throws(mutode.run())
26+
})
27+
28+
test('Exmaple module - killed', async t => {
29+
let mutode = new Mutode({
30+
paths: 'src/killed.js',
31+
concurrency: 1
32+
})
33+
await mutode.run()
34+
t.is(mutode.mutants, mutode.killed)
35+
t.is(mutode.coverage, 100)
36+
})
37+
38+
test('Exmaple module - survived', async t => {
39+
let mutode = new Mutode({
40+
paths: 'src/survived.js',
41+
concurrency: 1
42+
})
43+
await mutode.run()
44+
t.is(mutode.mutants, mutode.survived)
45+
t.is(mutode.coverage, 0)
46+
})
47+
48+
test('Exmaple module - discarded', async t => {
49+
let mutode = new Mutode({
50+
paths: 'src/discarded.js',
51+
concurrency: 1
52+
})
53+
await mutode.run()
54+
t.is(mutode.discarded, DISCARDED)
55+
})

test/noTestsModule.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const test = require('ava')
2+
3+
const Mutode = require('../src/mutode')
4+
5+
process.chdir('./no-tests-module')
6+
7+
const opts = {}
8+
9+
if (process.env.MUTODE_CONCURRENCY) opts.concurrency = process.env.MUTODE_CONCURRENCY
10+
11+
test.serial('No tests module', async t => {
12+
let mutode = new Mutode(opts)
13+
await t.throws(mutode.run())
14+
})

test/test.js

+3-12
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,20 @@ const test = require('ava')
22

33
const Mutode = require('../src/mutode')
44

5-
process.chdir('./example-module')
6-
75
const opts = {}
86

97
if (process.env.MUTODE_CONCURRENCY) opts.concurrency = process.env.MUTODE_CONCURRENCY
108

11-
test('Example module', async t => {
12-
let mutode = new Mutode(opts)
9+
test('New instance - Correct', async t => {
10+
let mutode = new Mutode()
1311
t.is(mutode.mutants, 0)
1412
t.is(mutode.killed, 0)
1513
t.is(mutode.survived, 0)
1614
t.is(mutode.discarded, 0)
1715
t.is(mutode.coverage, 0)
18-
await mutode.run()
19-
t.is(mutode.killed + mutode.survived + mutode.discarded, mutode.mutants)
20-
t.true(mutode.mutants >= 75)
21-
t.true(mutode.killed >= 55)
22-
t.true(mutode.survived >= 19)
23-
t.true(mutode.discarded >= 1)
24-
t.true(mutode.coverage > 50)
2516
})
2617

27-
test('Empty paths', async t => {
18+
test('New instance - Empty paths', async t => {
2819
t.throws(() => {
2920
const mutodeFail = new Mutode({paths: 'hello.js'})
3021
mutodeFail.run()

0 commit comments

Comments
 (0)