@@ -43,13 +43,6 @@ test('should create a fallback id if not given', async () => {
4343 expect ( label . getAttribute ( 'for' ) ) . toBe ( createdId )
4444} )
4545
46- test ( 'should create a fallback value if not given' , async ( ) => {
47- const wrapper = await mountStringSlot ( MdCheckbox , 'Label' )
48- const createdValue = wrapper . vm . $props . value
49-
50- expect ( createdValue ) . toBe ( 'on' )
51- } )
52-
5346test ( 'should create disabled and required classes' , async ( ) => {
5447 const wrapper = await mountStringSlot ( MdCheckbox , 'Label' , {
5548 propsData : {
@@ -150,7 +143,7 @@ test('should toggle a checked class when checked', async () => {
150143 expect ( checkbox . hasClass ( 'md-checked' ) ) . toBe ( false )
151144} )
152145
153- test ( 'should bind "on" value when no value attribute is given' , async ( ) => {
146+ test ( 'should bind true / false when no value attribute is given' , async ( ) => {
154147 const template = `
155148 <div>
156149 <md-checkbox v-model="model"></md-checkbox>
@@ -168,69 +161,67 @@ test('should bind "on" value when no value attribute is given', async () => {
168161
169162 container . trigger ( 'click' )
170163 expect ( checkbox . vm . isSelected ) . toBe ( true )
171- expect ( wrapper . data ( ) . model ) . toBe ( 'on' )
164+ expect ( wrapper . data ( ) . model ) . toBe ( true )
172165
173166 container . trigger ( 'click' )
174167 expect ( checkbox . vm . isSelected ) . toBe ( false )
175- expect ( wrapper . data ( ) . model ) . toBe ( null )
168+ expect ( wrapper . data ( ) . model ) . toBe ( false )
176169} )
177170
178- test ( 'should toggle string values on model ' , async ( ) => {
171+ test ( 'true-value / false-value should works ' , async ( ) => {
179172 const template = `
180173 <div>
181- <md-checkbox v-model="model" value="1 "></md-checkbox>
174+ <md-checkbox v-model="model" true- value="true" false-value="false "></md-checkbox>
182175 </div>
183176 `
184177 const wrapper = await mountTemplate ( MdCheckbox , template , {
185178 data : {
186- model : '1'
179+ model : null
187180 }
188181 } )
189182 const checkbox = wrapper . find ( MdCheckbox ) [ 0 ]
190183 const container = wrapper . find ( '.md-checkbox-container' ) [ 0 ]
191184
192- expect ( checkbox . vm . isSelected ) . toBe ( true )
193-
194- container . trigger ( 'click' )
195185 expect ( checkbox . vm . isSelected ) . toBe ( false )
196- expect ( wrapper . data ( ) . model ) . toBe ( null )
197186
198187 container . trigger ( 'click' )
199188 expect ( checkbox . vm . isSelected ) . toBe ( true )
200- expect ( wrapper . data ( ) . model ) . toBe ( '1' )
189+ expect ( wrapper . data ( ) . model ) . toBe ( 'true' )
190+
191+ container . trigger ( 'click' )
192+ expect ( checkbox . vm . isSelected ) . toBe ( false )
193+ expect ( wrapper . data ( ) . model ) . toBe ( 'false' )
201194} )
202195
203- test ( 'should toggle boolean model when checkbox do not have a value ' , async ( ) => {
196+ test ( 'should toggle string values on model ' , async ( ) => {
204197 const template = `
205198 <div>
206- <md-checkbox v-model="model"></md-checkbox>
199+ <md-checkbox v-model="model" value="1" ></md-checkbox>
207200 </div>
208201 `
209202 const wrapper = await mountTemplate ( MdCheckbox , template , {
210203 data : {
211- model : false
204+ model : '1'
212205 }
213206 } )
214207 const checkbox = wrapper . find ( MdCheckbox ) [ 0 ]
215208 const container = wrapper . find ( '.md-checkbox-container' ) [ 0 ]
216209
217- await checkbox . vm . $nextTick ( )
210+ expect ( checkbox . vm . isSelected ) . toBe ( true )
218211
212+ container . trigger ( 'click' )
219213 expect ( checkbox . vm . isSelected ) . toBe ( false )
214+ expect ( wrapper . data ( ) . model ) . toBe ( null )
220215
221216 container . trigger ( 'click' )
222217 expect ( checkbox . vm . isSelected ) . toBe ( true )
223- expect ( wrapper . data ( ) . model ) . toBe ( true )
224-
225- container . trigger ( 'click' )
226- expect ( checkbox . vm . isSelected ) . toBe ( false )
227- expect ( wrapper . data ( ) . model ) . toBe ( false )
218+ expect ( wrapper . data ( ) . model ) . toBe ( '1' )
228219} )
229220
230- test ( 'should toggle boolean model when checkbox have true value' , async ( ) => {
221+ test ( 'should toggle boolean model when checkbox do not have a value' , async ( ) => {
231222 const template = `
232223 <div>
233- <md-checkbox v-model="model" :value="true" ></md-checkbox>
224+ <md-checkbox v-model="model"></md-checkbox>
234225 </div>
235226 `
236227 const wrapper = await mountTemplate ( MdCheckbox , template , {
@@ -254,10 +245,10 @@ test('should toggle boolean model when checkbox have true value', async () => {
254245 expect ( wrapper . data ( ) . model ) . toBe ( false )
255246} )
256247
257- test ( 'should toggle boolean model when checkbox have false value' , async ( ) => {
248+ test ( 'should toggle null / value while checkbox has been set value' , async ( ) => {
258249 const template = `
259250 <div>
260- <md-checkbox v-model="model" : value="false "></md-checkbox>
251+ <md-checkbox v-model="model" value="val "></md-checkbox>
261252 </div>
262253 `
263254 const wrapper = await mountTemplate ( MdCheckbox , template , {
@@ -270,13 +261,13 @@ test('should toggle boolean model when checkbox have false value', async () => {
270261
271262 await checkbox . vm . $nextTick ( )
272263
273- expect ( checkbox . vm . isSelected ) . toBe ( true )
274-
275- container . trigger ( 'click' )
276264 expect ( checkbox . vm . isSelected ) . toBe ( false )
277- expect ( wrapper . data ( ) . model ) . toBe ( true )
278265
279266 container . trigger ( 'click' )
280267 expect ( checkbox . vm . isSelected ) . toBe ( true )
281- expect ( wrapper . data ( ) . model ) . toBe ( false )
268+ expect ( wrapper . data ( ) . model ) . toBe ( 'val' )
269+
270+ container . trigger ( 'click' )
271+ expect ( checkbox . vm . isSelected ) . toBe ( false )
272+ expect ( wrapper . data ( ) . model ) . toBe ( null )
282273} )
0 commit comments