Does the extending configuration feature work?
See original GitHub issueOpening this as a question as I’m not yet sure whether it’s a bug or a user error 😄
The docs on extending configuration state:
Configurations can inherit from other modules using the extends keyword
However, I’ve been unable to get this to work and I haven’t been able to find any Mocha-specific examples leveraging extends
. I’ve tried using extends
both with a relative path to a json file, as well as with a module as referenced in the yargs docs linked from the Mocha docs, and I also tried the various Mocha config file formats (js, yaml, json, etc.) to define the Mocha config with the extends
keyword, all to no avail.
I created a really simple repo here that reproduces this behavior:
ui
should be set to tdd
via the extends
reference in the .mocharc.yml file, but running an npm test
results in a reference error ReferenceError: suite is not defined
leading me to believe that extends
is not working since the ui
is still set to the default bdd
Any help would be greatly appreciated!
Issue Analytics
- State:
- Created 4 years ago
- Reactions:1
- Comments:6 (3 by maintainers)
@calebcartwright yes, that would have been the test I had in mind. Thanks for your investigations.
I did some tests and my conclusion is: in some edge cases it works, but in general it does not work. So yes, a bug.
extends
is a Yargs feature, which in Mocha runs too late, when all CLI plus config options have been read and default values have been set. Furthermore it runs outside of the publicloadOptions()
function.extends
should run earlier in Yargs-parser, which has a similar featureconfig
. there could be a conflict: Mochaconfig
<==> yargs-parserconfig
extend
object andconfigObjects
(and default values)?https://github.com/mochajs/mocha/pull/4407