/
canonical.js
40 lines (32 loc) · 983 Bytes
/
canonical.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
const test = require('ava');
const {ESLint} = require('eslint');
const configurations = [
'ava',
'eslintrc',
'flowtype',
'jest',
'lodash',
'mocha',
'node',
'react',
];
for (const configuration of configurations) {
// eslint-disable-next-line import/no-dynamic-require -- Safe as for testing
const config = require('../../' + configuration);
const rulesDefinition = new ESLint({
overrideConfigFile: './' + configuration + '.js',
useEslintrc: false,
})
.getRules();
const ruleNames = Object.keys(config.rules || []);
for (const ruleName of ruleNames) {
test('plugin "' + configuration + '" has "' + ruleName + '" rule', (tst) => {
const pluginHasRule = rulesDefinition.has(ruleName);
tst.true(pluginHasRule);
});
}
test('plugin "' + configuration + '" does not have "does-not-exist" rule', (tst) => {
const pluginHasRule = rulesDefinition.has('does-not-exist');
tst.true(pluginHasRule === false);
});
}