Skip to content

Commit c6b4899

Browse files
committed
Extract recommended config generation for testing
1 parent ac58a9a commit c6b4899

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

lib/index.js

+9-5
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,17 @@ let requireIndex = require('requireindex');
1717
// import all rules in lib/rules
1818
module.exports.rules = requireIndex(__dirname + '/rules');
1919

20+
module.exports.generateRecommendedConfig = rules => {
21+
return Object.entries(rules).reduce(
22+
(memo, [name, rule]) =>
23+
rule.meta.docs.recommended ? { ...memo, [name]: 'error' } : memo,
24+
{}
25+
);
26+
};
27+
2028
module.exports.configs = {
2129
recommended: {
2230
plugins: ['jest-dom'],
23-
rules: Object.entries(module.exports.rules).reduce(
24-
(memo, [name, rule]) =>
25-
rule.meta.docs.recommended ? { ...memo, [name]: 'error' } : memo,
26-
{}
27-
),
31+
rules: module.exports.generateRecommendedConfig(module.exports.rules),
2832
},
2933
};

tests/index.test.js

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
const { rules, configs } = require('../lib/index');
1+
const { rules, generateRecommendedConfig, configs } = require('../lib/index');
22

33
it('should have all the rules', () => {
44
expect(rules).toMatchSnapshot();
55
});
66

77
it('should have a recommended config with recommended rules', () => {
8-
for (const [name, rule] of Object.entries(rules)) {
9-
if (rule.meta.docs.recommended) {
10-
expect(configs.recommended.rules).toHaveProperty(name, 'error');
11-
} else {
12-
expect(configs.recommended.rules).not.toHaveProperty(name);
13-
}
14-
}
8+
expect(
9+
generateRecommendedConfig({
10+
good: { meta: { docs: { recommended: true } } },
11+
bad: { meta: { docs: { recommended: false } } },
12+
})
13+
).toEqual({ good: 'error' });
1514
});

0 commit comments

Comments
 (0)