Skip to content

Commit 40256bc

Browse files
committed
Require implementation of formatter.init
1 parent af978ca commit 40256bc

File tree

2 files changed

+30
-24
lines changed

2 files changed

+30
-24
lines changed

lib/formatter.js

+22-16
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ function Formatter(opts) {
1515
Formatter.prototype.init = function (reporter) {
1616
var self = this
1717

18+
reporter.push(LF + this.splitter(' Tests '))
19+
1820
reporter.on('test.start', function (test) {
1921
Object.defineProperty(test, 'title', { get: getTitle })
2022
})
@@ -46,20 +48,27 @@ Formatter.prototype.summary = function (summary) {
4648
output.push(this.splitter(' Summary '))
4749

4850
if (this.needDuration) {
49-
output.push(
50-
this.format('duration: ' + prettyMs(summary.duration), 'cyan')
51-
)
51+
output.push(this.format(
52+
'duration: ' + prettyMs(summary.duration),
53+
'cyan'
54+
))
5255
}
53-
output.push(
54-
this.format('planned: ' + summary.planned, summary.planned > 0 ? 'cyan' : 'red')
55-
)
56-
output.push(this.format('assertions: ' + summary.assertions, 'cyan'))
57-
output.push(
58-
this.format('pass: ' + summary.pass, summary.pass ? 'green' : 'cyan')
59-
)
60-
output.push(
61-
this.format('fail: ' + summary.fail, summary.fail ? 'red' : 'cyan')
62-
)
56+
output.push(this.format(
57+
'planned: ' + summary.planned,
58+
summary.planned instanceof Error ? 'red' : 'cyan'
59+
))
60+
output.push(this.format(
61+
'assertions: ' + summary.assertions,
62+
'cyan'
63+
))
64+
output.push(this.format(
65+
'pass: ' + summary.pass,
66+
summary.pass ? 'green' : 'cyan'
67+
))
68+
output.push(this.format(
69+
'fail: ' + summary.fail,
70+
summary.fail ? 'red' : 'cyan'
71+
))
6372

6473
return output.join(LF)
6574
}
@@ -114,9 +123,6 @@ Formatter.prototype.splitter = function (s) {
114123
}
115124

116125
Formatter.prototype.test = function (test) {
117-
if (!test) {
118-
return LF + this.splitter(' Tests ')
119-
}
120126
if (this.needProgress) {
121127
if (test.fail) {
122128
return this.format(symbols.cross + ' ' + test.title, 'cha.red.eraseLine')

lib/reporter.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,24 @@ var parser = require('./parser')
33
module.exports = function (formatter) {
44
var reporter = parser()
55

6-
if (formatter.init) {
7-
formatter.init(reporter)
8-
}
9-
10-
reporter.push(formatter.test())
6+
formatter.init(reporter)
117

128
reporter.on('test.end', function (test) {
139
reporter.push(formatter.test(test))
1410
})
1511

1612
reporter.on('summary', function (summary, fails, comments) {
1713
reporter.failed = !!summary.fail
18-
if (summary.planned < 1) {
14+
15+
var planned = summary.planned
16+
if (planned < 1) {
1917
reporter.failed = true
20-
summary.planned = 'NA (plans must appear once in output)'
18+
summary.planned = new Error('NA (plans must appear once in output)')
19+
summary.planned.raw = planned
2120
} else if (summary.assertions !== summary.planned) {
2221
reporter.failed = true
23-
summary.planned = summary.planned + "(plans don't match final assertions)"
22+
summary.planned = new Error(planned + "(plans don't match final assertions)")
23+
summary.planned.raw = planned
2424
}
2525

2626
reporter.push(formatter.summary(summary))

0 commit comments

Comments
 (0)