UNPKG

@kendallgassner/eslint-plugin-package-json

Version:

Rules for valid, consistent, and readable package.json files

322 lines (317 loc) 12.1 kB
/** * @fileoverview Checks existence of local dependencies in the package.json * @author Kendall Gassner */ 'use strict'; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const path = require('path'); var rule = require('../../../lib/rules/local-dependency'), RuleTester = require('eslint').RuleTester; //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ const fileName = partialPath => { return path.join(process.cwd(), partialPath); }; var ruleTester = new RuleTester(); ruleTester.run('local-dependency', rule, { valid: [ { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "link:./tests/lib/__fixtures__/local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json') }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "devDependencies": { "some-package": "link:./tests/lib/__fixtures__/local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json') }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC" }`, filename: fileName('package.json') }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-other-package": "some-other-package" } }`, filename: fileName('package.json') }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "link:./tests/lib/__fixtures__/Local-dependency", } }`, filename: fileName('not-package.json') }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "link:../local-dependency" } }`, filename: fileName( '/tests/lib/__fixtures__/unalphabetized-collections/package.json' ) }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "file:./tests/lib/__fixtures__/local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json') } ], invalid: [ { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "link:./tests/lib/__fixtures__/Local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json'), errors: [ { message: 'The package some-package does not exist given the specified path: link:./tests/lib/__fixtures__/Local-dependency.' } ] }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "peerDependencies": { "some-package": "link:./tests/lib/__fixtures__/Local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json'), errors: [ { message: 'Peer Dependencies cannot be listed as local dependencies.' } ] }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "devDependencies": { "some-package": "link:./tests/lib/__fixtures__/Local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json'), errors: [ { message: 'The package some-package does not exist given the specified path: link:./tests/lib/__fixtures__/Local-dependency.' } ] }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "link:./tests/lib/__fixtures__/dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json'), errors: [ { message: 'The package some-package does not exist given the specified path: link:./tests/lib/__fixtures__/dependency.' } ] }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "link:./tests/lib/__fixtures__/Local-dependency", "some-other-package": "some-other-package" }, "peerDependencies": { "peer-package": "link:./tests/lib/__fixtures__/Local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json'), errors: [ { message: 'The package some-package does not exist given the specified path: link:./tests/lib/__fixtures__/Local-dependency.' }, { message: 'Peer Dependencies cannot be listed as local dependencies.' } ] }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "link:./tests/lib/__fixtures__/Local-dependency", "another-path": "link:./tests/lib/__fixtures__/local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json'), errors: [ { message: 'The package some-package does not exist given the specified path: link:./tests/lib/__fixtures__/Local-dependency.' } ] }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "link:../Local-dependency" } }`, filename: fileName( 'tests/lib/__fixtures__/unalphabetized-collections/package.json' ), errors: [ { message: 'The package some-package does not exist given the specified path: link:../Local-dependency.' } ] }, { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC", "dependencies": { "some-package": "file:./tests/lib/__fixtures__/Local-dependency", "some-other-package": "some-other-package" } }`, filename: fileName('package.json'), errors: [ { message: 'The package some-package does not exist given the specified path: file:./tests/lib/__fixtures__/Local-dependency.' } ] } ] });