/
prefer-no-devDependencies.test.js
49 lines (37 loc) · 1.62 KB
/
prefer-no-devDependencies.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const ruleModule = require('./../../../src/rules/prefer-no-devDependencies');
const property = require('../../../src/validators/property');
const {lint, ruleType} = ruleModule;
jest.mock('../../../src/validators/property');
const nodeName = 'devDependencies';
describe('prefer-no-devDependencies Unit Tests', () => {
describe('a rule type value should be exported', () => {
test('it should equal "optionalObject"', () => {
expect(ruleType).toStrictEqual('optionalObject');
});
});
describe('when package.json has devDependencies node', () => {
test('LintIssue object should be returned', () => {
property.exists.mockReturnValue(true);
const packageJsonData = {
devDependencies: 'dummy-value'
};
const response = lint(packageJsonData, 'error');
expect(response.lintId).toStrictEqual('prefer-no-devDependencies');
expect(response.severity).toStrictEqual('error');
expect(response.node).toStrictEqual(nodeName);
expect(response.lintMessage).toStrictEqual('devDependencies should not be defined');
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).toBe(true);
expect(property.exists).toHaveBeenCalledTimes(1);
expect(property.exists).toHaveBeenCalledWith(packageJsonData, nodeName);
});
});
});