File tree Expand file tree Collapse file tree 3 files changed +31
-1
lines changed
packages/core/src/ruleset Expand file tree Collapse file tree 3 files changed +31
-1
lines changed Original file line number Diff line number Diff line change
1
+ import { RulesetDefinition } from '@stoplight/spectral-core' ;
2
+ import shared from './shared' ;
3
+ import { truthy } from '@stoplight/spectral-functions/src' ;
4
+
5
+ export default {
6
+ extends : [ [ shared , 'off' ] ] ,
7
+ rules : {
8
+ 'overridable-rule' : {
9
+ given : '$.foo' ,
10
+ then : {
11
+ function : truthy ,
12
+ } ,
13
+ } ,
14
+ } ,
15
+ } as RulesetDefinition ;
Original file line number Diff line number Diff line change @@ -68,6 +68,18 @@ describe('Ruleset', () => {
68
68
expect ( getEnabledRules ( rules ) ) . toEqual ( [ 'overridable-rule' ] ) ;
69
69
} ) ;
70
70
71
+ it ( 'given ruleset with extends set to off, should disable all rules but explicitly redeclared' , async ( ) => {
72
+ const { rules } = await loadRuleset ( import ( './__fixtures__/severity/off-redeclared' ) ) ;
73
+ expect ( Object . keys ( rules ) ) . toEqual ( [
74
+ 'description-matches-stoplight' ,
75
+ 'title-matches-stoplight' ,
76
+ 'contact-name-matches-stoplight' ,
77
+ 'overridable-rule' ,
78
+ ] ) ;
79
+
80
+ expect ( getEnabledRules ( rules ) ) . toEqual ( [ 'overridable-rule' ] ) ;
81
+ } ) ;
82
+
71
83
it ( 'given nested extends with severity set to off' , async ( ) => {
72
84
const { rules } = await loadRuleset ( import ( './__fixtures__/severity/off-proxy' ) ) ;
73
85
expect ( Object . keys ( rules ) ) . toEqual ( [
Original file line number Diff line number Diff line change @@ -39,7 +39,10 @@ export function mergeRule(
39
39
break ;
40
40
case 'object' :
41
41
if ( existingRule !== void 0 ) {
42
- Object . assign ( existingRule , rule , { owner : existingRule . owner } ) ;
42
+ Object . assign ( existingRule , rule , {
43
+ enabled : true ,
44
+ owner : existingRule . owner ,
45
+ } ) ;
43
46
} else {
44
47
assertValidRule ( rule ) ;
45
48
return new Rule ( name , rule , ruleset ) ;
You can’t perform that action at this time.
0 commit comments