@@ -35,6 +35,53 @@ ruleTester.run('no-boolean-default', rule, {
3535 }
3636 `
3737 } ,
38+ {
39+ filename : 'test.vue' ,
40+ code : `
41+ export default {
42+ props: {
43+ enabled: Boolean
44+ }
45+ }
46+ ` ,
47+ options : [ 'no-default' ]
48+ } ,
49+ {
50+ filename : 'test.vue' ,
51+ code : `
52+ export default {
53+ props: {
54+ enabled: Boolean
55+ }
56+ }
57+ ` ,
58+ options : [ 'default-false' ]
59+ } ,
60+ {
61+ filename : 'test.vue' ,
62+ code : `
63+ const props = {};
64+ export default {
65+ props: {
66+ ...props,
67+ enabled: Boolean
68+ }
69+ }
70+ `
71+ } ,
72+ {
73+ filename : 'test.vue' ,
74+ code : `
75+ const props = {};
76+ export default {
77+ props: {
78+ ...props,
79+ enabled: Boolean
80+ }
81+ }
82+ ` ,
83+ options : [ 'no-default' ]
84+ } ,
3885 {
3986 filename : 'test.vue' ,
4087 code : `
@@ -45,6 +92,21 @@ ruleTester.run('no-boolean-default', rule, {
4592 enabled: Boolean
4693 }
4794 }
95+ ` ,
96+ options : [ 'default-false' ]
97+ } ,
98+ {
99+ filename : 'test.vue' ,
100+ code : `
101+ const data = {};
102+ export default {
103+ props: {
104+ enabled: {
105+ type: Boolean,
106+ ...data
107+ }
108+ }
109+ }
48110 `
49111 } ,
50112 {
@@ -62,6 +124,21 @@ ruleTester.run('no-boolean-default', rule, {
62124 ` ,
63125 options : [ 'no-default' ]
64126 } ,
127+ {
128+ filename : 'test.vue' ,
129+ code : `
130+ const data = {};
131+ export default {
132+ props: {
133+ enabled: {
134+ type: Boolean,
135+ ...data
136+ }
137+ }
138+ }
139+ ` ,
140+ options : [ 'default-false' ]
141+ } ,
65142 {
66143 filename : 'test.vue' ,
67144 code : `
@@ -89,6 +166,30 @@ ruleTester.run('no-boolean-default', rule, {
89166 }
90167 `
91168 } ,
169+ {
170+ filename : 'test.vue' ,
171+ code : `
172+ const data = {};
173+ export default {
174+ props: {
175+ enabled: data
176+ }
177+ }
178+ ` ,
179+ options : [ 'no-default' ]
180+ } ,
181+ {
182+ filename : 'test.vue' ,
183+ code : `
184+ const data = {};
185+ export default {
186+ props: {
187+ enabled: data
188+ }
189+ }
190+ ` ,
191+ options : [ 'default-false' ]
192+ } ,
92193 {
93194 filename : 'test.vue' ,
94195 code : `
@@ -101,6 +202,34 @@ ruleTester.run('no-boolean-default', rule, {
101202 }
102203 }
103204 `
205+ } ,
206+ {
207+ filename : 'test.vue' ,
208+ code : `
209+ const data = {};
210+ export default {
211+ props: {
212+ enabled: {
213+ ...data
214+ }
215+ }
216+ }
217+ ` ,
218+ options : [ 'no-default' ]
219+ } ,
220+ {
221+ filename : 'test.vue' ,
222+ code : `
223+ const data = {};
224+ export default {
225+ props: {
226+ enabled: {
227+ ...data
228+ }
229+ }
230+ }
231+ ` ,
232+ options : [ 'default-false' ]
104233 }
105234 ] ,
106235
@@ -119,7 +248,7 @@ ruleTester.run('no-boolean-default', rule, {
119248 ` ,
120249 options : [ 'default-false' ] ,
121250 errors : [ {
122- message : 'Boolean prop should be defaulted to false.' ,
251+ message : 'Boolean prop should only be defaulted to false.' ,
123252 line : 6
124253 } ]
125254 } ,
@@ -137,7 +266,7 @@ ruleTester.run('no-boolean-default', rule, {
137266 ` ,
138267 options : [ 'default-false' ] ,
139268 errors : [ {
140- message : 'Boolean prop should be defaulted to false.' ,
269+ message : 'Boolean prop should only be defaulted to false.' ,
141270 line : 6
142271 } ]
143272 } ,
@@ -158,6 +287,24 @@ ruleTester.run('no-boolean-default', rule, {
158287 message : 'Boolean prop should not set a default (Vue defaults it to false).' ,
159288 line : 6
160289 } ]
290+ } ,
291+ {
292+ filename : 'test.vue' ,
293+ code : `
294+ export default {
295+ props: {
296+ enabled: {
297+ type: Boolean,
298+ default: true,
299+ }
300+ }
301+ }
302+ ` ,
303+ options : [ 'no-default' ] ,
304+ errors : [ {
305+ message : 'Boolean prop should not set a default (Vue defaults it to false).' ,
306+ line : 6
307+ } ]
161308 }
162309 ]
163310} )
0 commit comments