Skip to content

Commit 4ef5bc4

Browse files
committedNov 13, 2018
Have correct exit code with multiple reporters
1 parent 03314f7 commit 4ef5bc4

File tree

5 files changed

+9
-17
lines changed

5 files changed

+9
-17
lines changed
 

‎bin/lab

-3
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@ if (process.env.NODE_DEBUG_OPTION || inspectArg) {
5050
const main = async () => {
5151

5252
let { code } = await require('../lib/cli').run();
53-
if (typeof code !== 'number') {
54-
code = code[Object.keys(code)[0]];
55-
}
5653
process.exit(code);
5754
};
5855

‎lib/reporters/multiple.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,14 @@ internals.Reporter.prototype.report = function (text) {
7373

7474
internals.Reporter.prototype.finalize = async function (notebook) {
7575

76-
this._results = { err: false, code: [], output: [], count: 0 };
76+
this._results = { err: false, code: 0, output: [], count: 0 };
7777

7878
for (const key in this._reporters) {
7979
this._results.count++;
8080
try {
8181
const { code, output } = await this._reporters[key].finalize(notebook);
82-
this._results.code[key] = code;
82+
this._results.code = this._results.code || code;
8383
this._results.output[key] = output;
84-
this._results.processCode = this._results.processCode || code;
8584
}
8685
catch (ex) {
8786
this._results.err = this._results.err || ex;

‎test/cli.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ describe('CLI', () => {
118118

119119
it('exits with code 1 when function returns error with multiple reporters', async () => {
120120

121-
const result = await RunCli(['test/cli_failure/failure.js', '-r', 'console', '-r', 'lcov']);
121+
const result = await RunCli(['test/cli_throws/throws.js', '-r', 'console', '-r', 'lcov']);
122122
expect(result.code).to.equal(1);
123123
});
124124

‎test/cli_throws/throws.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ const it = lab.it;
2020

2121
describe('Test CLI throws', () => {
2222

23-
after((done) => {
23+
after(() => {
2424

2525
throw new Error('throwing after');
2626
});
2727

28-
it('handles thrown error', (done) => {
28+
it('handles thrown error', () => {
2929

30-
done();
30+
throw new Error('throwing in test');
3131
});
3232
});
3333

‎test/reporters.js

+3-7
Original file line numberDiff line numberDiff line change
@@ -1863,8 +1863,7 @@ describe('Reporter', () => {
18631863
const filename = Path.join(Os.tmpdir(), [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-'));
18641864

18651865
const { code, output } = await Lab.report(script, { reporter: ['lcov', 'console'], output: [filename, recorder], coverage: true });
1866-
expect(code.lcov).to.equal(0);
1867-
expect(code.console).to.equal(0);
1866+
expect(code).to.equal(0);
18681867
expect(output.lcov).to.equal(Fs.readFileSync(filename).toString());
18691868
expect(output.console).to.equal(recorder.content);
18701869
Fs.unlinkSync(filename);
@@ -1908,9 +1907,7 @@ describe('Reporter', () => {
19081907
const filename = Path.join(Os.tmpdir(), [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-'));
19091908

19101909
const { code, output } = await Lab.report(script, { reporter: ['lcov', 'html', 'console'], output: [filename, htmlRecorder, consoleRecorder], coverage: true, coveragePath: Path.join(__dirname, './coverage/basic.js') });
1911-
expect(code.console).to.equal(1);
1912-
expect(code.lcov).to.equal(1);
1913-
expect(code.html).to.equal(1);
1910+
expect(code).to.equal(1);
19141911
expect(output.lcov).to.equal(Fs.readFileSync(filename).toString());
19151912
expect(output.html).to.equal(htmlRecorder.content);
19161913
expect(consoleRecorder.content).to.contain('Coverage: 100.00%');
@@ -1982,8 +1979,7 @@ describe('Reporter', () => {
19821979

19831980
const { code, output } = await Lab.report(script, { reporter: ['console', 'console'], output: [filename, recorder], coverage: true });
19841981

1985-
expect(code.console).to.equal(0);
1986-
expect(code.console2).to.equal(0);
1982+
expect(code).to.equal(0);
19871983
expect(output.console).to.equal(Fs.readFileSync(filename).toString());
19881984
expect(output.console2).to.equal(recorder.content);
19891985
Fs.unlinkSync(filename);

0 commit comments

Comments
 (0)
Please sign in to comment.