Skip to content

Commit b63fc6c

Browse files
VdustRmarcosmoura
authored andcommitted
test(MdSwitch): fix test script (#1739)
1 parent 3928bdf commit b63fc6c

File tree

2 files changed

+28
-37
lines changed

2 files changed

+28
-37
lines changed

src/components/MdSwitch/MdSwitch.test.js

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -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(MdSwitch, 'Label')
48-
const createdValue = wrapper.vm.$props.value
49-
50-
expect(createdValue).toBe('on')
51-
})
52-
5346
test('should create disabled and required classes', async () => {
5447
const wrapper = await mountStringSlot(MdSwitch, 'Label', {
5548
propsData: {
@@ -150,7 +143,7 @@ test('should toggle a checked class when checked', async () => {
150143
expect(toggle.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-switch v-model="model"></md-switch>
@@ -168,69 +161,67 @@ test('should bind "on" value when no value attribute is given', async () => {
168161

169162
container.trigger('click')
170163
expect(toggle.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(toggle.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-switch v-model="model" value="1"></md-switch>
174+
<md-switch v-model="model" true-value="true" false-value="false"></md-switch>
182175
</div>
183176
`
184177
const wrapper = await mountTemplate(MdSwitch, template, {
185178
data: {
186-
model: '1'
179+
model: null
187180
}
188181
})
189182
const toggle = wrapper.find(MdSwitch)[0]
190183
const container = wrapper.find('.md-switch-container')[0]
191184

192-
expect(toggle.vm.isSelected).toBe(true)
193-
194-
container.trigger('click')
195185
expect(toggle.vm.isSelected).toBe(false)
196-
expect(wrapper.data().model).toBe(null)
197186

198187
container.trigger('click')
199188
expect(toggle.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(toggle.vm.isSelected).toBe(false)
193+
expect(wrapper.data().model).toBe('false')
201194
})
202195

203-
test('should toggle boolean model when switch do not have a value', async () => {
196+
test('should toggle string values on model', async () => {
204197
const template = `
205198
<div>
206-
<md-switch v-model="model"></md-switch>
199+
<md-switch v-model="model" value="1"></md-switch>
207200
</div>
208201
`
209202
const wrapper = await mountTemplate(MdSwitch, template, {
210203
data: {
211-
model: false
204+
model: '1'
212205
}
213206
})
214207
const toggle = wrapper.find(MdSwitch)[0]
215208
const container = wrapper.find('.md-switch-container')[0]
216209

217-
await toggle.vm.$nextTick()
210+
expect(toggle.vm.isSelected).toBe(true)
218211

212+
container.trigger('click')
219213
expect(toggle.vm.isSelected).toBe(false)
214+
expect(wrapper.data().model).toBe(null)
220215

221216
container.trigger('click')
222217
expect(toggle.vm.isSelected).toBe(true)
223-
expect(wrapper.data().model).toBe(true)
224-
225-
container.trigger('click')
226-
expect(toggle.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 switch have true value', async () => {
221+
test('should toggle boolean model when switch do not have a value', async () => {
231222
const template = `
232223
<div>
233-
<md-switch v-model="model" :value="true"></md-switch>
224+
<md-switch v-model="model"></md-switch>
234225
</div>
235226
`
236227
const wrapper = await mountTemplate(MdSwitch, template, {
@@ -254,10 +245,10 @@ test('should toggle boolean model when switch have true value', async () => {
254245
expect(wrapper.data().model).toBe(false)
255246
})
256247

257-
test('should toggle boolean model when switch have false value', async () => {
248+
test('should toggle null / value while checkbox has been set value', async () => {
258249
const template = `
259250
<div>
260-
<md-switch v-model="model" :value="false"></md-switch>
251+
<md-switch v-model="model" value="val"></md-switch>
261252
</div>
262253
`
263254
const wrapper = await mountTemplate(MdSwitch, template, {
@@ -270,13 +261,13 @@ test('should toggle boolean model when switch have false value', async () => {
270261

271262
await toggle.vm.$nextTick()
272263

273-
expect(toggle.vm.isSelected).toBe(true)
274-
275-
container.trigger('click')
276264
expect(toggle.vm.isSelected).toBe(false)
277-
expect(wrapper.data().model).toBe(true)
278265

279266
container.trigger('click')
280267
expect(toggle.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(toggle.vm.isSelected).toBe(false)
272+
expect(wrapper.data().model).toBe(null)
282273
})

src/components/MdSwitch/MdSwitch.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div class="md-switch-container" @click.stop="toggleCheck">
44
<div class="md-switch-thumb">
55
<md-ripple md-centered :md-active.sync="rippleActive" :md-disabled="disabled">
6-
<input type="checkbox" v-bind="{ id, name, disabled, required, value }">
6+
<input :id="id" type="checkbox" v-bind="{ id, name, disabled, required, value }">
77
</md-ripple>
88
</div>
99
</div>

0 commit comments

Comments
 (0)