Skip to content

Commit 653ed1b

Browse files
pderaaijdjtarazona
authored andcommitted
use custom documentation rules
1 parent 03a061f commit 653ed1b

File tree

4 files changed

+25
-9
lines changed

4 files changed

+25
-9
lines changed

lib/loader.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ const recursivelyLoadRulesets = async (ruleset, loadedRulesets, options) => {
133133
console.log(`Found ${data.rules.length} rules in ${ruleset}: ${data.rules.map(x => x.name)}`);
134134
}
135135
// Create and hold the rules
136-
rules.createNewRules(data.rules);
136+
rules.createNewRules(data.rules, data.url);
137137
}
138138

139139
return loadedRulesets;

lib/rules.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use strict';
22

3+
const documentationUrl = 'https://speccy.io/rules/1-rulesets';
34
let activeRules = {};
45
let skipRules = [];
56

@@ -8,14 +9,17 @@ const init = (params = {}) => {
89
skipRules = params.skip || [];
910
};
1011

11-
const createNewRules = rules => {
12-
rules.forEach(rule => createNewRule(rule));
12+
const createNewRules = (rules, rulesetDocumentationUrl) => {
13+
rules.forEach(rule => createNewRule(rule, rulesetDocumentationUrl));
1314
};
1415

15-
const createNewRule = rule => {
16+
const createNewRule = (rule, rulesetDocumentationUrl) => {
1617
if (rule.disabled === true) return;
1718
// @DEPRECATED in v0.9.0, use `disabled: true`
1819
if (rule.enabled === false) return;
20+
21+
if (!rule.url) rule.url = (rulesetDocumentationUrl) ? rulesetDocumentationUrl : documentationUrl;
22+
1923
activeRules[rule.name] = rule;
2024
}
2125

lint.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const formatLintResults = lintResults => {
5858
${colors.yellow + pointer} ${colors.cyan} R: ${rule.name} ${colors.white} D: ${rule.description}
5959
${colors.reset + truncateLongMessages(error.message)}
6060
61-
More information: https://speccy.io/rules/1-rulesets#${rule.name}
61+
More information: ${rule.url}#${rule.name}
6262
`;
6363
});
6464

test/lib/rules.test.js

+16-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,22 @@
22

33
const rules = require('../../lib/rules.js');
44

5+
let activeRule, disabledRule, negativelyEnabledRule;
6+
7+
beforeEach(() => {
8+
activeRule = { name: "active-rule", disabled: false };
9+
disabledRule = { name: "disabled-rule", disabled: true };
10+
negativelyEnabledRule = { name: "negatively-enabled-rule", enabled: false };
11+
});
12+
513
describe('Rules', () => {
614
describe('createNewRule()', () => {
7-
const activeRule = { name: "active-rule", disabled: false };
8-
const disabledRule = { name: "disabled-rule", disabled: true };
9-
const negativelyEnabledRule = { name: "negatively-enabled-rule", enabled: false };
10-
1115
describe('when creating a new rule', () => {
1216
test('accepts an active rule', () => {
1317
rules.init();
1418
rules.createNewRule(activeRule);
1519
expect(rules.getRules().rules).toHaveLength(1);
20+
expect(rules.getRules().rules[0].url).toBe('https://speccy.io/rules/1-rulesets');
1621
});
1722

1823
test('skips a disabled rule', () => {
@@ -27,6 +32,13 @@ describe('Rules', () => {
2732
expect(rules.getRules().rules).toHaveLength(0);
2833
});
2934

35+
test('accepts an rule can override url', () => {
36+
rules.init();
37+
rules.createNewRule(activeRule, 'http://test');
38+
expect(rules.getRules().rules).toHaveLength(1);
39+
expect(rules.getRules().rules[0].url).toBe('http://test');
40+
});
41+
3042
});
3143

3244
describe('when skipping rules', () => {

0 commit comments

Comments
 (0)