1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
var assert = require('assert');
var helpers = require('./helpers');
var args = [];
var bang = require('../../lib/reporters/base').symbols.bang;
describe('retries', function() {
it('are ran in correct order', function(done) {
helpers.runMocha('retries/hooks.fixture.js', args, function(err, res) {
var lines, expected;
assert(!err);
lines = res.output.split(helpers.splitRegExp).map(function(line) {
return line.trim();
}).filter(function(line) {
return line.length;
}).slice(0, -1);
expected = [
'before',
'before each 0',
'TEST 0',
'after each 1',
'before each 1',
'TEST 1',
'after each 2',
'before each 2',
'TEST 2',
'after each 3',
'before each 3',
'TEST 3',
'after each 4',
'before each 4',
'TEST 4',
bang + 'after each 5',
'after'
];
expected.forEach(function(line, i) {
assert.equal(lines[i], line);
});
assert.equal(res.code, 1);
done();
});
});
it('should exit early if test passes', function (done) {
helpers.runMochaJSON('retries/early-pass.fixture.js', args, function(err, res) {
assert(!err);
assert.equal(res.stats.passes, 1);
assert.equal(res.stats.failures, 0);
assert.equal(res.tests[0].currentRetry, 1);
assert.equal(res.stats.tests, 1);
assert.equal(res.code, 0);
done();
});
});
it('should let test override', function (done) {
helpers.runMochaJSON('retries/nested.fixture.js', args, function(err, res) {
assert(!err);
assert.equal(res.stats.passes, 0);
assert.equal(res.stats.failures, 1);
assert.equal(res.stats.tests, 1);
assert.equal(res.tests[0].currentRetry, 1);
assert.equal(res.code, 1);
done();
});
});
it('should not hang w/ async test', function (done) {
helpers.runMocha('retries/async.fixture.js', args, function(err, res) {
var lines, expected;
assert(!err);
lines = res.output.split(helpers.splitRegExp).map(function(line) {
return line.trim();
}).filter(function(line) {
return line.length;
}).slice(0, -1);
expected = [
'before',
'before each 0',
'TEST 0',
'after each 1',
'before each 1',
'TEST 1',
'after each 2',
'before each 2',
'TEST 2',
'after each 3',
'after'
];
expected.forEach(function(line, i) {
assert.equal(lines[i], line);
});
assert.equal(res.code, 0);
done();
});
});
});
|