UNPKG

@kendallgassner/eslint-plugin-package-json

Version:

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

81 lines (72 loc) 2.09 kB
/** * @fileoverview Enforce that package.json has all properties required by NPM spec * @author Magento Commerce */ 'use strict'; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ var rule = require('../../../lib/rules/valid-package-def'), RuleTester = require('eslint').RuleTester; //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ var ruleTester = new RuleTester(); ruleTester.run('valid-package-def', rule, { valid: [ { code: `module.exports = { "name": "pandages", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC" }`, filename: 'package.json' }, { code: `module.export = { "name": "pandages-subpackage", "version": "1.0.0", "description": "", "main": "index.js", "keywords": [], "author": "me!", "license": "ISC" }`, filename: 'packages/nested/package.json' }, { code: `({ "whatever": "cuz its not a package file" })`, filename: 'not-a-package.json' } ], invalid: [ { code: `module.exports = { "nmae": "invalid-package" }`, filename: 'package.json', errors: [ { message: 'Missing required field: name' }, { message: 'Missing required field: version' } ] }, { code: `module.exports = { "verison": "wireless" }`, filename: 'packages/nested/package.json', errors: [ { message: 'Missing required field: name' }, { message: 'Missing required field: version' } ] } ] });