Skip to content
This repository has been archived by the owner on Aug 28, 2023. It is now read-only.

Commit

Permalink
closes mochajs#4142
Browse files Browse the repository at this point in the history
In mochajs#4004 there was a change to use the documented `reporterOption` in favour of the setting that had always been used in practice called `reporterOptions`. This broke a lot of configurations that used the `reporterOptions`, which was the only way it every worked AFAIK.

This changes the documentation to specify `reporterOptions` instead and ensure that any one that has switched to `reporterOption` after upgrade, still works.
  • Loading branch information
Christian Holm committed Jan 14, 2020
1 parent 0e1ccbb commit 21aa644
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 5 deletions.
10 changes: 6 additions & 4 deletions lib/mocha.js
Expand Up @@ -84,7 +84,7 @@ exports.Test = require('./test');
* @param {boolean} [options.invert] - Invert test filter matches?
* @param {boolean} [options.noHighlighting] - Disable syntax highlighting?
* @param {string|constructor} [options.reporter] - Reporter name or constructor.
* @param {Object} [options.reporterOption] - Reporter settings object.
* @param {Object} [options.reporterOptions] - Reporter settings object.
* @param {number} [options.retries] - Number of times to retry failed tests.
* @param {number} [options.slow] - Slow threshold value.
* @param {number|string} [options.timeout] - Timeout threshold value.
Expand All @@ -100,7 +100,10 @@ function Mocha(options) {
this.grep(options.grep)
.fgrep(options.fgrep)
.ui(options.ui)
.reporter(options.reporter, options.reporterOption)
.reporter(
options.reporter,
options.reporterOptions || options.reporterOption // reporterOption was previously documented (but not used)
)
.slow(options.slow)
.global(options.global);

Expand Down Expand Up @@ -229,9 +232,8 @@ Mocha.prototype.reporter = function(reporter, reporterOptions) {
}
this._reporter = _reporter;
}
this.options.reporterOption = reporterOptions;
// alias option name is used in public reporters xunit/tap/progress
this.options.reporterOptions = reporterOptions;

return this;
};

Expand Down
@@ -1,7 +1,7 @@
'use strict';

function ReporterWithOptions(runner, options) {
console.log(JSON.stringify(options.reporterOption));
console.log(JSON.stringify(options.reporterOptions));
}

module.exports = ReporterWithOptions;
20 changes: 20 additions & 0 deletions test/unit/mocha.spec.js
Expand Up @@ -446,6 +446,26 @@ describe('Mocha', function() {
var mocha = new Mocha(opts);
expect(mocha.reporter(), 'to be', mocha);
});

it('should keep reporterOptions on options', function() {
var mocha = new Mocha({
reporter: 'spec',
reporterOptions: {
foo: 'bar'
}
});
expect(mocha.options.reporterOptions, 'to have property', 'foo', 'bar');
});

it('should alias legacy reporterOption to reporterOptions', function() {
var mocha = new Mocha({
reporter: 'spec',
reporterOption: {
foo: 'bar'
}
});
expect(mocha.options.reporterOptions, 'to have property', 'foo', 'bar');
});
});

describe('#run(fn)', function() {
Expand Down

0 comments on commit 21aa644

Please sign in to comment.