Skip to content

Commit 92d96f4

Browse files
committed
fix: use v8 compatible test
1 parent e86ac49 commit 92d96f4

1 file changed

Lines changed: 27 additions & 22 deletions

File tree

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
/* eslint-disable import/no-dynamic-require */
2+
13
const test = require('ava');
2-
const CLIEngine = require('eslint').CLIEngine;
4+
const {builtinRules} = require('eslint/use-at-your-own-risk');
35

4-
const configurations = [
6+
const configurationNames = [
57
'ava',
68
'eslintrc',
79
'flowtype',
@@ -12,29 +14,32 @@ const configurations = [
1214
'react',
1315
];
1416

15-
for (const configuration of configurations) {
16-
// eslint-disable-next-line import/no-dynamic-require -- Safe as for testing
17-
const config = require('../../' + configuration);
17+
const getPluginRuleNames = (pluginName) => {
18+
const dependencyName = pluginName === '@babel' ? '@babel/eslint-plugin' : 'eslint-plugin-' + pluginName;
1819

19-
const rulesDefinition = new CLIEngine({
20-
configFile: './' + configuration + '.js',
21-
useEslintrc: false,
22-
})
23-
.getRules();
20+
return Object.keys(require(dependencyName).rules).map((ruleName) => {
21+
return pluginName + '/' + ruleName;
22+
});
23+
};
2424

25-
const ruleNames = Object.keys(config.rules || []);
25+
const main = async () => {
26+
for (const configurationName of configurationNames) {
27+
const configuration = require('../../' + configurationName);
2628

27-
for (const ruleName of ruleNames) {
28-
test('plugin "' + configuration + '" has "' + ruleName + '" rule', (tst) => {
29-
const pluginHasRule = rulesDefinition.has(ruleName);
29+
const supportedRuleNames = [
30+
...builtinRules.keys(),
31+
];
3032

31-
tst.true(pluginHasRule);
32-
});
33-
}
33+
for (const pluginName of configuration.plugins) {
34+
supportedRuleNames.push(...getPluginRuleNames(pluginName));
35+
}
3436

35-
test('plugin "' + configuration + '" does not have "does-not-exist" rule', (tst) => {
36-
const pluginHasRule = rulesDefinition.has('does-not-exist');
37+
for (const configurationRuleName of Object.keys(configuration.rules)) {
38+
test('"' + configurationName + '" configuration has "' + configurationRuleName + '" rule', (t) => {
39+
t.true(supportedRuleNames.includes(configurationRuleName));
40+
});
41+
}
42+
}
43+
};
3744

38-
tst.true(pluginHasRule === false);
39-
});
40-
}
45+
main();

0 commit comments

Comments
 (0)