Skip to content

Commit f7c63bf

Browse files
authored
Update form-spinbutton.spec.js
1 parent 663080d commit f7c63bf

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

src/components/form-spinbutton/form-spinbutton.spec.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,73 @@ describe('form-spinbutton', () => {
233233
wrapper.destroy()
234234
})
235235

236+
it('basic +/- buttons click', async () => {
237+
const wrapper = mount(BFormSpinbutton)
238+
expect(wrapper.isVueInstance()).toBe(true)
239+
await waitNT(wrapper.vm)
240+
await waitRAF()
241+
242+
const $output = wrapper.find('output')
243+
expect($output.exists()).toBe(true)
244+
expect($output.attributes('role')).toEqual('spinbutton')
245+
expect($output.attributes('tabindex')).toEqual('0')
246+
expect($output.attributes('aria-live')).toEqual('off')
247+
expect($output.attributes('aria-valuemin')).toEqual('1')
248+
expect($output.attributes('aria-valuemax')).toEqual('100')
249+
// These two attribute should exist on the element
250+
expect($output.element.hasAttribute('aria-valuenow')).toBe(false)
251+
expect($output.element.hasAttribute('aria-valuetext')).toBe(false)
252+
expect($output.find('div').exists()).toBe(true)
253+
254+
const $increment = wrapper.find('[aria-label="Increment"]')
255+
expect($increment.exists()).toBe(true)
256+
const $decrement = wrapper.find('[aria-label="Decrement"]')
257+
expect($decrement.exists()).toBe(true)
258+
259+
$increment.trigger('mousedown')
260+
$increment.trigger('mouseup')
261+
await waitNT(wrapper.vm)
262+
await waitRAF()
263+
264+
expect($output.attributes('aria-valuemin')).toEqual('1')
265+
expect($output.attributes('aria-valuemax')).toEqual('100')
266+
expect($output.attributes('aria-valuenow')).toEqual('1')
267+
expect($output.attributes('aria-valuetext')).toEqual('1')
268+
269+
$increment.trigger('mousedown')
270+
$increment.trigger('mouseup')
271+
await waitNT(wrapper.vm)
272+
await waitRAF()
273+
274+
expect($output.attributes('aria-valuemin')).toEqual('1')
275+
expect($output.attributes('aria-valuemax')).toEqual('100')
276+
expect($output.attributes('aria-valuenow')).toEqual('2')
277+
expect($output.attributes('aria-valuetext')).toEqual('2')
278+
279+
$decrement.trigger('mousedown')
280+
$decrement.trigger('mouseup')
281+
await waitNT(wrapper.vm)
282+
await waitRAF()
283+
284+
expect($output.attributes('aria-valuemin')).toEqual('1')
285+
expect($output.attributes('aria-valuemax')).toEqual('100')
286+
expect($output.attributes('aria-valuenow')).toEqual('1')
287+
expect($output.attributes('aria-valuetext')).toEqual('1')
288+
289+
$decrement.trigger('mousedown')
290+
$decrement.trigger('mouseup')
291+
await waitNT(wrapper.vm)
292+
await waitRAF()
293+
294+
expect($output.attributes('aria-valuemin')).toEqual('1')
295+
expect($output.attributes('aria-valuemax')).toEqual('100')
296+
// wrap is off so it should not change to 1
297+
expect($output.attributes('aria-valuenow')).toEqual('1')
298+
expect($output.attributes('aria-valuetext')).toEqual('1')
299+
300+
wrapper.destroy()
301+
})
302+
236303
it('basic keyboard control works', async () => {
237304
const wrapper = mount(BFormSpinbutton)
238305
expect(wrapper.isVueInstance()).toBe(true)

0 commit comments

Comments
 (0)