JavaScript Standard Style does not recognize Mocha
I have a Mocha test file that looks like this:
var expect = require('chai').expect
var muting = require('../muting')
describe('muting', function () {
describe('init()', function () {
it('should inject an object into twitter', function () {
var twitter = 'twitter'
muting.init(twitter)
expect(muting.twitter).to.equal(twitter)
})
})
})
When I run mocha
from the CLI, it runs the test successfully.
When I run standard
(the executable for JavaScript Standard Style) I get errors on Mocha's framework functions like so:
standard: Use JavaScript Standard Style (https://github.com/feross/standard)
c:\..\test\index.js:5:0: 'describe' is not defined.
c:\..\test\index.js:6:2: 'describe' is not defined.
c:\..\test\index.js:7:4: 'it' is not defined.
What's the cleanest way to make Standard not complain about these functions?
I prefer to edit my .eslintrc
and add mocha to env section:
...
"env": {
"commonjs": true,
"node": true,
"mocha": true
},
...
this way my package.json
file is kept clean, also vscode plugin for eslint understands it better
Actually, you don't need to list every single global variable in your package.json
You can specify environments instead like this:
"standard": {
"env": [ "mocha" ]
}
Source: Official ESLint configuration docs.
while eslint's comment configuration works great for a single file, I prefer to use standard's package.json
globals
configuration to do this for my projects. E.g.
{
"name": "my-package",
"version": "1.0.0",
"standard": {
"globals": [
"describe",
"context",
"before",
"beforeEach",
"after",
"afterEach",
"it",
"expect"
]
}
}