fix: date year picker (#84)
Release / release (push) Successful in 1m18s

| 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é

---------

Co-authored-by: admin malio <malio@yuno.malio.fr>
Co-authored-by: THOLOT DECHENE Matthieu <matthieu@yuno.malio.fr>
Co-authored-by: matthieu <matthieu@yuno.malio.fr>
Reviewed-on: #84
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
This commit was merged in pull request #84.
This commit is contained in:
2026-06-22 09:29:59 +00:00
committed by Autin
parent 251c939ba0
commit 28705c8285
21 changed files with 1443 additions and 24 deletions
+61
View File
@@ -185,6 +185,67 @@ describe('MalioDate', () => {
})
})
describe('vue années', () => {
it('opens the year picker on second header toggle, current year centered (2nd row/2nd col)', async () => {
const wrapper = mountDate()
await wrapper.get('[data-test="date-input"]').trigger('click')
await wrapper.get('[data-test="header-toggle"]').trigger('click') // -> mois
await wrapper.get('[data-test="header-toggle"]').trigger('click') // -> années
expect(wrapper.find('[data-test="year-picker"]').exists()).toBe(true)
// Le libellé reste « Mois Année » dans toutes les vues.
expect(wrapper.get('[data-test="header-toggle"]').text()).toContain('Mai 2026')
// Année courante (2026) en 2e ligne / 2e colonne d'une grille 3 colonnes = index 4.
const years = wrapper.findAll('[data-test="year"]')
expect(years[4].attributes('data-year')).toBe('2026')
expect(years[0].attributes('data-year')).toBe('2022')
})
it('cycles back to day view on third header toggle', async () => {
const wrapper = mountDate()
await wrapper.get('[data-test="date-input"]').trigger('click')
await wrapper.get('[data-test="header-toggle"]').trigger('click') // -> mois
await wrapper.get('[data-test="header-toggle"]').trigger('click') // -> années
await wrapper.get('[data-test="header-toggle"]').trigger('click') // -> jours
expect(wrapper.find('[data-test="year-picker"]').exists()).toBe(false)
expect(wrapper.find('[data-test="month-picker"]').exists()).toBe(false)
expect(wrapper.get('[data-test="header-toggle"]').text()).toContain('Mai 2026')
})
it('navigates days -> months -> years -> months -> days', async () => {
const wrapper = mountDate()
await wrapper.get('[data-test="date-input"]').trigger('click')
await wrapper.get('[data-test="header-toggle"]').trigger('click')
await wrapper.get('[data-test="header-toggle"]').trigger('click')
await wrapper.get('[data-test="year"][data-year="2024"]').trigger('click') // -> mois 2024
expect(wrapper.find('[data-test="month-picker"]').exists()).toBe(true)
expect(wrapper.get('[data-test="header-toggle"]').text()).toContain('2024')
await wrapper.get('[data-test="month"][data-month="0"]').trigger('click') // -> jours
expect(wrapper.find('[data-test="month-picker"]').exists()).toBe(false)
expect(wrapper.get('[data-test="header-toggle"]').text()).toContain('Janvier 2024')
expect(wrapper.emitted('update:modelValue')).toBeUndefined()
})
it('paginates the year window by 12 with chevrons', async () => {
const wrapper = mountDate()
await wrapper.get('[data-test="date-input"]').trigger('click')
await wrapper.get('[data-test="header-toggle"]').trigger('click')
await wrapper.get('[data-test="header-toggle"]').trigger('click') // années : fenêtre 20222033
await wrapper.get('[data-test="header-next"]').trigger('click') // +12 -> 20342045
const years = wrapper.findAll('[data-test="year"]')
expect(years[0].attributes('data-year')).toBe('2034')
expect(years[11].attributes('data-year')).toBe('2045')
})
it('greys out years outside [min, max]', async () => {
const wrapper = mountDate({min: '2025-01-01', max: '2027-12-31'})
await wrapper.get('[data-test="date-input"]').trigger('click')
await wrapper.get('[data-test="header-toggle"]').trigger('click')
await wrapper.get('[data-test="header-toggle"]').trigger('click')
expect(wrapper.get('[data-test="year"][data-year="2024"]').attributes('disabled')).toBeDefined()
expect(wrapper.get('[data-test="year"][data-year="2026"]').attributes('disabled')).toBeUndefined()
})
})
describe('vue mois', () => {
it('switches to month view on header toggle', async () => {
const wrapper = mountDate()