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"
    ]
  }
}