diff --git a/src/rules/prefer-alphabetical-bundledDependencies.js b/src/rules/prefer-alphabetical-bundledDependencies.js index e96d2355..39c92639 100755 --- a/src/rules/prefer-alphabetical-bundledDependencies.js +++ b/src/rules/prefer-alphabetical-bundledDependencies.js @@ -1,4 +1,5 @@ const {isInAlphabeticalOrder} = require('./../validators/alphabetical-sort'); +const {exists} = require('../validators/property'); const LintIssue = require('./../LintIssue'); const lintId = 'prefer-alphabetical-bundledDependencies'; @@ -7,6 +8,10 @@ const message = 'Your bundledDependencies are not in alphabetical order.'; const ruleType = 'standard'; const lint = (packageJsonData, severity) => { + if (!exists(packageJsonData, nodeName)) { + return true; + } + const result = isInAlphabeticalOrder(packageJsonData, nodeName); if (!result.status) { @@ -21,5 +26,7 @@ const lint = (packageJsonData, severity) => { return true; }; -module.exports.lint = lint; -module.exports.ruleType = ruleType; +module.exports = { + lint, + ruleType +}; diff --git a/src/rules/prefer-alphabetical-dependencies.js b/src/rules/prefer-alphabetical-dependencies.js index 34cde9f6..d4e1df89 100755 --- a/src/rules/prefer-alphabetical-dependencies.js +++ b/src/rules/prefer-alphabetical-dependencies.js @@ -1,4 +1,5 @@ const {isInAlphabeticalOrder} = require('./../validators/alphabetical-sort'); +const {exists} = require('../validators/property'); const LintIssue = require('./../LintIssue'); const lintId = 'prefer-alphabetical-dependencies'; @@ -7,6 +8,10 @@ const message = 'Your dependencies are not in alphabetical order.'; const ruleType = 'standard'; const lint = (packageJsonData, severity) => { + if (!exists(packageJsonData, nodeName)) { + return true; + } + const result = isInAlphabeticalOrder(packageJsonData, nodeName); if (!result.status) { @@ -21,5 +26,7 @@ const lint = (packageJsonData, severity) => { return true; }; -module.exports.lint = lint; -module.exports.ruleType = ruleType; +module.exports = { + lint, + ruleType +}; diff --git a/src/rules/prefer-alphabetical-devDependencies.js b/src/rules/prefer-alphabetical-devDependencies.js index ec59f2a3..5cb098bf 100755 --- a/src/rules/prefer-alphabetical-devDependencies.js +++ b/src/rules/prefer-alphabetical-devDependencies.js @@ -1,4 +1,5 @@ const {isInAlphabeticalOrder} = require('./../validators/alphabetical-sort'); +const {exists} = require('../validators/property'); const LintIssue = require('./../LintIssue'); const lintId = 'prefer-alphabetical-devDependencies'; @@ -7,6 +8,10 @@ const message = 'Your devDependencies are not in alphabetical order.'; const ruleType = 'standard'; const lint = (packageJsonData, severity) => { + if (!exists(packageJsonData, nodeName)) { + return true; + } + const result = isInAlphabeticalOrder(packageJsonData, nodeName); if (!result.status) { @@ -21,5 +26,7 @@ const lint = (packageJsonData, severity) => { return true; }; -module.exports.lint = lint; -module.exports.ruleType = ruleType; +module.exports = { + lint, + ruleType +}; diff --git a/src/rules/prefer-alphabetical-optionalDependencies.js b/src/rules/prefer-alphabetical-optionalDependencies.js index 01848c32..3f8da656 100755 --- a/src/rules/prefer-alphabetical-optionalDependencies.js +++ b/src/rules/prefer-alphabetical-optionalDependencies.js @@ -1,4 +1,5 @@ const {isInAlphabeticalOrder} = require('./../validators/alphabetical-sort'); +const {exists} = require('../validators/property'); const LintIssue = require('./../LintIssue'); const lintId = 'prefer-alphabetical-optionalDependencies'; @@ -7,6 +8,10 @@ const message = 'Your optionalDependencies are not in alphabetical order.'; const ruleType = 'standard'; const lint = (packageJsonData, severity) => { + if (!exists(packageJsonData, nodeName)) { + return true; + } + const result = isInAlphabeticalOrder(packageJsonData, nodeName); if (!result.status) { @@ -21,5 +26,7 @@ const lint = (packageJsonData, severity) => { return true; }; -module.exports.lint = lint; -module.exports.ruleType = ruleType; +module.exports = { + lint, + ruleType +}; diff --git a/src/rules/prefer-alphabetical-peerDependencies.js b/src/rules/prefer-alphabetical-peerDependencies.js index 58f0ddf0..1193b2ed 100755 --- a/src/rules/prefer-alphabetical-peerDependencies.js +++ b/src/rules/prefer-alphabetical-peerDependencies.js @@ -1,4 +1,5 @@ const {isInAlphabeticalOrder} = require('./../validators/alphabetical-sort'); +const {exists} = require('../validators/property'); const LintIssue = require('./../LintIssue'); const lintId = 'prefer-alphabetical-peerDependencies'; @@ -7,6 +8,10 @@ const message = 'Your peerDependencies are not in alphabetical order.'; const ruleType = 'standard'; const lint = (packageJsonData, severity) => { + if (!exists(packageJsonData, nodeName)) { + return true; + } + const result = isInAlphabeticalOrder(packageJsonData, nodeName); if (!result.status) { @@ -21,5 +26,7 @@ const lint = (packageJsonData, severity) => { return true; }; -module.exports.lint = lint; -module.exports.ruleType = ruleType; +module.exports = { + lint, + ruleType +}; diff --git a/src/rules/prefer-no-engineStrict.js b/src/rules/prefer-no-engineStrict.js index 4343db10..7de5954b 100644 --- a/src/rules/prefer-no-engineStrict.js +++ b/src/rules/prefer-no-engineStrict.js @@ -1,3 +1,4 @@ +const {exists} = require('../validators/property'); const LintIssue = require('./../LintIssue'); const lintId = 'prefer-no-engineStrict'; @@ -6,12 +7,14 @@ const message = 'engineStrict was deprecated with npm v3.0.0. Please remove it f const ruleType = 'standard'; const lint = (packageJsonData, severity) => { - if (packageJsonData.hasOwnProperty(nodeName)) { + if (exists(packageJsonData, nodeName)) { return new LintIssue(lintId, severity, nodeName, message); } return true; }; -module.exports.lint = lint; -module.exports.ruleType = ruleType; +module.exports = { + lint, + ruleType +}; diff --git a/src/validators/alphabetical-sort.js b/src/validators/alphabetical-sort.js index 37c5b9e8..5944db8c 100755 --- a/src/validators/alphabetical-sort.js +++ b/src/validators/alphabetical-sort.js @@ -7,16 +7,6 @@ const increment = 1; * @return {object} Object containing the status and the dependencies that are out of order, if applicable */ const isInAlphabeticalOrder = (packageJsonData, nodeName) => { - if (!packageJsonData.hasOwnProperty(nodeName)) { - return { - status: true, - data: { - invalidNode: null, - validNode: null - } - }; - } - let isValid = true; let data = { invalidNode: null, @@ -42,4 +32,6 @@ const isInAlphabeticalOrder = (packageJsonData, nodeName) => { }; }; -module.exports.isInAlphabeticalOrder = isInAlphabeticalOrder; +module.exports = { + isInAlphabeticalOrder +}; diff --git a/test/unit/rules/prefer-alphabetical-bundledDependencies.test.js b/test/unit/rules/prefer-alphabetical-bundledDependencies.test.js index 54569710..b5937022 100755 --- a/test/unit/rules/prefer-alphabetical-bundledDependencies.test.js +++ b/test/unit/rules/prefer-alphabetical-bundledDependencies.test.js @@ -1,7 +1,14 @@ const ruleModule = require('./../../../src/rules/prefer-alphabetical-bundledDependencies'); +const alphabeticalSort = require('../../../src/validators/alphabetical-sort'); +const property = require('../../../src/validators/property'); const {lint, ruleType} = ruleModule; +jest.mock('../../../src/validators/alphabetical-sort'); +jest.mock('../../../src/validators/property'); + +const nodeName = 'bundledDependencies'; + describe('prefer-alphabetical-bundledDependencies Unit Tests', () => { describe('a rule type value should be exported', () => { test('it should equal "standard"', () => { @@ -11,6 +18,15 @@ describe('prefer-alphabetical-bundledDependencies Unit Tests', () => { describe('when package.json has node with an invalid order', () => { test('LintIssue object should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: false, + data: { + invalidNode: 'semver', + validNode: 'chalk' + } + }); + property.exists.mockReturnValue(true); + const packageJsonData = { bundledDependencies: { semver: '^5.3.0', @@ -26,11 +42,22 @@ describe('prefer-alphabetical-bundledDependencies Unit Tests', () => { expect(response.lintMessage).toStrictEqual( 'Your bundledDependencies are not in alphabetical order. Please move semver after chalk.' ); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json has node with a valid order', () => { - test('LintIssue object should be returned', () => { + test('true should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: true, + data: {} + }); + property.exists.mockReturnValue(true); + const packageJsonData = { bundledDependencies: { chalk: '^1.1.3', @@ -41,15 +68,25 @@ describe('prefer-alphabetical-bundledDependencies Unit Tests', () => { const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json does not have node', () => { test('true should be returned', () => { + property.exists.mockReturnValue(false); + const packageJsonData = {}; const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); }); diff --git a/test/unit/rules/prefer-alphabetical-dependencies.test.js b/test/unit/rules/prefer-alphabetical-dependencies.test.js index d4ec12ab..c936f9e4 100755 --- a/test/unit/rules/prefer-alphabetical-dependencies.test.js +++ b/test/unit/rules/prefer-alphabetical-dependencies.test.js @@ -1,7 +1,14 @@ const ruleModule = require('./../../../src/rules/prefer-alphabetical-dependencies'); +const alphabeticalSort = require('../../../src/validators/alphabetical-sort'); +const property = require('../../../src/validators/property'); const {lint, ruleType} = ruleModule; +jest.mock('../../../src/validators/alphabetical-sort'); +jest.mock('../../../src/validators/property'); + +const nodeName = 'dependencies'; + describe('prefer-alphabetical-dependencies Unit Tests', () => { describe('a rule type value should be exported', () => { test('it should equal "standard"', () => { @@ -11,6 +18,15 @@ describe('prefer-alphabetical-dependencies Unit Tests', () => { describe('when package.json has node with an invalid order', () => { test('LintIssue object should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: false, + data: { + invalidNode: 'semver', + validNode: 'chalk' + } + }); + property.exists.mockReturnValue(true); + const packageJsonData = { dependencies: { semver: '^5.3.0', @@ -26,11 +42,22 @@ describe('prefer-alphabetical-dependencies Unit Tests', () => { expect(response.lintMessage).toStrictEqual( 'Your dependencies are not in alphabetical order. Please move semver after chalk.' ); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json has node with a valid order', () => { - test('LintIssue object should be returned', () => { + test('true should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: true, + data: {} + }); + property.exists.mockReturnValue(true); + const packageJsonData = { dependencies: { chalk: '^1.1.3', @@ -41,15 +68,25 @@ describe('prefer-alphabetical-dependencies Unit Tests', () => { const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json does not have node', () => { test('true should be returned', () => { + property.exists.mockReturnValue(false); + const packageJsonData = {}; const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); }); diff --git a/test/unit/rules/prefer-alphabetical-devDependencies.test.js b/test/unit/rules/prefer-alphabetical-devDependencies.test.js index 8d7c8e27..c3909443 100755 --- a/test/unit/rules/prefer-alphabetical-devDependencies.test.js +++ b/test/unit/rules/prefer-alphabetical-devDependencies.test.js @@ -1,7 +1,14 @@ const ruleModule = require('./../../../src/rules/prefer-alphabetical-devDependencies'); +const alphabeticalSort = require('../../../src/validators/alphabetical-sort'); +const property = require('../../../src/validators/property'); const {lint, ruleType} = ruleModule; +jest.mock('../../../src/validators/alphabetical-sort'); +jest.mock('../../../src/validators/property'); + +const nodeName = 'devDependencies'; + describe('prefer-alphabetical-devDependencies Unit Tests', () => { describe('a rule type value should be exported', () => { test('it should equal "standard"', () => { @@ -11,6 +18,15 @@ describe('prefer-alphabetical-devDependencies Unit Tests', () => { describe('when package.json has node with an invalid order', () => { test('LintIssue object should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: false, + data: { + invalidNode: 'semver', + validNode: 'chalk' + } + }); + property.exists.mockReturnValue(true); + const packageJsonData = { devDependencies: { semver: '^5.3.0', @@ -26,11 +42,22 @@ describe('prefer-alphabetical-devDependencies Unit Tests', () => { expect(response.lintMessage).toStrictEqual( 'Your devDependencies are not in alphabetical order. Please move semver after chalk.' ); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json has node with a valid order', () => { - test('LintIssue object should be returned', () => { + test('true should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: true, + data: {} + }); + property.exists.mockReturnValue(true); + const packageJsonData = { devDependencies: { chalk: '^1.1.3', @@ -41,15 +68,25 @@ describe('prefer-alphabetical-devDependencies Unit Tests', () => { const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json does not have node', () => { test('true should be returned', () => { + property.exists.mockReturnValue(false); + const packageJsonData = {}; const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); }); diff --git a/test/unit/rules/prefer-alphabetical-optionalDependencies.test.js b/test/unit/rules/prefer-alphabetical-optionalDependencies.test.js index 1fd8f874..15448c36 100755 --- a/test/unit/rules/prefer-alphabetical-optionalDependencies.test.js +++ b/test/unit/rules/prefer-alphabetical-optionalDependencies.test.js @@ -1,7 +1,14 @@ const ruleModule = require('./../../../src/rules/prefer-alphabetical-optionalDependencies'); +const alphabeticalSort = require('../../../src/validators/alphabetical-sort'); +const property = require('../../../src/validators/property'); const {lint, ruleType} = ruleModule; +jest.mock('../../../src/validators/alphabetical-sort'); +jest.mock('../../../src/validators/property'); + +const nodeName = 'optionalDependencies'; + describe('prefer-alphabetical-optionalDependencies Unit Tests', () => { describe('a rule type value should be exported', () => { test('it should equal "standard"', () => { @@ -11,6 +18,15 @@ describe('prefer-alphabetical-optionalDependencies Unit Tests', () => { describe('when package.json has node with an invalid order', () => { test('LintIssue object should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: false, + data: { + invalidNode: 'semver', + validNode: 'chalk' + } + }); + property.exists.mockReturnValue(true); + const packageJsonData = { optionalDependencies: { semver: '^5.3.0', @@ -26,11 +42,22 @@ describe('prefer-alphabetical-optionalDependencies Unit Tests', () => { expect(response.lintMessage).toStrictEqual( 'Your optionalDependencies are not in alphabetical order. Please move semver after chalk.' ); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json has node with a valid order', () => { - test('LintIssue object should be returned', () => { + test('true should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: true, + data: {} + }); + property.exists.mockReturnValue(true); + const packageJsonData = { optionalDependencies: { chalk: '^1.1.3', @@ -41,15 +68,25 @@ describe('prefer-alphabetical-optionalDependencies Unit Tests', () => { const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json does not have node', () => { test('true should be returned', () => { + property.exists.mockReturnValue(false); + const packageJsonData = {}; const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); }); diff --git a/test/unit/rules/prefer-alphabetical-peerDependencies.test.js b/test/unit/rules/prefer-alphabetical-peerDependencies.test.js index 46944763..f5ae66e3 100755 --- a/test/unit/rules/prefer-alphabetical-peerDependencies.test.js +++ b/test/unit/rules/prefer-alphabetical-peerDependencies.test.js @@ -1,7 +1,14 @@ const ruleModule = require('./../../../src/rules/prefer-alphabetical-peerDependencies'); +const alphabeticalSort = require('../../../src/validators/alphabetical-sort'); +const property = require('../../../src/validators/property'); const {lint, ruleType} = ruleModule; +jest.mock('../../../src/validators/alphabetical-sort'); +jest.mock('../../../src/validators/property'); + +const nodeName = 'peerDependencies'; + describe('prefer-alphabetical-peerDependencies Unit Tests', () => { describe('a rule type value should be exported', () => { test('it should equal "standard"', () => { @@ -11,6 +18,15 @@ describe('prefer-alphabetical-peerDependencies Unit Tests', () => { describe('when package.json has node with an invalid order', () => { test('LintIssue object should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: false, + data: { + invalidNode: 'semver', + validNode: 'chalk' + } + }); + property.exists.mockReturnValue(true); + const packageJsonData = { peerDependencies: { semver: '^5.3.0', @@ -26,11 +42,22 @@ describe('prefer-alphabetical-peerDependencies Unit Tests', () => { expect(response.lintMessage).toStrictEqual( 'Your peerDependencies are not in alphabetical order. Please move semver after chalk.' ); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json has node with a valid order', () => { - test('LintIssue object should be returned', () => { + test('true should be returned', () => { + alphabeticalSort.isInAlphabeticalOrder.mockReturnValue({ + status: true, + data: {} + }); + property.exists.mockReturnValue(true); + const packageJsonData = { peerDependencies: { chalk: '^1.1.3', @@ -41,15 +68,25 @@ describe('prefer-alphabetical-peerDependencies Unit Tests', () => { const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledTimes(1); + expect(alphabeticalSort.isInAlphabeticalOrder).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json does not have node', () => { test('true should be returned', () => { + property.exists.mockReturnValue(false); + const packageJsonData = {}; const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); }); diff --git a/test/unit/rules/prefer-no-engineStrict.test.js b/test/unit/rules/prefer-no-engineStrict.test.js index 912dfb58..ba716122 100755 --- a/test/unit/rules/prefer-no-engineStrict.test.js +++ b/test/unit/rules/prefer-no-engineStrict.test.js @@ -1,7 +1,12 @@ const ruleModule = require('./../../../src/rules/prefer-no-engineStrict'); +const property = require('../../../src/validators/property'); const {lint, ruleType} = ruleModule; +jest.mock('../../../src/validators/property'); + +const nodeName = 'engineStrict'; + describe('prefer-no-engineStrict Unit Tests', () => { describe('a rule type value should be exported', () => { test('it should equal "standard"', () => { @@ -11,6 +16,8 @@ describe('prefer-no-engineStrict Unit Tests', () => { describe('when package.json has engineStrict node', () => { test('LintIssue object should be returned', () => { + property.exists.mockReturnValue(true); + const packageJsonData = { engineStrict: 'dummy-value' }; @@ -18,19 +25,27 @@ describe('prefer-no-engineStrict Unit Tests', () => { expect(response.lintId).toStrictEqual('prefer-no-engineStrict'); expect(response.severity).toStrictEqual('error'); - expect(response.node).toStrictEqual('engineStrict'); + expect(response.node).toStrictEqual(nodeName); expect(response.lintMessage).toStrictEqual( 'engineStrict was deprecated with npm v3.0.0. Please remove it from your package.json file' ); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); describe('when package.json does not have node', () => { test('true should be returned', () => { + property.exists.mockReturnValue(false); + const packageJsonData = {}; const response = lint(packageJsonData, 'error'); expect(response).toBeTruthy(); + + expect(property.exists).toHaveBeenCalledTimes(1); + expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName); }); }); }); diff --git a/test/unit/validators/alphabetical-sort.test.js b/test/unit/validators/alphabetical-sort.test.js index 6d023bd2..0393eb28 100755 --- a/test/unit/validators/alphabetical-sort.test.js +++ b/test/unit/validators/alphabetical-sort.test.js @@ -2,19 +2,6 @@ const alphabeticalSort = require('./../../../src/validators/alphabetical-sort'); describe('alphabetical-sort Unit Tests', () => { describe('isInAlphabeticalOrder method', () => { - describe('when the node does not exist in the package.json file', () => { - test('true should be returned', () => { - const packageJson = { - name: 'awesome-module' - }; - const response = alphabeticalSort.isInAlphabeticalOrder(packageJson, 'devDependencies'); - - expect(response.status).toBeTruthy(); - expect(response.data.invalidNode).toBeNull(); - expect(response.data.validNode).toBeNull(); - }); - }); - describe('when the node exists in the package.json file and dependencies are in alpahbetical order', () => { test('true should be returned', () => { const packageJson = {