@@ -53,10 +53,81 @@ test('positive on stub message and opts', async t => {
53
53
t . true ( actual . valid ) ;
54
54
} ) ;
55
55
56
- test ( 'should throw for invalid rule names' , async t => {
56
+ test ( 'throws for invalid rule names' , async t => {
57
57
const error = await t . throws (
58
58
lint ( 'foo' , { foo : [ 2 , 'always' ] , bar : [ 1 , 'never' ] } )
59
59
) ;
60
60
61
- t . is ( error . message . indexOf ( 'Found invalid rule names: foo, bar' ) , 0 ) ;
61
+ t . is ( error . message . indexOf ( 'Found missing rule names: foo, bar' ) , 0 ) ;
62
+ } ) ;
63
+
64
+ test ( 'throws for invalid rule config' , async t => {
65
+ const error = await t . throws (
66
+ lint ( 'type(scope): foo' , {
67
+ 'type-enum' : 1 ,
68
+ 'scope-enum' : { 0 : 2 , 1 : 'never' , 2 : [ 'foo' ] , length : 3 }
69
+ } )
70
+ ) ;
71
+
72
+ t . true ( error . message . indexOf ( 'type-enum must be array' ) > - 1 ) ;
73
+ t . true ( error . message . indexOf ( 'scope-enum must be array' ) > - 1 ) ;
74
+ } ) ;
75
+
76
+ test ( 'throws for rule with invalid length' , async t => {
77
+ const error = await t . throws (
78
+ lint ( 'type(scope): foo' , { 'type-enum' : [ ] , 'scope-enum' : [ 1 , 2 , 3 , 4 ] } )
79
+ ) ;
80
+
81
+ t . true ( error . message . indexOf ( 'type-enum must be 2 or 3 items long' ) > - 1 ) ;
82
+ t . true ( error . message . indexOf ( 'scope-enum must be 2 or 3 items long' ) > - 1 ) ;
83
+ } ) ;
84
+
85
+ test ( 'throws for rule with invalid level' , async t => {
86
+ const error = await t . throws (
87
+ lint ( 'type(scope): foo' , {
88
+ 'type-enum' : [ '2' , 'always' ] ,
89
+ 'header-max-length' : [ { } , 'always' ]
90
+ } )
91
+ ) ;
92
+
93
+ t . true ( error . message . indexOf ( 'rule type-enum must be number' ) > - 1 ) ;
94
+ t . true ( error . message . indexOf ( 'rule type-enum must be number' ) > - 1 ) ;
95
+ } ) ;
96
+
97
+ test ( 'throws for rule with out of range level' , async t => {
98
+ const error = await t . throws (
99
+ lint ( 'type(scope): foo' , {
100
+ 'type-enum' : [ - 1 , 'always' ] ,
101
+ 'header-max-length' : [ 3 , 'always' ]
102
+ } )
103
+ ) ;
104
+
105
+ t . true ( error . message . indexOf ( 'rule type-enum must be between 0 and 2' ) > - 1 ) ;
106
+ t . true ( error . message . indexOf ( 'rule type-enum must be between 0 and 2' ) > - 1 ) ;
107
+ } ) ;
108
+
109
+ test ( 'throws for rule with invalid condition' , async t => {
110
+ const error = await t . throws (
111
+ lint ( 'type(scope): foo' , {
112
+ 'type-enum' : [ 1 , 2 ] ,
113
+ 'header-max-length' : [ 1 , { } ]
114
+ } )
115
+ ) ;
116
+
117
+ t . true ( error . message . indexOf ( 'type-enum must be string' ) > - 1 ) ;
118
+ t . true ( error . message . indexOf ( 'header-max-length must be string' ) > - 1 ) ;
119
+ } ) ;
120
+
121
+ test ( 'throws for rule with out of range condition' , async t => {
122
+ const error = await t . throws (
123
+ lint ( 'type(scope): foo' , {
124
+ 'type-enum' : [ 1 , 'foo' ] ,
125
+ 'header-max-length' : [ 1 , 'bar' ]
126
+ } )
127
+ ) ;
128
+
129
+ t . true ( error . message . indexOf ( 'type-enum must be "always" or "never"' ) > - 1 ) ;
130
+ t . true (
131
+ error . message . indexOf ( 'header-max-length must be "always" or "never"' ) > - 1
132
+ ) ;
62
133
} ) ;
0 commit comments