diff --git a/.eslintrc.js b/.eslintrc.js index 241b1de5..06916d92 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -8,6 +8,22 @@ const version = require("./package.json").version module.exports = { extends: ["plugin:@mysticatea/es2015", "plugin:@mysticatea/+eslint-plugin"], + rules: { + "@mysticatea/eslint-plugin/test-case-property-ordering": [ + "error", + [ + "filename", + "code", + "output", + "options", + "parser", + "parserOptions", + "globals", + "env", + "errors", + ], + ], + }, overrides: [ { files: ["**/rules/*.js"], diff --git a/tests/lib/rules/exports-style.js b/tests/lib/rules/exports-style.js index fcb47685..e6868079 100644 --- a/tests/lib/rules/exports-style.js +++ b/tests/lib/rules/exports-style.js @@ -68,123 +68,123 @@ new RuleTester().run("exports-style", rule, { invalid: [ { code: "exports = {foo: 1}", + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'exports'. Use 'module.exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "exports.foo = 1", + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'exports'. Use 'module.exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "module.exports = exports = {foo: 1}", + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'exports'. Use 'module.exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "exports = module.exports = {foo: 1}", + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'exports'. Use 'module.exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "exports = {foo: 1}", options: ["module.exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'exports'. Use 'module.exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "exports.foo = 1", options: ["module.exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'exports'. Use 'module.exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "module.exports = exports = {foo: 1}", options: ["module.exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'exports'. Use 'module.exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "exports = module.exports = {foo: 1}", options: ["module.exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'exports'. Use 'module.exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "exports = {foo: 1}", options: ["exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected assignment to 'exports'. Don't modify 'exports' itself.", ], - globals: { module: false, exports: true }, }, { code: "module.exports = {foo: 1}", options: ["exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'module.exports'. Use 'exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "module.exports.foo = 1", options: ["exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'module.exports'. Use 'exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "module.exports = exports = {foo: 1}", options: ["exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected access to 'module.exports'. Use 'exports' instead.", "Unexpected assignment to 'exports'. Don't modify 'exports' itself.", ], - globals: { module: false, exports: true }, }, { code: "exports = module.exports = {foo: 1}", options: ["exports"], + globals: { module: false, exports: true }, errors: [ "Unexpected assignment to 'exports'. Don't modify 'exports' itself.", "Unexpected access to 'module.exports'. Use 'exports' instead.", ], - globals: { module: false, exports: true }, }, { code: "module.exports = exports = {foo: 1}; exports = obj", options: ["exports", { allowBatchAssign: true }], + globals: { module: false, exports: true }, errors: [ "Unexpected assignment to 'exports'. Don't modify 'exports' itself.", ], - globals: { module: false, exports: true }, }, { code: "exports = module.exports = {foo: 1}; exports = obj", options: ["exports", { allowBatchAssign: true }], + globals: { module: false, exports: true }, errors: [ "Unexpected assignment to 'exports'. Don't modify 'exports' itself.", ], - globals: { module: false, exports: true }, }, ], }) diff --git a/tests/lib/rules/no-deprecated-api.js b/tests/lib/rules/no-deprecated-api.js index aeb3280f..dc82cb9d 100644 --- a/tests/lib/rules/no-deprecated-api.js +++ b/tests/lib/rules/no-deprecated-api.js @@ -182,536 +182,536 @@ ruleTester.run("no-deprecated-api", rule, { //---------------------------------------------------------------------- { code: "new (require('buffer').Buffer)()", + env: { node: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true }, }, { code: "require('buffer').Buffer()", + env: { node: true }, errors: [ "'buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true }, }, { code: "var b = require('buffer'); new b.Buffer()", + env: { node: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true }, }, { code: "var b = require('buffer'); new b['Buffer']()", + env: { node: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true }, }, { code: "var b = require('buffer'); new b[`Buffer`]()", + env: { node: true, es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true, es6: true }, }, { code: "var b = require('buffer').Buffer; new b()", + env: { node: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true }, }, { code: "var b; new ((b = require('buffer')).Buffer)(); new b.Buffer()", + env: { node: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true }, }, { code: "var {Buffer: b} = require('buffer'); new b()", + env: { node: true, es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true, es6: true }, }, { code: "var {['Buffer']: b = null} = require('buffer'); new b()", + env: { node: true, es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true, es6: true }, }, { code: "var {'Buffer': b = null} = require('buffer'); new b()", + env: { node: true, es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true, es6: true }, }, { code: "var {Buffer: b = require('buffer').Buffer} = {}; new b()", + env: { node: true, es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true, es6: true }, }, { code: "require('buffer').SlowBuffer", + env: { node: true }, errors: [ "'buffer.SlowBuffer' was deprecated since v6.0.0. Use 'buffer.Buffer.allocUnsafeSlow()' instead.", ], - env: { node: true }, }, { code: "var b = require('buffer'); b.SlowBuffer", + env: { node: true }, errors: [ "'buffer.SlowBuffer' was deprecated since v6.0.0. Use 'buffer.Buffer.allocUnsafeSlow()' instead.", ], - env: { node: true }, }, { code: "var {SlowBuffer: b} = require('buffer');", + env: { node: true, es6: true }, errors: [ "'buffer.SlowBuffer' was deprecated since v6.0.0. Use 'buffer.Buffer.allocUnsafeSlow()' instead.", ], - env: { node: true, es6: true }, }, //---------------------------------------------------------------------- { code: "require('_linklist');", - errors: ["'_linklist' module was deprecated since v5.0.0."], env: { node: true }, + errors: ["'_linklist' module was deprecated since v5.0.0."], }, { code: "require('async_hooks').currentId;", + env: { node: true }, errors: [ "'async_hooks.currentId' was deprecated since v8.2.0. Use 'async_hooks.executionAsyncId()' instead.", ], - env: { node: true }, }, { code: "require('async_hooks').triggerId;", + env: { node: true }, errors: [ "'async_hooks.triggerId' was deprecated since v8.2.0. Use 'async_hooks.triggerAsyncId()' instead.", ], - env: { node: true }, }, { code: "require('constants');", + env: { node: true }, errors: [ "'constants' module was deprecated since v6.3.0. Use 'constants' property of each module instead.", ], - env: { node: true }, }, { code: "require('crypto').Credentials;", + env: { node: true }, errors: [ "'crypto.Credentials' was deprecated since v0.12.0. Use 'tls.SecureContext' instead.", ], - env: { node: true }, }, { code: "require('crypto').createCredentials;", + env: { node: true }, errors: [ "'crypto.createCredentials' was deprecated since v0.12.0. Use 'tls.createSecureContext()' instead.", ], - env: { node: true }, }, { code: "require('domain');", - errors: ["'domain' module was deprecated since v4.0.0."], env: { node: true }, + errors: ["'domain' module was deprecated since v4.0.0."], }, { code: "require('events').EventEmitter.listenerCount;", + env: { node: true }, errors: [ "'events.EventEmitter.listenerCount' was deprecated since v4.0.0. Use 'events.EventEmitter#listenerCount()' instead.", ], - env: { node: true }, }, { code: "require('events').listenerCount;", + env: { node: true }, errors: [ "'events.listenerCount' was deprecated since v4.0.0. Use 'events.EventEmitter#listenerCount()' instead.", ], - env: { node: true }, }, { code: "require('freelist');", - errors: ["'freelist' module was deprecated since v4.0.0."], env: { node: true }, + errors: ["'freelist' module was deprecated since v4.0.0."], }, { code: "require('fs').SyncWriteStream;", - errors: ["'fs.SyncWriteStream' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'fs.SyncWriteStream' was deprecated since v4.0.0."], }, { code: "require('fs').exists;", + env: { node: true }, errors: [ "'fs.exists' was deprecated since v4.0.0. Use 'fs.stat()' or 'fs.access()' instead.", ], - env: { node: true }, }, { code: "require('fs').lchmod;", - errors: ["'fs.lchmod' was deprecated since v0.4.0."], env: { node: true }, + errors: ["'fs.lchmod' was deprecated since v0.4.0."], }, { code: "require('fs').lchmodSync;", - errors: ["'fs.lchmodSync' was deprecated since v0.4.0."], env: { node: true }, + errors: ["'fs.lchmodSync' was deprecated since v0.4.0."], }, { code: "require('fs').lchown;", - errors: ["'fs.lchown' was deprecated since v0.4.0."], env: { node: true }, + errors: ["'fs.lchown' was deprecated since v0.4.0."], }, { code: "require('fs').lchownSync;", - errors: ["'fs.lchownSync' was deprecated since v0.4.0."], env: { node: true }, + errors: ["'fs.lchownSync' was deprecated since v0.4.0."], }, { code: "require('http').createClient;", + env: { node: true }, errors: [ "'http.createClient' was deprecated since v0.10.0. Use 'http.request()' instead.", ], - env: { node: true }, }, { code: "require('module').requireRepl;", + env: { node: true }, errors: [ "'module.requireRepl' was deprecated since v6.0.0. Use 'require(\"repl\")' instead.", ], - env: { node: true }, }, { code: "require('module').Module.requireRepl;", + env: { node: true }, errors: [ "'module.Module.requireRepl' was deprecated since v6.0.0. Use 'require(\"repl\")' instead.", ], - env: { node: true }, }, { code: "require('module')._debug;", - errors: ["'module._debug' was deprecated since v9.0.0."], env: { node: true }, + errors: ["'module._debug' was deprecated since v9.0.0."], }, { code: "require('module').Module._debug;", - errors: ["'module.Module._debug' was deprecated since v9.0.0."], env: { node: true }, + errors: ["'module.Module._debug' was deprecated since v9.0.0."], }, { code: "require('os').getNetworkInterfaces;", + env: { node: true }, errors: [ "'os.getNetworkInterfaces' was deprecated since v0.6.0. Use 'os.networkInterfaces()' instead.", ], - env: { node: true }, }, { code: "require('os').tmpDir;", + env: { node: true }, errors: [ "'os.tmpDir' was deprecated since v7.0.0. Use 'os.tmpdir()' instead.", ], - env: { node: true }, }, { code: "require('path')._makeLong;", + env: { node: true }, errors: [ "'path._makeLong' was deprecated since v9.0.0. Use 'path.toNamespacedPath()' instead.", ], - env: { node: true }, }, { code: "require('punycode');", + env: { node: true }, errors: [ "'punycode' module was deprecated since v7.0.0. Use 'https://www.npmjs.com/package/punycode' instead.", ], - env: { node: true }, }, { code: "require('readline').codePointAt;", - errors: ["'readline.codePointAt' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'readline.codePointAt' was deprecated since v4.0.0."], }, { code: "require('readline').getStringWidth;", - errors: ["'readline.getStringWidth' was deprecated since v6.0.0."], env: { node: true }, + errors: ["'readline.getStringWidth' was deprecated since v6.0.0."], }, { code: "require('readline').isFullWidthCodePoint;", + env: { node: true }, errors: [ "'readline.isFullWidthCodePoint' was deprecated since v6.0.0.", ], - env: { node: true }, }, { code: "require('readline').stripVTControlCharacters;", + env: { node: true }, errors: [ "'readline.stripVTControlCharacters' was deprecated since v6.0.0.", ], - env: { node: true }, }, { code: "require('sys');", + env: { node: true }, errors: [ "'sys' module was deprecated since v0.3.0. Use 'util' module instead.", ], - env: { node: true }, }, { code: "require('tls').CleartextStream;", - errors: ["'tls.CleartextStream' was deprecated since v0.10.0."], env: { node: true }, + errors: ["'tls.CleartextStream' was deprecated since v0.10.0."], }, { code: "require('tls').CryptoStream;", + env: { node: true }, errors: [ "'tls.CryptoStream' was deprecated since v0.12.0. Use 'tls.TLSSocket' instead.", ], - env: { node: true }, }, { code: "require('tls').SecurePair;", + env: { node: true }, errors: [ "'tls.SecurePair' was deprecated since v6.0.0. Use 'tls.TLSSocket' instead.", ], - env: { node: true }, }, { code: "require('tls').createSecurePair;", + env: { node: true }, errors: [ "'tls.createSecurePair' was deprecated since v6.0.0. Use 'tls.TLSSocket' instead.", ], - env: { node: true }, }, { code: "require('tls').parseCertString;", + env: { node: true }, errors: [ "'tls.parseCertString' was deprecated since v8.6.0. Use 'querystring.parse()' instead.", ], - env: { node: true }, }, { code: "require('tty').setRawMode;", + env: { node: true }, errors: [ "'tty.setRawMode' was deprecated since v0.10.0. Use 'tty.ReadStream#setRawMode()' (e.g. 'process.stdin.setRawMode()') instead.", ], - env: { node: true }, }, { code: "require('util').debug;", + env: { node: true }, errors: [ "'util.debug' was deprecated since v0.12.0. Use 'console.error()' instead.", ], - env: { node: true }, }, { code: "require('util').error;", + env: { node: true }, errors: [ "'util.error' was deprecated since v0.12.0. Use 'console.error()' instead.", ], - env: { node: true }, }, { code: "require('util').isArray;", + env: { node: true }, errors: [ "'util.isArray' was deprecated since v4.0.0. Use 'Array.isArray()' instead.", ], - env: { node: true }, }, { code: "require('util').isBoolean;", - errors: ["'util.isBoolean' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isBoolean' was deprecated since v4.0.0."], }, { code: "require('util').isBuffer;", + env: { node: true }, errors: [ "'util.isBuffer' was deprecated since v4.0.0. Use 'Buffer.isBuffer()' instead.", ], - env: { node: true }, }, { code: "require('util').isDate;", - errors: ["'util.isDate' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isDate' was deprecated since v4.0.0."], }, { code: "require('util').isError;", - errors: ["'util.isError' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isError' was deprecated since v4.0.0."], }, { code: "require('util').isFunction;", - errors: ["'util.isFunction' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isFunction' was deprecated since v4.0.0."], }, { code: "require('util').isNull;", - errors: ["'util.isNull' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isNull' was deprecated since v4.0.0."], }, { code: "require('util').isNullOrUndefined;", - errors: ["'util.isNullOrUndefined' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isNullOrUndefined' was deprecated since v4.0.0."], }, { code: "require('util').isNumber;", - errors: ["'util.isNumber' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isNumber' was deprecated since v4.0.0."], }, { code: "require('util').isObject;", - errors: ["'util.isObject' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isObject' was deprecated since v4.0.0."], }, { code: "require('util').isPrimitive;", - errors: ["'util.isPrimitive' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isPrimitive' was deprecated since v4.0.0."], }, { code: "require('util').isRegExp;", - errors: ["'util.isRegExp' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isRegExp' was deprecated since v4.0.0."], }, { code: "require('util').isString;", - errors: ["'util.isString' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isString' was deprecated since v4.0.0."], }, { code: "require('util').isSymbol;", - errors: ["'util.isSymbol' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isSymbol' was deprecated since v4.0.0."], }, { code: "require('util').isUndefined;", - errors: ["'util.isUndefined' was deprecated since v4.0.0."], env: { node: true }, + errors: ["'util.isUndefined' was deprecated since v4.0.0."], }, { code: "require('util').log;", + env: { node: true }, errors: [ "'util.log' was deprecated since v6.0.0. Use a third party module instead.", ], - env: { node: true }, }, { code: "require('util').print;", + env: { node: true }, errors: [ "'util.print' was deprecated since v0.12.0. Use 'console.log()' instead.", ], - env: { node: true }, }, { code: "require('util').pump;", + env: { node: true }, errors: [ "'util.pump' was deprecated since v0.10.0. Use 'stream.Readable#pipe()' instead.", ], - env: { node: true }, }, { code: "require('util').puts;", + env: { node: true }, errors: [ "'util.puts' was deprecated since v0.12.0. Use 'console.log()' instead.", ], - env: { node: true }, }, { code: "require('util')._extend;", + env: { node: true }, errors: [ "'util._extend' was deprecated since v6.0.0. Use 'Object.assign()' instead.", ], - env: { node: true }, }, { code: "require('vm').runInDebugContext;", - errors: ["'vm.runInDebugContext' was deprecated since v8.0.0."], env: { node: true }, + errors: ["'vm.runInDebugContext' was deprecated since v8.0.0."], }, // ES2015 Modules { code: "import b from 'buffer'; new b.Buffer()", parserOptions: { sourceType: "module" }, + env: { es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { es6: true }, }, { code: "import * as b from 'buffer'; new b.Buffer()", parserOptions: { sourceType: "module" }, + env: { es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { es6: true }, }, { code: "import * as b from 'buffer'; new b.default.Buffer()", parserOptions: { sourceType: "module" }, + env: { es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { es6: true }, }, { code: "import {Buffer as b} from 'buffer'; new b()", parserOptions: { sourceType: "module" }, + env: { es6: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { es6: true }, }, { code: "import b from 'buffer'; b.SlowBuffer", parserOptions: { sourceType: "module" }, + env: { es6: true }, errors: [ "'buffer.SlowBuffer' was deprecated since v6.0.0. Use 'buffer.Buffer.allocUnsafeSlow()' instead.", ], - env: { es6: true }, }, { code: "import * as b from 'buffer'; b.SlowBuffer", parserOptions: { sourceType: "module" }, + env: { es6: true }, errors: [ "'buffer.SlowBuffer' was deprecated since v6.0.0. Use 'buffer.Buffer.allocUnsafeSlow()' instead.", ], - env: { es6: true }, }, { code: "import * as b from 'buffer'; b.default.SlowBuffer", parserOptions: { sourceType: "module" }, + env: { es6: true }, errors: [ "'buffer.SlowBuffer' was deprecated since v6.0.0. Use 'buffer.Buffer.allocUnsafeSlow()' instead.", ], - env: { es6: true }, }, { code: "import {SlowBuffer as b} from 'buffer';", parserOptions: { sourceType: "module" }, + env: { es6: true }, errors: [ "'buffer.SlowBuffer' was deprecated since v6.0.0. Use 'buffer.Buffer.allocUnsafeSlow()' instead.", ], - env: { es6: true }, }, { code: "import domain from 'domain';", parserOptions: { sourceType: "module" }, - errors: ["'domain' module was deprecated since v4.0.0."], env: { es6: true }, + errors: ["'domain' module was deprecated since v4.0.0."], }, { @@ -723,10 +723,10 @@ ruleTester.run("no-deprecated-api", rule, { ignoreGlobalItems: ["Buffer()", "new Buffer()"], }, ], + env: { node: true }, errors: [ "'new buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true }, }, { code: "require('buffer').Buffer()", @@ -737,10 +737,10 @@ ruleTester.run("no-deprecated-api", rule, { ignoreGlobalItems: ["Buffer()", "new Buffer()"], }, ], + env: { node: true }, errors: [ "'buffer.Buffer()' was deprecated since v6.0.0. Use 'buffer.Buffer.alloc()' or 'buffer.Buffer.from()' instead.", ], - env: { node: true }, }, //---------------------------------------------------------------------- @@ -748,65 +748,65 @@ ruleTester.run("no-deprecated-api", rule, { //---------------------------------------------------------------------- { code: "new Buffer;", + env: { node: true }, errors: [ "'new Buffer()' was deprecated since v6.0.0. Use 'Buffer.alloc()' or 'Buffer.from()' instead.", ], - env: { node: true }, }, { code: "Buffer();", + env: { node: true }, errors: [ "'Buffer()' was deprecated since v6.0.0. Use 'Buffer.alloc()' or 'Buffer.from()' instead.", ], - env: { node: true }, }, { code: "GLOBAL; /*globals GLOBAL*/", + env: { node: true }, errors: [ "'GLOBAL' was deprecated since v6.0.0. Use 'global' instead.", ], - env: { node: true }, }, { code: "Intl.v8BreakIterator;", - errors: ["'Intl.v8BreakIterator' was deprecated since v7.0.0."], env: { node: true }, + errors: ["'Intl.v8BreakIterator' was deprecated since v7.0.0."], }, { code: "require.extensions;", + env: { node: true }, errors: [ "'require.extensions' was deprecated since v0.12.0. Use compiling them ahead of time instead.", ], - env: { node: true }, }, { code: "root;", + globals: { root: false }, + env: { node: true }, errors: [ "'root' was deprecated since v6.0.0. Use 'global' instead.", ], - env: { node: true }, - globals: { root: false }, }, { code: "process.EventEmitter;", + env: { node: true }, errors: [ "'process.EventEmitter' was deprecated since v0.6.0. Use 'require(\"events\")' instead.", ], - env: { node: true }, }, { code: "process.env.NODE_REPL_HISTORY_FILE;", + env: { node: true }, errors: [ "'process.env.NODE_REPL_HISTORY_FILE' was deprecated since v4.0.0. Use 'NODE_REPL_HISTORY' instead.", ], - env: { node: true }, }, { code: "let {env: {NODE_REPL_HISTORY_FILE}} = process;", + env: { node: true, es6: true }, errors: [ "'process.env.NODE_REPL_HISTORY_FILE' was deprecated since v4.0.0. Use 'NODE_REPL_HISTORY' instead.", ], - env: { node: true, es6: true }, }, { code: "import domain from 'domain';", @@ -826,10 +826,10 @@ ruleTester.run("no-deprecated-api", rule, { ignoreGlobalItems: ["Buffer()"], }, ], + env: { node: true }, errors: [ "'new Buffer()' was deprecated since v6.0.0. Use 'Buffer.alloc()' or 'Buffer.from()' instead.", ], - env: { node: true }, }, { code: "Buffer()", @@ -843,10 +843,10 @@ ruleTester.run("no-deprecated-api", rule, { ignoreGlobalItems: ["new Buffer()"], }, ], + env: { node: true }, errors: [ "'Buffer()' was deprecated since v6.0.0. Use 'Buffer.alloc()' or 'Buffer.from()' instead.", ], - env: { node: true }, }, ], }) diff --git a/tests/lib/rules/no-extraneous-import.js b/tests/lib/rules/no-extraneous-import.js index 272f3804..5457683b 100644 --- a/tests/lib/rules/no-extraneous-import.js +++ b/tests/lib/rules/no-extraneous-import.js @@ -22,64 +22,64 @@ const tester = new RuleTester({ parserOptions: { sourceType: "module" } }) tester.run("no-extraneous-import", rule, { valid: [ { - code: "import bbb from './bbb'", filename: fixture("dependencies/a.js"), + code: "import bbb from './bbb'", }, { - code: "import aaa from 'aaa'", filename: fixture("dependencies/a.js"), + code: "import aaa from 'aaa'", }, { - code: "import bbb from 'aaa/bbb'", filename: fixture("dependencies/a.js"), + code: "import bbb from 'aaa/bbb'", }, { - code: "import aaa from '@bbb/aaa'", filename: fixture("dependencies/a.js"), + code: "import aaa from '@bbb/aaa'", }, { - code: "import bbb from '@bbb/aaa/bbb'", filename: fixture("dependencies/a.js"), + code: "import bbb from '@bbb/aaa/bbb'", }, { - code: "import aaa from 'aaa'", filename: fixture("devDependencies/a.js"), + code: "import aaa from 'aaa'", }, { - code: "import aaa from 'aaa'", filename: fixture("peerDependencies/a.js"), + code: "import aaa from 'aaa'", }, { - code: "import aaa from 'aaa'", filename: fixture("optionalDependencies/a.js"), + code: "import aaa from 'aaa'", }, // missing packages are warned by no-missing-import { - code: "import ccc from 'ccc'", filename: fixture("dependencies/a.js"), + code: "import ccc from 'ccc'", }, ], invalid: [ { + filename: fixture("dependencies/a.js"), code: "import bbb from 'bbb'", errors: ['"bbb" is extraneous.'], - filename: fixture("dependencies/a.js"), }, { + filename: fixture("devDependencies/a.js"), code: "import bbb from 'bbb'", errors: ['"bbb" is extraneous.'], - filename: fixture("devDependencies/a.js"), }, { + filename: fixture("peerDependencies/a.js"), code: "import bbb from 'bbb'", errors: ['"bbb" is extraneous.'], - filename: fixture("peerDependencies/a.js"), }, { + filename: fixture("optionalDependencies/a.js"), code: "import bbb from 'bbb'", errors: ['"bbb" is extraneous.'], - filename: fixture("optionalDependencies/a.js"), }, ], }) diff --git a/tests/lib/rules/no-extraneous-require.js b/tests/lib/rules/no-extraneous-require.js index bac96360..eb15c67e 100644 --- a/tests/lib/rules/no-extraneous-require.js +++ b/tests/lib/rules/no-extraneous-require.js @@ -22,77 +22,77 @@ const tester = new RuleTester({ env: { node: true } }) tester.run("no-extraneous-require", rule, { valid: [ { - code: "$.require('bbb')", filename: fixture("dependencies/a.js"), + code: "$.require('bbb')", }, { - code: "require('./bbb')", filename: fixture("dependencies/a.js"), + code: "require('./bbb')", }, { - code: "require(bbb)", filename: fixture("dependencies/a.js"), + code: "require(bbb)", }, { - code: "require('aaa')", filename: fixture("dependencies/a.js"), + code: "require('aaa')", }, { - code: "require('aaa/bbb')", filename: fixture("dependencies/a.js"), + code: "require('aaa/bbb')", }, { - code: "require('@bbb/aaa')", filename: fixture("dependencies/a.js"), + code: "require('@bbb/aaa')", }, { - code: "require('@bbb/aaa/bbb')", filename: fixture("dependencies/a.js"), + code: "require('@bbb/aaa/bbb')", }, { - code: "require('aaa')", filename: fixture("devDependencies/a.js"), + code: "require('aaa')", }, { - code: "require('aaa')", filename: fixture("peerDependencies/a.js"), + code: "require('aaa')", }, { - code: "require('aaa')", filename: fixture("optionalDependencies/a.js"), + code: "require('aaa')", }, // missing packages are warned by no-missing-require { - code: "require('ccc')", filename: fixture("dependencies/a.js"), + code: "require('ccc')", }, ], invalid: [ { + filename: fixture("dependencies/a.js"), code: "require('bbb')", errors: ['"bbb" is extraneous.'], - filename: fixture("dependencies/a.js"), }, { + filename: fixture("devDependencies/a.js"), code: "require('bbb')", errors: ['"bbb" is extraneous.'], - filename: fixture("devDependencies/a.js"), }, { + filename: fixture("peerDependencies/a.js"), code: "require('bbb')", errors: ['"bbb" is extraneous.'], - filename: fixture("peerDependencies/a.js"), }, { + filename: fixture("optionalDependencies/a.js"), code: "require('bbb')", errors: ['"bbb" is extraneous.'], - filename: fixture("optionalDependencies/a.js"), }, { + filename: fixture("dependencies/a.js"), code: "require('b'+'bb')", errors: ['"bbb" is extraneous.'], - filename: fixture("dependencies/a.js"), }, ], }) diff --git a/tests/lib/rules/no-missing-import.js b/tests/lib/rules/no-missing-import.js index 01517696..7781bdd6 100644 --- a/tests/lib/rules/no-missing-import.js +++ b/tests/lib/rules/no-missing-import.js @@ -21,63 +21,63 @@ const ruleTester = new RuleTester({ parserOptions: { sourceType: "module" } }) ruleTester.run("no-missing-import", rule, { valid: [ { - code: "import eslint from 'eslint';", filename: fixture("test.js"), + code: "import eslint from 'eslint';", }, { - code: "import fs from 'fs';", filename: fixture("test.js"), + code: "import fs from 'fs';", }, { - code: "import eslint from 'eslint/lib/api';", filename: fixture("test.js"), + code: "import eslint from 'eslint/lib/api';", }, { - code: "import a from './a'; a();", filename: fixture("test.js"), + code: "import a from './a'; a();", }, { - code: "import a from './a.js';", filename: fixture("test.js"), + code: "import a from './a.js';", }, { - code: "import aConfig from './a.config';", filename: fixture("test.js"), + code: "import aConfig from './a.config';", }, { - code: "import aConfig from './a.config.js';", filename: fixture("test.js"), + code: "import aConfig from './a.config.js';", }, { - code: "import b from './b';", filename: fixture("test.js"), + code: "import b from './b';", }, { - code: "import b from './b.json';", filename: fixture("test.js"), + code: "import b from './b.json';", }, { - code: "import c from './c.coffee';", filename: fixture("test.js"), + code: "import c from './c.coffee';", }, { - code: "import mocha from 'mocha';", filename: fixture("test.js"), + code: "import mocha from 'mocha';", }, { - code: "import mocha from 'mocha!foo?a=b&c=d';", filename: fixture("test.js"), + code: "import mocha from 'mocha!foo?a=b&c=d';", }, // tryExtensions { + filename: fixture("test.js"), code: "import c from './c';", options: [{ tryExtensions: [".coffee"] }], - filename: fixture("test.js"), }, { - code: "import c from './c';", filename: fixture("test.js"), + code: "import c from './c';", settings: { node: { tryExtensions: [".coffee"] } }, }, @@ -87,123 +87,123 @@ ruleTester.run("no-missing-import", rule, { // no source. { - code: "const foo=0, bar=1; export {foo, bar};", filename: fixture("test.js"), + code: "const foo=0, bar=1; export {foo, bar};", }, // Should work fine if the filename is relative. { - code: "import eslint from 'eslint'", filename: "tests/fixtures/no-missing/test.js", + code: "import eslint from 'eslint'", }, { - code: "import a from './a';", filename: "tests/fixtures/no-missing/test.js", + code: "import a from './a';", }, // Relative paths to a directory should work. { - code: "import a from '.';", filename: fixture("test.js"), + code: "import a from '.';", }, { - code: "import a from './';", filename: fixture("test.js"), + code: "import a from './';", }, { - code: "import a from './foo';", filename: fixture("test.js"), + code: "import a from './foo';", }, { - code: "import a from './foo/';", filename: fixture("test.js"), + code: "import a from './foo/';", }, // allow option. { + filename: fixture("test.js"), code: "import electron from 'electron';", options: [{ allowModules: ["electron"] }], - filename: fixture("test.js"), }, // resolvePaths { - code: "import a from 'fixtures/no-missing/a';", filename: fixture("test.js"), + code: "import a from 'fixtures/no-missing/a';", env: { node: true }, settings: { node: { resolvePaths: [path.resolve(__dirname, "../../")] }, }, }, { + filename: fixture("test.js"), code: "import a from 'fixtures/no-missing/a';", options: [{ resolvePaths: [path.resolve(__dirname, "../../")] }], - filename: fixture("test.js"), env: { node: true }, }, { + filename: fixture("test.js"), code: "import a from 'fixtures/no-missing/a';", options: [{ resolvePaths: ["tests"] }], - filename: fixture("test.js"), env: { node: true }, }, ], invalid: [ { + filename: fixture("test.js"), code: "import abc from 'no-exist-package-0';", errors: ['"no-exist-package-0" is not found.'], - filename: fixture("test.js"), }, { + filename: fixture("test.js"), code: "import test from '@mysticatea/test';", errors: ['"@mysticatea/test" is not found.'], - filename: fixture("test.js"), }, { + filename: fixture("test.js"), code: "import c from './c';", errors: ['"./c" is not found.'], - filename: fixture("test.js"), }, { + filename: fixture("test.js"), code: "import d from './d';", errors: ['"./d" is not found.'], - filename: fixture("test.js"), }, { + filename: fixture("test.js"), code: "import a from './a.json';", errors: ['"./a.json" is not found.'], - filename: fixture("test.js"), }, // Should work fine if the filename is relative. { + filename: "tests/fixtures/no-missing/test.js", code: "import eslint from 'no-exist-package-0';", errors: ['"no-exist-package-0" is not found.'], - filename: "tests/fixtures/no-missing/test.js", }, { + filename: "tests/fixtures/no-missing/test.js", code: "import c from './c';", errors: ['"./c" is not found.'], - filename: "tests/fixtures/no-missing/test.js", }, // Relative paths to a directory should work. { + filename: fixture("test.js"), code: "import a from './bar';", errors: ['"./bar" is not found.'], - filename: fixture("test.js"), }, { + filename: fixture("test.js"), code: "import a from './bar/';", errors: ['"./bar/" is not found.'], - filename: fixture("test.js"), }, // Case sensitive { + filename: fixture("test.js"), code: "import a from './A.js';", errors: ['"./A.js" is not found.'], - filename: fixture("test.js"), }, ], }) diff --git a/tests/lib/rules/no-missing-require.js b/tests/lib/rules/no-missing-require.js index c4fa73d3..45ddbc16 100644 --- a/tests/lib/rules/no-missing-require.js +++ b/tests/lib/rules/no-missing-require.js @@ -21,118 +21,118 @@ const ruleTester = new RuleTester() ruleTester.run("no-missing-require", rule, { valid: [ { - code: "require('fs');", filename: fixture("test.js"), + code: "require('fs');", env: { node: true }, }, { - code: "require('eslint');", filename: fixture("test.js"), + code: "require('eslint');", env: { node: true }, }, { - code: "require('eslint/lib/api');", filename: fixture("test.js"), + code: "require('eslint/lib/api');", env: { node: true }, }, { - code: "require('./a');", filename: fixture("test.js"), + code: "require('./a');", env: { node: true }, }, { - code: "require('./a.js');", filename: fixture("test.js"), + code: "require('./a.js');", env: { node: true }, }, { - code: "require('./a.config');", filename: fixture("test.js"), + code: "require('./a.config');", env: { node: true }, }, { - code: "require('./a.config.js');", filename: fixture("test.js"), + code: "require('./a.config.js');", env: { node: true }, }, { - code: "require('./b');", filename: fixture("test.js"), + code: "require('./b');", env: { node: true }, }, { - code: "require('./b.json');", filename: fixture("test.js"), + code: "require('./b.json');", env: { node: true }, }, { - code: "require('./c.coffee');", filename: fixture("test.js"), + code: "require('./c.coffee');", env: { node: true }, }, { - code: "require('mocha');", filename: fixture("test.js"), + code: "require('mocha');", env: { node: true }, }, { - code: "require(`eslint`);", filename: fixture("test.js"), + code: "require(`eslint`);", env: { node: true, es6: true }, }, { - code: "require('mocha!foo?a=b&c=d');", filename: fixture("test.js"), + code: "require('mocha!foo?a=b&c=d');", env: { node: true }, }, // tryExtensions { + filename: fixture("test.js"), code: "require('./c');", options: [{ tryExtensions: [".coffee"] }], - filename: fixture("test.js"), env: { node: true }, }, { - code: "require('./c');", filename: fixture("test.js"), + code: "require('./c');", env: { node: true }, settings: { node: { tryExtensions: [".coffee"] } }, }, // resolvePaths { - code: "require('fixtures/no-missing/a');", filename: fixture("test.js"), + code: "require('fixtures/no-missing/a');", env: { node: true }, settings: { node: { resolvePaths: [path.resolve(__dirname, "../../")] }, }, }, { + filename: fixture("test.js"), code: "require('fixtures/no-missing/a');", options: [{ resolvePaths: [path.resolve(__dirname, "../../")] }], - filename: fixture("test.js"), env: { node: true }, }, { + filename: fixture("test.js"), code: "require('fixtures/no-missing/a');", options: [{ resolvePaths: ["tests"] }], - filename: fixture("test.js"), env: { node: true }, }, // Ignores it if not callee. { - code: "require;", filename: fixture("test.js"), + code: "require;", env: { node: true }, }, // Ignores it if the global variable of `require` is not defined. { - code: "require('no-exist-package-0');", filename: fixture("test.js"), + code: "require('no-exist-package-0');", }, // Ignores it if the filename is unknown. @@ -147,135 +147,135 @@ ruleTester.run("no-missing-require", rule, { // Ignores it if the target is not string. { - code: "require();", filename: fixture("test.js"), + code: "require();", env: { node: true }, }, { - code: "require(foo);", filename: fixture("test.js"), + code: "require(foo);", env: { node: true }, }, { - code: "require(`foo${bar}`);", //eslint-disable-line no-template-curly-in-string filename: fixture("test.js"), + code: "require(`foo${bar}`);", //eslint-disable-line no-template-curly-in-string env: { node: true, es6: true }, }, // Should work fine if the filename is relative. { - code: "require('eslint');", filename: "tests/fixtures/no-missing/test.js", + code: "require('eslint');", env: { node: true }, }, { - code: "require('./a');", filename: "tests/fixtures/no-missing/test.js", + code: "require('./a');", env: { node: true }, }, // Relative paths to a directory should work. { - code: "require('.');", filename: fixture("test.js"), + code: "require('.');", env: { node: true }, }, { - code: "require('./');", filename: fixture("test.js"), + code: "require('./');", env: { node: true }, }, { - code: "require('./foo');", filename: fixture("test.js"), + code: "require('./foo');", env: { node: true }, }, { - code: "require('./foo/');", filename: fixture("test.js"), + code: "require('./foo/');", env: { node: true }, }, // allow option { + filename: fixture("test.js"), code: "require('electron');", options: [{ allowModules: ["electron"] }], - filename: fixture("test.js"), env: { node: true }, }, { + filename: fixture("test.js"), code: "require('jquery.cookie');", options: [{ allowModules: ["jquery.cookie"] }], - filename: fixture("test.js"), env: { node: true }, }, ], invalid: [ { - code: "require('no-exist-package-0');", - errors: ['"no-exist-package-0" is not found.'], filename: fixture("test.js"), + code: "require('no-exist-package-0');", env: { node: true }, + errors: ['"no-exist-package-0" is not found.'], }, { - code: "require('@mysticatea/test');", - errors: ['"@mysticatea/test" is not found.'], filename: fixture("test.js"), + code: "require('@mysticatea/test');", env: { node: true }, + errors: ['"@mysticatea/test" is not found.'], }, { - code: "require('./c');", - errors: ['"./c" is not found.'], filename: fixture("test.js"), + code: "require('./c');", env: { node: true }, + errors: ['"./c" is not found.'], }, { - code: "require('./d');", - errors: ['"./d" is not found.'], filename: fixture("test.js"), + code: "require('./d');", env: { node: true }, + errors: ['"./d" is not found.'], }, { - code: "require('./a.json');", - errors: ['"./a.json" is not found.'], filename: fixture("test.js"), + code: "require('./a.json');", env: { node: true }, + errors: ['"./a.json" is not found.'], }, // Should work fine if the filename is relative. { - code: "require('no-exist-package-0');", - errors: ['"no-exist-package-0" is not found.'], filename: "tests/fixtures/no-missing/test.js", + code: "require('no-exist-package-0');", env: { node: true }, + errors: ['"no-exist-package-0" is not found.'], }, { - code: "require('./c');", - errors: ['"./c" is not found.'], filename: "tests/fixtures/no-missing/test.js", + code: "require('./c');", env: { node: true }, + errors: ['"./c" is not found.'], }, // Relative paths to a directory should work. { - code: "require('./bar');", - errors: ['"./bar" is not found.'], filename: fixture("test.js"), + code: "require('./bar');", env: { node: true }, + errors: ['"./bar" is not found.'], }, { - code: "require('./bar/');", - errors: ['"./bar/" is not found.'], filename: fixture("test.js"), + code: "require('./bar/');", env: { node: true }, + errors: ['"./bar/" is not found.'], }, // Case sensitive { - code: "require('./A');", - errors: ['"./A" is not found.'], filename: fixture("test.js"), + code: "require('./A');", env: { node: true }, + errors: ['"./A" is not found.'], }, ], }) diff --git a/tests/lib/rules/no-unpublished-bin.js b/tests/lib/rules/no-unpublished-bin.js index 0f10bd35..e65c17d4 100644 --- a/tests/lib/rules/no-unpublished-bin.js +++ b/tests/lib/rules/no-unpublished-bin.js @@ -20,52 +20,52 @@ function fixture(name) { new RuleTester().run("no-unpublished-bin", rule, { valid: [ { - code: "'simple-ok/a.js'", filename: fixture("simple-ok/a.js"), + code: "'simple-ok/a.js'", }, { - code: "'multi-ok/a.js'", filename: fixture("multi-ok/a.js"), + code: "'multi-ok/a.js'", }, { - code: "'multi-ok/b.js'", filename: fixture("multi-ok/b.js"), + code: "'multi-ok/b.js'", }, { - code: "'simple-files/x.js'", filename: fixture("simple-files/x.js"), + code: "'simple-files/x.js'", }, { - code: "'multi-files/x.js'", filename: fixture("multi-files/x.js"), + code: "'multi-files/x.js'", }, { - code: "'simple-files/lib/a.js'", filename: fixture("simple-files/lib/a.js"), + code: "'simple-files/lib/a.js'", }, { - code: "'multi-files/lib/a.js'", filename: fixture("multi-files/lib/a.js"), + code: "'multi-files/lib/a.js'", }, { - code: "'simple-npmignore/x.js'", filename: fixture("simple-npmignore/x.js"), + code: "'simple-npmignore/x.js'", }, { - code: "'multi-npmignore/x.js'", filename: fixture("multi-npmignore/x.js"), + code: "'multi-npmignore/x.js'", }, { - code: "'simple-npmignore/lib/a.js'", filename: fixture("simple-npmignore/lib/a.js"), + code: "'simple-npmignore/lib/a.js'", }, { - code: "'multi-npmignore/lib/a.js'", filename: fixture("multi-npmignore/lib/a.js"), + code: "'multi-npmignore/lib/a.js'", }, { - code: "'issue115/lib/a.js'", filename: fixture("issue115/lib/a.js"), + code: "'issue115/lib/a.js'", }, // empty name @@ -73,51 +73,51 @@ new RuleTester().run("no-unpublished-bin", rule, { // convertPath option { + filename: fixture("simple-files/a.js"), code: "'simple-files/a.js'", options: [{ convertPath: { "a.js": ["a.js", "lib/a.js"] } }], - filename: fixture("simple-files/a.js"), }, { + filename: fixture("multi-files/a.js"), code: "'multi-files/a.js'", options: [{ convertPath: { "a.js": ["a.js", "lib/a.js"] } }], - filename: fixture("multi-files/a.js"), }, { + filename: fixture("simple-npmignore/a.js"), code: "'simple-npmignore/a.js'", options: [{ convertPath: { "a.js": ["a.js", "lib/a.js"] } }], - filename: fixture("simple-npmignore/a.js"), }, { + filename: fixture("multi-npmignore/a.js"), code: "'multi-npmignore/a.js'", options: [{ convertPath: { "a.js": ["a.js", "lib/a.js"] } }], - filename: fixture("multi-npmignore/a.js"), }, // convertPath shared setting { - code: "'simple-files/a.js'", filename: fixture("simple-files/a.js"), + code: "'simple-files/a.js'", settings: { node: { convertPath: { "a.js": ["a.js", "lib/a.js"] } }, }, }, { - code: "'multi-files/a.js'", filename: fixture("multi-files/a.js"), + code: "'multi-files/a.js'", settings: { node: { convertPath: { "a.js": ["a.js", "lib/a.js"] } }, }, }, { - code: "'simple-npmignore/a.js'", filename: fixture("simple-npmignore/a.js"), + code: "'simple-npmignore/a.js'", settings: { node: { convertPath: { "a.js": ["a.js", "lib/a.js"] } }, }, }, { - code: "'multi-npmignore/a.js'", filename: fixture("multi-npmignore/a.js"), + code: "'multi-npmignore/a.js'", settings: { node: { convertPath: { "a.js": ["a.js", "lib/a.js"] } }, }, @@ -126,87 +126,88 @@ new RuleTester().run("no-unpublished-bin", rule, { invalid: [ // files field of `package.json` { + filename: fixture("simple-files/a.js"), code: "'simple-files/a.js'", errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("simple-files/a.js"), }, { + filename: fixture("multi-files/a.js"), code: "'multi-files/a.js'", errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-files/a.js"), }, { + filename: fixture("multi-files/b.js"), code: "'multi-files/b.js'", errors: [ "npm ignores 'b.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-files/b.js"), }, // `.npmignore` { + filename: fixture("simple-npmignore/a.js"), code: "'simple-npmignore/a.js'", errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("simple-npmignore/a.js"), }, { + filename: fixture("multi-npmignore/a.js"), code: "'multi-npmignore/a.js'", errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-npmignore/a.js"), }, // files field of `package.json` with convertPath { + filename: fixture("simple-files/x.js"), code: "'simple-files/x.js'", options: [{ convertPath: { "x.js": ["x.js", "a.js"] } }], errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("simple-files/x.js"), }, { + filename: fixture("multi-files/x.js"), code: "'multi-files/x.js'", options: [{ convertPath: { "x.js": ["x.js", "a.js"] } }], errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-files/x.js"), }, { + filename: fixture("multi-files/x.js"), code: "'multi-files/x.js'", options: [{ convertPath: { "x.js": ["x.js", "b.js"] } }], errors: [ "npm ignores 'b.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-files/x.js"), }, // `.npmignore` with convertPath { + filename: fixture("simple-npmignore/x.js"), code: "'simple-npmignore/x.js'", options: [{ convertPath: { "x.js": ["x.js", "a.js"] } }], errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("simple-npmignore/x.js"), }, { + filename: fixture("multi-npmignore/x.js"), code: "'multi-npmignore/x.js'", options: [{ convertPath: { "x.js": ["x.js", "a.js"] } }], errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-npmignore/x.js"), }, { + filename: fixture("simple-npmignore/x.js"), code: "'simple-npmignore/x.js'", options: [ { @@ -221,9 +222,9 @@ new RuleTester().run("no-unpublished-bin", rule, { errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("simple-npmignore/x.js"), }, { + filename: fixture("multi-npmignore/x.js"), code: "'multi-npmignore/x.js'", options: [ { @@ -238,50 +239,49 @@ new RuleTester().run("no-unpublished-bin", rule, { errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-npmignore/x.js"), }, // files field of `package.json` with convertPath (shared setting) { + filename: fixture("simple-files/x.js"), code: "'simple-files/x.js'", errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("simple-files/x.js"), settings: { node: { convertPath: { "x.js": ["x.js", "a.js"] } } }, }, { + filename: fixture("multi-files/x.js"), code: "'multi-files/x.js'", errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-files/x.js"), settings: { node: { convertPath: { "x.js": ["x.js", "a.js"] } } }, }, { + filename: fixture("multi-files/x.js"), code: "'multi-files/x.js'", errors: [ "npm ignores 'b.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-files/x.js"), settings: { node: { convertPath: { "x.js": ["x.js", "b.js"] } } }, }, // `.npmignore` with convertPath (shared setting) { + filename: fixture("simple-npmignore/x.js"), code: "'simple-npmignore/x.js'", errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("simple-npmignore/x.js"), settings: { node: { convertPath: { "x.js": ["x.js", "a.js"] } } }, }, { + filename: fixture("multi-npmignore/x.js"), code: "'multi-npmignore/x.js'", errors: [ "npm ignores 'a.js'. Check 'files' field of 'package.json' or '.npmignore'.", ], - filename: fixture("multi-npmignore/x.js"), settings: { node: { convertPath: { "x.js": ["x.js", "a.js"] } } }, }, ], diff --git a/tests/lib/rules/no-unpublished-import.js b/tests/lib/rules/no-unpublished-import.js index f8cd59a4..608012c5 100644 --- a/tests/lib/rules/no-unpublished-import.js +++ b/tests/lib/rules/no-unpublished-import.js @@ -21,72 +21,72 @@ const ruleTester = new RuleTester({ parserOptions: { sourceType: "module" } }) ruleTester.run("no-unpublished-import", rule, { valid: [ { - code: "import fs from 'fs';", filename: fixture("1/test.js"), + code: "import fs from 'fs';", }, { - code: "import aaa from 'aaa'; aaa();", filename: fixture("1/test.js"), + code: "import aaa from 'aaa'; aaa();", }, { - code: "import c from 'aaa/a/b/c';", filename: fixture("1/test.js"), + code: "import c from 'aaa/a/b/c';", }, { - code: "import a from './a';", filename: fixture("1/test.js"), + code: "import a from './a';", }, { - code: "import a from './a.js';", filename: fixture("1/test.js"), + code: "import a from './a.js';", }, { - code: "import test from './test';", filename: fixture("2/ignore1.js"), + code: "import test from './test';", }, { - code: "import bbb from 'bbb';", filename: fixture("2/ignore1.js"), + code: "import bbb from 'bbb';", }, { - code: "import c from 'bbb/a/b/c';", filename: fixture("2/ignore1.js"), + code: "import c from 'bbb/a/b/c';", }, { - code: "import ignore2 from './ignore2';", filename: fixture("2/ignore1.js"), + code: "import ignore2 from './ignore2';", }, { - code: "import a from './pub/a';", filename: fixture("3/test.js"), + code: "import a from './pub/a';", }, { - code: "import test2 from './test2';", filename: fixture("3/test.js"), + code: "import test2 from './test2';", }, { - code: "import aaa from 'aaa';", filename: fixture("3/test.js"), + code: "import aaa from 'aaa';", }, { - code: "import bbb from 'bbb';", filename: fixture("3/test.js"), + code: "import bbb from 'bbb';", }, { - code: "import bbb from 'bbb';", filename: fixture("3/pub/ignore1.js"), + code: "import bbb from 'bbb';", }, { - code: "import p from '../package.json';", filename: fixture("3/pub/test.js"), + code: "import p from '../package.json';", }, { - code: "import bbb from 'bbb';", filename: fixture("3/src/pub/test.js"), + code: "import bbb from 'bbb';", }, { - code: "import bbb from 'bbb!foo?a=b&c=d';", filename: fixture("3/src/pub/test.js"), + code: "import bbb from 'bbb!foo?a=b&c=d';", }, // Ignores it if the filename is unknown. @@ -95,88 +95,88 @@ ruleTester.run("no-unpublished-import", rule, { // Should work fine if the filename is relative. { - code: "import aaa from 'aaa';", filename: "tests/fixtures/no-unpublished/2/test.js", + code: "import aaa from 'aaa';", }, { - code: "import a from './a';", filename: "tests/fixtures/no-unpublished/2/test.js", + code: "import a from './a';", }, { + filename: fixture("1/test.js"), code: "import electron from 'electron';", options: [{ allowModules: ["electron"] }], - filename: fixture("1/test.js"), }, // Auto-published files only apply to root package directory { - code: "import bbb from 'bbb';", filename: fixture("3/src/readme.js"), + code: "import bbb from 'bbb';", env: { node: true }, }, // Negative patterns in files field. { - code: "import bbb from 'bbb';", filename: fixture("negative-in-files/lib/__test__/index.js"), + code: "import bbb from 'bbb';", }, ], invalid: [ { + filename: fixture("2/test.js"), code: "import ignore1 from './ignore1.js';", errors: ['"./ignore1.js" is not published.'], - filename: fixture("2/test.js"), }, { + filename: fixture("2/test.js"), code: "import ignore1 from './ignore1';", errors: ['"./ignore1" is not published.'], - filename: fixture("2/test.js"), }, { + filename: fixture("3/pub/test.js"), code: "import bbb from 'bbb';", errors: ['"bbb" is not published.'], - filename: fixture("3/pub/test.js"), }, { + filename: fixture("3/pub/test.js"), code: "import ignore1 from './ignore1';", errors: ['"./ignore1" is not published.'], - filename: fixture("3/pub/test.js"), }, { + filename: fixture("3/pub/test.js"), code: "import abc from './abc';", errors: ['"./abc" is not published.'], - filename: fixture("3/pub/test.js"), }, { + filename: fixture("3/pub/test.js"), code: "import test from '../test';", errors: ['"../test" is not published.'], - filename: fixture("3/pub/test.js"), }, { + filename: fixture("3/pub/test.js"), code: "import a from '../src/pub/a.js';", errors: ['"../src/pub/a.js" is not published.'], - filename: fixture("3/pub/test.js"), }, { + filename: fixture("1/test.js"), code: "import a from '../a.js';", errors: ['"../a.js" is not published.'], - filename: fixture("1/test.js"), }, // Should work fine if the filename is relative. { + filename: "tests/fixtures/no-unpublished/2/test.js", code: "import ignore1 from './ignore1';", errors: ['"./ignore1" is not published.'], - filename: "tests/fixtures/no-unpublished/2/test.js", }, // `convertPath` option. { + filename: fixture("3/src/test.jsx"), code: "import a from '../test';", errors: ['"../test" is not published.'], - filename: fixture("3/src/test.jsx"), settings: { node: { convertPath: { @@ -187,6 +187,7 @@ ruleTester.run("no-unpublished-import", rule, { }, }, { + filename: fixture("3/src/test.jsx"), code: "import a from '../test';", options: [ { @@ -197,12 +198,11 @@ ruleTester.run("no-unpublished-import", rule, { }, ], errors: ['"../test" is not published.'], - filename: fixture("3/src/test.jsx"), }, { + filename: fixture("3/src/test.jsx"), code: "import a from '../test';", errors: ['"../test" is not published.'], - filename: fixture("3/src/test.jsx"), settings: { node: { convertPath: [ @@ -216,6 +216,7 @@ ruleTester.run("no-unpublished-import", rule, { }, }, { + filename: fixture("3/src/test.jsx"), code: "import a from '../test';", options: [ { @@ -229,15 +230,14 @@ ruleTester.run("no-unpublished-import", rule, { }, ], errors: ['"../test" is not published.'], - filename: fixture("3/src/test.jsx"), }, // outside of the package. { - code: "import a from '../2/a.js';", - errors: ['"../2/a.js" is not published.'], filename: fixture("1/test.js"), + code: "import a from '../2/a.js';", env: { node: true }, + errors: ['"../2/a.js" is not published.'], }, ], }) diff --git a/tests/lib/rules/no-unpublished-require.js b/tests/lib/rules/no-unpublished-require.js index 8b0adf86..5cab4a91 100644 --- a/tests/lib/rules/no-unpublished-require.js +++ b/tests/lib/rules/no-unpublished-require.js @@ -21,95 +21,95 @@ const ruleTester = new RuleTester() ruleTester.run("no-unpublished-require", rule, { valid: [ { - code: "require('fs');", filename: fixture("1/test.js"), + code: "require('fs');", env: { node: true }, }, { - code: "require('aaa');", filename: fixture("1/test.js"), + code: "require('aaa');", env: { node: true }, }, { - code: "require('aaa/a/b/c');", filename: fixture("1/test.js"), + code: "require('aaa/a/b/c');", env: { node: true }, }, { - code: "require('./a');", filename: fixture("1/test.js"), + code: "require('./a');", env: { node: true }, }, { - code: "require('./a.js');", filename: fixture("1/test.js"), + code: "require('./a.js');", env: { node: true }, }, { - code: "require('./test');", filename: fixture("2/ignore1.js"), + code: "require('./test');", env: { node: true }, }, { - code: "require('bbb');", filename: fixture("2/ignore1.js"), + code: "require('bbb');", env: { node: true }, }, { - code: "require('bbb/a/b/c');", filename: fixture("2/ignore1.js"), + code: "require('bbb/a/b/c');", env: { node: true }, }, { - code: "require('./ignore2');", filename: fixture("2/ignore1.js"), + code: "require('./ignore2');", env: { node: true }, }, { - code: "require('./pub/a');", filename: fixture("3/test.js"), + code: "require('./pub/a');", env: { node: true }, }, { - code: "require('./test2');", filename: fixture("3/test.js"), + code: "require('./test2');", env: { node: true }, }, { - code: "require('aaa');", filename: fixture("3/test.js"), + code: "require('aaa');", env: { node: true }, }, { - code: "require('bbb');", filename: fixture("3/test.js"), + code: "require('bbb');", env: { node: true }, }, { - code: "require('bbb');", filename: fixture("3/pub/ignore1.js"), + code: "require('bbb');", env: { node: true }, }, { - code: "require('../package.json');", filename: fixture("3/pub/test.js"), + code: "require('../package.json');", env: { node: true }, }, { - code: "require('bbb');", filename: fixture("3/src/pub/test.js"), + code: "require('bbb');", env: { node: true }, }, { - code: "require('bbb!foo?a=b&c=d');", filename: fixture("3/src/pub/test.js"), + code: "require('bbb!foo?a=b&c=d');", env: { node: true }, }, // `convertPath` option. { - code: "require('./a');", filename: fixture("3/src/test.jsx"), + code: "require('./a');", env: { node: true }, settings: { node: { @@ -121,6 +121,7 @@ ruleTester.run("no-unpublished-require", rule, { }, }, { + filename: fixture("3/src/test.jsx"), code: "require('./a');", options: [ { @@ -130,12 +131,11 @@ ruleTester.run("no-unpublished-require", rule, { tryExtensions: [".js", ".jsx", ".json"], }, ], - filename: fixture("3/src/test.jsx"), env: { node: true }, }, { - code: "require('../test');", filename: fixture("3/src/test.jsx"), + code: "require('../test');", env: { node: true }, settings: { node: { @@ -150,6 +150,7 @@ ruleTester.run("no-unpublished-require", rule, { }, }, { + filename: fixture("3/src/test.jsx"), code: "require('../test');", options: [ { @@ -162,21 +163,20 @@ ruleTester.run("no-unpublished-require", rule, { ], }, ], - filename: fixture("3/src/test.jsx"), env: { node: true }, }, // Ignores it if not callee. { - code: "require;", filename: fixture("1/test.js"), + code: "require;", env: { node: true }, }, // Ignores it if the global variable of `require` is not defined. { - code: "require('no-exist-package-0');", filename: fixture("1/test.js"), + code: "require('no-exist-package-0');", }, // Ignores it if the filename is unknown. @@ -191,122 +191,122 @@ ruleTester.run("no-unpublished-require", rule, { // Ignores it if the target is not string. { - code: "require();", filename: fixture("1/test.js"), + code: "require();", env: { node: true }, }, { - code: "require(foo);", filename: fixture("1/test.js"), + code: "require(foo);", env: { node: true }, }, { - code: "require(777);", filename: fixture("1/test.js"), + code: "require(777);", env: { node: true }, }, { - code: "require(`foo${bar}`);", //eslint-disable-line no-template-curly-in-string filename: fixture("1/test.js"), + code: "require(`foo${bar}`);", //eslint-disable-line no-template-curly-in-string env: { node: true, es6: true }, }, // Should work fine if the filename is relative. { - code: "require('aaa');", filename: "tests/fixtures/no-unpublished/2/test.js", + code: "require('aaa');", env: { node: true }, }, { - code: "require('./a');", filename: "tests/fixtures/no-unpublished/2/test.js", + code: "require('./a');", env: { node: true }, }, // allowModules option { + filename: fixture("1/test.js"), code: "require('electron');", options: [{ allowModules: ["electron"] }], - filename: fixture("1/test.js"), env: { node: true }, }, // Auto-published files only apply to root package directory { - code: "require('bbb');", filename: fixture("3/src/readme.js"), + code: "require('bbb');", env: { node: true }, }, // Negative patterns in files field. { - code: "require('bbb');", filename: fixture("negative-in-files/lib/__test__/index.js"), + code: "require('bbb');", env: { node: true }, }, { - code: "require('bbb');", filename: fixture("issue126/lib/test.js"), + code: "require('bbb');", env: { node: true }, }, ], invalid: [ { - code: "require('./ignore1.js');", - errors: ['"./ignore1.js" is not published.'], filename: fixture("2/test.js"), + code: "require('./ignore1.js');", env: { node: true }, + errors: ['"./ignore1.js" is not published.'], }, { - code: "require('./ignore1');", - errors: ['"./ignore1" is not published.'], filename: fixture("2/test.js"), + code: "require('./ignore1');", env: { node: true }, + errors: ['"./ignore1" is not published.'], }, { - code: "require('bbb');", - errors: ['"bbb" is not published.'], filename: fixture("3/pub/test.js"), + code: "require('bbb');", env: { node: true }, + errors: ['"bbb" is not published.'], }, { - code: "require('./ignore1');", - errors: ['"./ignore1" is not published.'], filename: fixture("3/pub/test.js"), + code: "require('./ignore1');", env: { node: true }, + errors: ['"./ignore1" is not published.'], }, { - code: "require('./abc');", - errors: ['"./abc" is not published.'], filename: fixture("3/pub/test.js"), + code: "require('./abc');", env: { node: true }, + errors: ['"./abc" is not published.'], }, { - code: "require('../test');", - errors: ['"../test" is not published.'], filename: fixture("3/pub/test.js"), + code: "require('../test');", env: { node: true }, + errors: ['"../test" is not published.'], }, { - code: "require('../src/pub/a.js');", - errors: ['"../src/pub/a.js" is not published.'], filename: fixture("3/pub/test.js"), + code: "require('../src/pub/a.js');", env: { node: true }, + errors: ['"../src/pub/a.js" is not published.'], }, { - code: "require('../a.js');", - errors: ['"../a.js" is not published.'], filename: fixture("1/test.js"), + code: "require('../a.js');", env: { node: true }, + errors: ['"../a.js" is not published.'], }, // `convertPath` option. { - code: "require('../test');", - errors: ['"../test" is not published.'], filename: fixture("3/src/test.jsx"), + code: "require('../test');", env: { node: true }, + errors: ['"../test" is not published.'], settings: { node: { convertPath: { @@ -316,6 +316,7 @@ ruleTester.run("no-unpublished-require", rule, { }, }, { + filename: fixture("3/src/test.jsx"), code: "require('../test');", options: [ { @@ -324,15 +325,14 @@ ruleTester.run("no-unpublished-require", rule, { }, }, ], - errors: ['"../test" is not published.'], - filename: fixture("3/src/test.jsx"), env: { node: true }, + errors: ['"../test" is not published.'], }, { - code: "require('../test');", - errors: ['"../test" is not published.'], filename: fixture("3/src/test.jsx"), + code: "require('../test');", env: { node: true }, + errors: ['"../test" is not published.'], settings: { node: { convertPath: [ @@ -345,6 +345,7 @@ ruleTester.run("no-unpublished-require", rule, { }, }, { + filename: fixture("3/src/test.jsx"), code: "require('../test');", options: [ { @@ -356,25 +357,24 @@ ruleTester.run("no-unpublished-require", rule, { ], }, ], - errors: ['"../test" is not published.'], - filename: fixture("3/src/test.jsx"), env: { node: true }, + errors: ['"../test" is not published.'], }, // Should work fine if the filename is relative. { - code: "require('./ignore1');", - errors: ['"./ignore1" is not published.'], filename: "tests/fixtures/no-unpublished/2/test.js", + code: "require('./ignore1');", env: { node: true }, + errors: ['"./ignore1" is not published.'], }, // outside of the package. { - code: "require('../2/a.js');", - errors: ['"../2/a.js" is not published.'], filename: fixture("1/test.js"), + code: "require('../2/a.js');", env: { node: true }, + errors: ['"../2/a.js" is not published.'], }, ], }) diff --git a/tests/lib/rules/shebang.js b/tests/lib/rules/shebang.js index 5d703bfe..e0ad1c66 100644 --- a/tests/lib/rules/shebang.js +++ b/tests/lib/rules/shebang.js @@ -21,289 +21,289 @@ const ruleTester = new RuleTester() ruleTester.run("shebang", rule, { valid: [ { - code: "#!/usr/bin/env node\nhello();", filename: fixture("string-bin/bin/test.js"), + code: "#!/usr/bin/env node\nhello();", }, { - code: "hello();", filename: fixture("string-bin/lib/test.js"), + code: "hello();", }, { - code: "#!/usr/bin/env node\nhello();", filename: fixture("object-bin/bin/a.js"), + code: "#!/usr/bin/env node\nhello();", }, { - code: "#!/usr/bin/env node\nhello();", filename: fixture("object-bin/bin/b.js"), + code: "#!/usr/bin/env node\nhello();", }, { - code: "hello();", filename: fixture("object-bin/bin/c.js"), + code: "hello();", }, { - code: "hello();", filename: fixture("no-bin-field/lib/test.js"), + code: "hello();", }, "#!/usr/bin/env node\nhello();", "hello();", // convertPath { + filename: fixture("string-bin/src/bin/test.js"), code: "#!/usr/bin/env node\nhello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], - filename: fixture("string-bin/src/bin/test.js"), }, { + filename: fixture("string-bin/src/lib/test.js"), code: "hello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], - filename: fixture("string-bin/src/lib/test.js"), }, { + filename: fixture("object-bin/src/bin/a.js"), code: "#!/usr/bin/env node\nhello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], - filename: fixture("object-bin/src/bin/a.js"), }, { + filename: fixture("object-bin/src/bin/b.js"), code: "#!/usr/bin/env node\nhello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], - filename: fixture("object-bin/src/bin/b.js"), }, { + filename: fixture("object-bin/src/bin/c.js"), code: "hello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], - filename: fixture("object-bin/src/bin/c.js"), }, { + filename: fixture("no-bin-field/src/lib/test.js"), code: "hello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], - filename: fixture("no-bin-field/src/lib/test.js"), }, // Should work fine if the filename is relative. { - code: "#!/usr/bin/env node\nhello();", filename: "tests/fixtures/shebang/string-bin/bin/test.js", + code: "#!/usr/bin/env node\nhello();", }, { - code: "hello();", filename: "tests/fixtures/shebang/string-bin/lib/test.js", + code: "hello();", }, // BOM and \r\n { - code: "\uFEFFhello();", filename: fixture("string-bin/lib/test.js"), + code: "\uFEFFhello();", }, { - code: "\uFEFFhello();\n", filename: fixture("string-bin/lib/test.js"), + code: "\uFEFFhello();\n", }, { - code: "hello();\r\n", filename: fixture("string-bin/lib/test.js"), + code: "hello();\r\n", }, { - code: "\uFEFFhello();\r\n", filename: fixture("string-bin/lib/test.js"), + code: "\uFEFFhello();\r\n", }, // blank lines on the top of files. { - code: "\n\n\nhello();", filename: fixture("string-bin/lib/test.js"), + code: "\n\n\nhello();", }, // https://github.com/mysticatea/eslint-plugin-node/issues/51 { - code: "#!/usr/bin/env node --harmony\nhello();", filename: fixture("string-bin/bin/test.js"), + code: "#!/usr/bin/env node --harmony\nhello();", }, ], invalid: [ { + filename: fixture("string-bin/bin/test.js"), code: "hello();", output: "#!/usr/bin/env node\nhello();", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/bin/test.js"), code: "#!/usr/bin/node\nhello();", output: "#!/usr/bin/env node\nhello();", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/lib/test.js"), code: "#!/usr/bin/env node\nhello();", output: "hello();", errors: ["This file needs no shebang."], - filename: fixture("string-bin/lib/test.js"), }, { + filename: fixture("object-bin/bin/a.js"), code: "hello();", output: "#!/usr/bin/env node\nhello();", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("object-bin/bin/a.js"), }, { + filename: fixture("object-bin/bin/b.js"), code: "#!/usr/bin/node\nhello();", output: "#!/usr/bin/env node\nhello();", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("object-bin/bin/b.js"), }, { + filename: fixture("object-bin/bin/c.js"), code: "#!/usr/bin/env node\nhello();", output: "hello();", errors: ["This file needs no shebang."], - filename: fixture("object-bin/bin/c.js"), }, { + filename: fixture("no-bin-field/lib/test.js"), code: "#!/usr/bin/env node\nhello();", output: "hello();", errors: ["This file needs no shebang."], - filename: fixture("no-bin-field/lib/test.js"), }, // convertPath { + filename: fixture("string-bin/src/bin/test.js"), code: "hello();", output: "#!/usr/bin/env node\nhello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/src/bin/test.js"), }, { + filename: fixture("string-bin/src/bin/test.js"), code: "hello();", output: "#!/usr/bin/env node\nhello();", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/src/bin/test.js"), settings: { node: { convertPath: { "src/**": ["^src/(.+)$", "$1"] } }, }, }, { + filename: fixture("string-bin/src/bin/test.js"), code: "#!/usr/bin/node\nhello();", output: "#!/usr/bin/env node\nhello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/src/bin/test.js"), }, { + filename: fixture("string-bin/src/lib/test.js"), code: "#!/usr/bin/env node\nhello();", output: "hello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], errors: ["This file needs no shebang."], - filename: fixture("string-bin/src/lib/test.js"), }, { + filename: fixture("object-bin/src/bin/a.js"), code: "hello();", output: "#!/usr/bin/env node\nhello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("object-bin/src/bin/a.js"), }, { + filename: fixture("object-bin/src/bin/b.js"), code: "#!/usr/bin/node\nhello();", output: "#!/usr/bin/env node\nhello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("object-bin/src/bin/b.js"), }, { + filename: fixture("object-bin/src/bin/c.js"), code: "#!/usr/bin/env node\nhello();", output: "hello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], errors: ["This file needs no shebang."], - filename: fixture("object-bin/src/bin/c.js"), }, { + filename: fixture("no-bin-field/src/lib/test.js"), code: "#!/usr/bin/env node\nhello();", output: "hello();", options: [{ convertPath: { "src/**": ["^src/(.+)$", "$1"] } }], errors: ["This file needs no shebang."], - filename: fixture("no-bin-field/src/lib/test.js"), }, // Should work fine if the filename is relative. { + filename: "tests/fixtures/shebang/string-bin/bin/test.js", code: "hello();", output: "#!/usr/bin/env node\nhello();", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: "tests/fixtures/shebang/string-bin/bin/test.js", }, { + filename: "tests/fixtures/shebang/string-bin/lib/test.js", code: "#!/usr/bin/env node\nhello();", output: "hello();", errors: ["This file needs no shebang."], - filename: "tests/fixtures/shebang/string-bin/lib/test.js", }, // header comments { + filename: fixture("string-bin/bin/test.js"), code: "/* header */\nhello();", output: "#!/usr/bin/env node\n/* header */\nhello();", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/bin/test.js"), }, // BOM and \r\n { + filename: fixture("string-bin/bin/test.js"), code: "\uFEFFhello();", output: "#!/usr/bin/env node\nhello();", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/bin/test.js"), code: "hello();\n", output: "#!/usr/bin/env node\nhello();\n", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/bin/test.js"), code: "hello();\r\n", output: "#!/usr/bin/env node\nhello();\r\n", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/bin/test.js"), code: "\uFEFFhello();\n", output: "#!/usr/bin/env node\nhello();\n", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/bin/test.js"), code: "\uFEFFhello();\r\n", output: "#!/usr/bin/env node\nhello();\r\n", errors: ['This file needs shebang "#!/usr/bin/env node".'], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/bin/test.js"), code: "#!/usr/bin/env node\r\nhello();", output: "#!/usr/bin/env node\nhello();", errors: ["This file must have Unix linebreaks (LF)."], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/bin/test.js"), code: "\uFEFF#!/usr/bin/env node\nhello();", output: "#!/usr/bin/env node\nhello();", errors: ["This file must not have Unicode BOM."], - filename: fixture("string-bin/bin/test.js"), }, { + filename: fixture("string-bin/bin/test.js"), code: "\uFEFF#!/usr/bin/env node\r\nhello();", output: "#!/usr/bin/env node\nhello();", errors: [ "This file must not have Unicode BOM.", "This file must have Unix linebreaks (LF).", ], - filename: fixture("string-bin/bin/test.js"), }, // https://github.com/mysticatea/eslint-plugin-node/issues/51 { + filename: fixture("string-bin/lib/test.js"), code: "#!/usr/bin/env node --harmony\nhello();", output: "hello();", errors: ["This file needs no shebang."], - filename: fixture("string-bin/lib/test.js"), }, ], })