Skip to content

Commit 9ba8eca

Browse files
Jerry Muzsikboneskull
authored andcommitted
Refactor Reporter tests (#3272)
* Closes #3260 * refactor-better test harness for reporters tests' * refactor-better test harness for reporters tests' * refactor - some additional work * refactor - helper func * refactor - helper func * refactor - helper func * fix - improvements to helper functions
1 parent 8e740c5 commit 9ba8eca

16 files changed

+374
-647
lines changed

nom

Whitespace-only changes.

test/reporters/base.spec.js

Lines changed: 53 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,16 @@ var assert = require('assert');
55
var Base = require('../../lib/reporters/base');
66
var Assert = require('assert').AssertionError;
77

8-
function makeTest (err) {
9-
return {
10-
err: err,
11-
titlePath: function () {
12-
return ['test title'];
13-
}
14-
};
15-
}
16-
17-
function createElements (argObj) {
18-
var res = [];
19-
for (var i = argObj.from; i <= argObj.to; i += 1) {
20-
res.push('element ' + i);
21-
}
22-
return res;
23-
}
8+
var makeTest = require('./helpers').makeTest;
9+
var createElements = require('./helpers').createElements;
2410

2511
describe('Base reporter', function () {
2612
var stdout;
2713
var stdoutWrite;
2814
var useColors;
15+
var err;
16+
var errOut;
17+
var test;
2918

3019
beforeEach(function () {
3120
stdout = [];
@@ -43,11 +32,12 @@ describe('Base reporter', function () {
4332
});
4433

4534
describe('showDiff', function () {
46-
it('should show diffs by default', function () {
47-
var err = new Assert({ actual: 'foo', expected: 'bar' });
48-
var errOut;
35+
beforeEach(function () {
36+
err = new Assert({ actual: 'foo', expected: 'bar' });
37+
});
4938

50-
var test = makeTest(err);
39+
it('should show diffs by default', function () {
40+
test = makeTest(err);
5141

5242
Base.list([test]);
5343

@@ -57,11 +47,8 @@ describe('Base reporter', function () {
5747
});
5848

5949
it('should show diffs if property set to `true`', function () {
60-
var err = new Assert({ actual: 'foo', expected: 'bar' });
61-
var errOut;
62-
6350
err.showDiff = true;
64-
var test = makeTest(err);
51+
test = makeTest(err);
6552

6653
Base.list([test]);
6754

@@ -71,11 +58,8 @@ describe('Base reporter', function () {
7158
});
7259

7360
it('should not show diffs when showDiff property set to `false`', function () {
74-
var err = new Assert({ actual: 'foo', expected: 'bar' });
75-
var errOut;
76-
7761
err.showDiff = false;
78-
var test = makeTest(err);
62+
test = makeTest(err);
7963

8064
Base.list([test]);
8165

@@ -85,10 +69,9 @@ describe('Base reporter', function () {
8569
});
8670

8771
it('should not show diffs when expected is not defined', function () {
88-
var err = new Error('ouch');
89-
var errOut;
72+
err = new Error('ouch');
9073

91-
var test = makeTest(err);
74+
test = makeTest(err);
9275

9376
Base.list([test]);
9477

@@ -98,10 +81,7 @@ describe('Base reporter', function () {
9881
});
9982

10083
it('should not show diffs when hideDiff is set', function () {
101-
var err = new Assert({ actual: 'foo', expected: 'bar' });
102-
var errOut;
103-
104-
var test = makeTest(err);
84+
test = makeTest(err);
10585

10686
Base.hideDiff = true;
10787
Base.list([test]);
@@ -116,13 +96,12 @@ describe('Base reporter', function () {
11696
describe('Getting two strings', function () {
11797
// Fix regression V1.2.1(see: issue #1241)
11898
it('should show strings diff as is', function () {
119-
var err = new Error('test');
120-
var errOut;
99+
err = new Error('test');
121100

122101
err.actual = 'foo\nbar';
123102
err.expected = 'foo\nbaz';
124103
err.showDiff = true;
125-
var test = makeTest(err);
104+
test = makeTest(err);
126105

127106
Base.list([test]);
128107

@@ -138,6 +117,9 @@ describe('Base reporter', function () {
138117

139118
describe('Diff generation', function () {
140119
var oldInlineDiffs;
120+
var actual;
121+
var expected;
122+
var output;
141123

142124
beforeEach(function () {
143125
oldInlineDiffs = Base.inlineDiffs;
@@ -148,35 +130,34 @@ describe('Base reporter', function () {
148130
});
149131

150132
it('should generate unified diffs if `inlineDiff === false`', function () {
151-
var actual = 'a foo unified diff';
152-
var expected = 'a bar unified diff';
133+
actual = 'a foo unified diff';
134+
expected = 'a bar unified diff';
153135

154136
Base.inlineDiffs = false;
155-
var output = Base.generateDiff(actual, expected);
137+
output = Base.generateDiff(actual, expected);
156138

157139
expect(output).to.equal('\n + expected - actual\n\n -a foo unified diff\n +a bar unified diff\n ');
158140
});
159141

160142
it('should generate inline diffs if `inlineDiffs === true`', function () {
161-
var actual = 'a foo inline diff';
162-
var expected = 'a bar inline diff';
143+
actual = 'a foo inline diff';
144+
expected = 'a bar inline diff';
163145

164146
Base.inlineDiffs = true;
165-
var output = Base.generateDiff(actual, expected);
147+
output = Base.generateDiff(actual, expected);
166148

167149
expect(output).to.equal(' \n actual expected\n \n a foobar inline diff\n ');
168150
});
169151
});
170152

171153
describe('Inline strings diff', function () {
172154
it('should show single line diff if property set to `true`', function () {
173-
var err = new Error('test');
174-
var errOut;
155+
err = new Error('test');
175156

176157
err.actual = 'a foo inline diff';
177158
err.expected = 'a bar inline diff';
178159
err.showDiff = true;
179-
var test = makeTest(err);
160+
test = makeTest(err);
180161

181162
Base.inlineDiffs = true;
182163
Base.list([test]);
@@ -190,13 +171,12 @@ describe('Base reporter', function () {
190171
});
191172

192173
it('should split lines when string has more than 4 line breaks', function () {
193-
var err = new Error('test');
194-
var errOut;
174+
err = new Error('test');
195175

196176
err.actual = 'a\nfoo\ninline\ndiff\nwith\nmultiple lines';
197177
err.expected = 'a\nbar\ninline\ndiff\nwith\nmultiple lines';
198178
err.showDiff = true;
199-
var test = makeTest(err);
179+
test = makeTest(err);
200180

201181
Base.inlineDiffs = true;
202182
Base.list([test]);
@@ -216,14 +196,15 @@ describe('Base reporter', function () {
216196
});
217197

218198
describe('unified diff reporter', function () {
219-
it('should separate diff hunks by two dashes', function () {
220-
var err = new Error('test');
221-
var errOut;
199+
beforeEach(function () {
200+
err = new Error('test');
201+
});
222202

203+
it('should separate diff hunks by two dashes', function () {
223204
err.actual = createElements({ from: 2, to: 11 });
224205
err.expected = createElements({ from: 1, to: 10 });
225206
err.showDiff = true;
226-
var test = makeTest(err);
207+
test = makeTest(err);
227208

228209
Base.inlineDiffs = false;
229210
Base.list([test]);
@@ -256,13 +237,12 @@ describe('Base reporter', function () {
256237
});
257238

258239
it('should stringify objects', function () {
259-
var err = new Error('test');
260-
var errOut;
240+
err = new Error('test');
261241

262242
err.actual = {key: 'a1'};
263243
err.expected = {key: 'e1'};
264244
err.showDiff = true;
265-
var test = makeTest(err);
245+
test = makeTest(err);
266246

267247
Base.list([test]);
268248

@@ -274,15 +254,14 @@ describe('Base reporter', function () {
274254
});
275255

276256
it('should stringify Object.create(null)', function () {
277-
var err = new Error('test');
278-
var errOut;
257+
err = new Error('test');
279258

280259
err.actual = Object.create(null);
281260
err.actual.hasOwnProperty = 1;
282261
err.expected = Object.create(null);
283262
err.expected.hasOwnProperty = 2;
284263
err.showDiff = true;
285-
var test = makeTest(err);
264+
test = makeTest(err);
286265

287266
Base.list([test]);
288267

@@ -294,15 +273,13 @@ describe('Base reporter', function () {
294273
});
295274

296275
it('should handle error messages that are not strings', function () {
297-
var errOut;
298-
299276
try {
300277
assert(false, true);
301278
} catch (err) {
302279
err.actual = false;
303280
err.expected = true;
304281
err.showDiff = true;
305-
var test = makeTest(err);
282+
test = makeTest(err);
306283

307284
Base.list([test]);
308285

@@ -315,8 +292,6 @@ describe('Base reporter', function () {
315292
});
316293

317294
it('should interpret chaijs custom error messages', function () {
318-
var errOut;
319-
320295
try {
321296
// expect(43, 'custom error message').to.equal(42);
322297
// AssertionError: custom error message: expected 43 to equal 42.
@@ -325,7 +300,7 @@ describe('Base reporter', function () {
325300
err.actual = 43;
326301
err.expected = 42;
327302
err.showDiff = true;
328-
var test = makeTest(err);
303+
test = makeTest(err);
329304

330305
Base.list([test]);
331306

@@ -339,51 +314,51 @@ describe('Base reporter', function () {
339314
});
340315

341316
it('should remove message from stack', function () {
342-
var err = {
317+
err = {
343318
message: 'Error',
344319
stack: 'Error\nfoo\nbar',
345320
showDiff: false
346321
};
347-
var test = makeTest(err);
322+
test = makeTest(err);
348323

349324
Base.list([test]);
350325

351-
var errOut = stdout.join('\n').trim();
326+
errOut = stdout.join('\n').trim();
352327
expect(errOut).to.equal('1) test title:\n Error\n foo\n bar');
353328
});
354329

355330
it('should use the inspect() property if `message` is not set', function () {
356-
var err = {
331+
err = {
357332
showDiff: false,
358333
inspect: function () { return 'an error happened'; }
359334
};
360-
var test = makeTest(err);
335+
test = makeTest(err);
361336
Base.list([test]);
362-
var errOut = stdout.join('\n').trim();
337+
errOut = stdout.join('\n').trim();
363338
expect(errOut).to.equal('1) test title:\n an error happened');
364339
});
365340

366341
it('should set an empty message if `message` and `inspect()` are not set', function () {
367-
var err = {
342+
err = {
368343
showDiff: false
369344
};
370-
var test = makeTest(err);
345+
test = makeTest(err);
371346
Base.list([test]);
372-
var errOut = stdout.join('\n').trim();
347+
errOut = stdout.join('\n').trim();
373348
expect(errOut).to.equal('1) test title:');
374349
});
375350

376351
it('should not modify stack if it does not contain message', function () {
377-
var err = {
352+
err = {
378353
message: 'Error',
379354
stack: 'foo\nbar',
380355
showDiff: false
381356
};
382-
var test = makeTest(err);
357+
test = makeTest(err);
383358

384359
Base.list([test]);
385360

386-
var errOut = stdout.join('\n').trim();
361+
errOut = stdout.join('\n').trim();
387362
expect(errOut).to.equal('1) test title:\n Error\n foo\n bar');
388363
});
389364
});

0 commit comments

Comments
 (0)