## Test-specific linter rules rules: # ECMAScript 6 # http://eslint.org/docs/rules/#ecmascript-6 no-var: error prefer-const: error symbol-description: off # Custom rules in tools/eslint-rules node-core/prefer-assert-iferror: error node-core/prefer-assert-methods: error node-core/prefer-common-expectserror: error node-core/prefer-common-mustnotcall: error node-core/crypto-check: error node-core/eslint-check: error node-core/inspector-check: error node-core/number-isnan: error ## common module is mandatory in tests node-core/required-modules: [error, common] node-core/no-duplicate-requires: off no-restricted-syntax: # Config copied from .eslintrc.js - error - selector: "CallExpression[callee.object.name='assert'][callee.property.name='deepStrictEqual'][arguments.2.type='Literal']" message: "Do not use a literal for the third argument of assert.deepStrictEqual()" - selector: "CallExpression[callee.object.name='assert'][callee.property.name='doesNotThrow']" message: "Please replace `assert.doesNotThrow()` and add a comment next to the code instead." - selector: "CallExpression[callee.object.name='assert'][callee.property.name='rejects'][arguments.length<2]" message: "assert.rejects() must be invoked with at least two arguments." - selector: "CallExpression[callee.object.name='assert'][callee.property.name='strictEqual'][arguments.2.type='Literal']" message: "Do not use a literal for the third argument of assert.strictEqual()" - selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.1.type='Literal']:not([arguments.1.regex])" message: "Use an object as second argument of assert.throws()" - selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.length<2]" message: "assert.throws() must be invoked with at least two arguments." - selector: "CallExpression[callee.name='setTimeout'][arguments.length<2]" message: "setTimeout() must be invoked with at least two arguments." - selector: "CallExpression[callee.name='setInterval'][arguments.length<2]" message: "setInterval() must be invoked with at least 2 arguments." - selector: "ThrowStatement > CallExpression[callee.name=/Error$/]" message: "Use new keyword when throwing an Error." # Specific to /test - selector: "CallExpression[callee.object.name='assert'][callee.property.name='notDeepStrictEqual'][arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression'])" message: "The first argument should be the `actual`, not the `expected` value." - selector: "CallExpression[callee.object.name='assert'][callee.property.name='notStrictEqual'][arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression'])" message: "The first argument should be the `actual`, not the `expected` value." - selector: "CallExpression[callee.object.name='assert'][callee.property.name='deepStrictEqual'][arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression'])" message: "The first argument should be the `actual`, not the `expected` value." - selector: "CallExpression[callee.object.name='assert'][callee.property.name='strictEqual'][arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression'])" message: "The first argument should be the `actual`, not the `expected` value." # Global scoped methods and vars globals: WebAssembly: false BigInt: false BigInt64Array: false BigUint64Array: false SharedArrayBuffer: false