[#MUI-39] Création d'un sélecteur d'heure à molettes (MalioTimePicker) ; DateTime rebranché dessus (remplace l'input time natif intérimaire) (#55)
| Numéro du ticket | Titre du ticket | |------------------|-----------------| | | | ## Description de la PR ## Modification du .env ## Check list - [ ] Pas de régression - [ ] TU/TI/TF rédigée - [ ] TU/TI/TF OK - [ ] CHANGELOG modifié Reviewed-on: #55 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
This commit was merged in pull request #55.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import {describe, expect, it} from 'vitest'
|
||||
import {mount} from '@vue/test-utils'
|
||||
import TimeWheel from './TimeWheel.vue'
|
||||
|
||||
const HOURS = Array.from({length: 24}, (_, i) => i)
|
||||
|
||||
const mountWheel = (modelValue = 9) =>
|
||||
mount(TimeWheel, {
|
||||
props: {modelValue, values: HOURS, ariaLabel: 'Heures'},
|
||||
attachTo: document.body,
|
||||
})
|
||||
|
||||
describe('MalioTimeWheel', () => {
|
||||
it('expose le rôle spinbutton et les attributs aria', () => {
|
||||
const wrapper = mountWheel(9)
|
||||
const el = wrapper.get('[role="spinbutton"]')
|
||||
expect(el.attributes('aria-label')).toBe('Heures')
|
||||
expect(el.attributes('aria-valuenow')).toBe('9')
|
||||
expect(el.attributes('aria-valuemin')).toBe('0')
|
||||
expect(el.attributes('aria-valuemax')).toBe('23')
|
||||
expect(el.attributes('aria-valuetext')).toBe('09')
|
||||
})
|
||||
|
||||
it('rend 3 copies des valeurs (buffer infini)', () => {
|
||||
const wrapper = mountWheel()
|
||||
expect(wrapper.findAll('[data-test="wheel-item"]')).toHaveLength(24 * 3)
|
||||
})
|
||||
|
||||
it('émet la nouvelle valeur au clavier ArrowDown', async () => {
|
||||
const wrapper = mountWheel(9)
|
||||
await wrapper.get('[role="spinbutton"]').trigger('keydown', {key: 'ArrowDown'})
|
||||
expect(wrapper.emitted('update:modelValue')?.at(-1)).toEqual([10])
|
||||
})
|
||||
|
||||
it('émet la valeur cliquée', async () => {
|
||||
const wrapper = mountWheel(9)
|
||||
const item = wrapper.findAll('[data-test="wheel-item"]').find((w) => w.text() === '11')!
|
||||
await item.trigger('click')
|
||||
expect(wrapper.emitted('update:modelValue')?.at(-1)).toEqual([11])
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user