Skip to content

Commit be9c26a

Browse files
committed
test(runtime-dom): vModel tests for input range
1 parent 8a123ac commit be9c26a

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

packages/runtime-dom/__tests__/directives/vModel.spec.ts

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,94 @@ describe('vModel', () => {
267267
expect(data.lazy).toEqual('foo')
268268
})
269269

270+
it('should work with range', async () => {
271+
const component = defineComponent({
272+
data() {
273+
return { value: 25 }
274+
},
275+
render() {
276+
return [
277+
withVModel(
278+
h('input', {
279+
type: 'range',
280+
min: 1,
281+
max: 100,
282+
class: 'foo',
283+
'onUpdate:modelValue': setValue.bind(this)
284+
}),
285+
this.value,
286+
{
287+
number: true
288+
}
289+
),
290+
withVModel(
291+
h('input', {
292+
type: 'range',
293+
min: 1,
294+
max: 100,
295+
class: 'bar',
296+
'onUpdate:modelValue': setValue.bind(this)
297+
}),
298+
this.value,
299+
{
300+
lazy: true
301+
}
302+
)
303+
]
304+
}
305+
})
306+
render(h(component), root)
307+
308+
const foo = root.querySelector('.foo')
309+
const bar = root.querySelector('.bar')
310+
const data = root._vnode.component.data
311+
312+
foo.value = 20
313+
triggerEvent('input', foo)
314+
await nextTick()
315+
expect(data.value).toEqual(20)
316+
317+
foo.value = 200
318+
triggerEvent('input', foo)
319+
await nextTick()
320+
expect(data.value).toEqual(100)
321+
322+
foo.value = -1
323+
triggerEvent('input', foo)
324+
await nextTick()
325+
expect(data.value).toEqual(1)
326+
327+
bar.value = 30
328+
triggerEvent('change', bar)
329+
await nextTick()
330+
expect(data.value).toEqual('30')
331+
332+
bar.value = 200
333+
triggerEvent('change', bar)
334+
await nextTick()
335+
expect(data.value).toEqual('100')
336+
337+
bar.value = -1
338+
triggerEvent('change', bar)
339+
await nextTick()
340+
expect(data.value).toEqual('1')
341+
342+
data.value = 60
343+
await nextTick()
344+
expect(foo.value).toEqual('60')
345+
expect(bar.value).toEqual('60')
346+
347+
data.value = -1
348+
await nextTick()
349+
expect(foo.value).toEqual('1')
350+
expect(bar.value).toEqual('1')
351+
352+
data.value = 200
353+
await nextTick()
354+
expect(foo.value).toEqual('100')
355+
expect(bar.value).toEqual('100')
356+
})
357+
270358
it('should work with checkbox', async () => {
271359
const component = defineComponent({
272360
data() {

0 commit comments

Comments
 (0)