feat : propage min/max au popover + e2e sélecteur d'année (#date-year-picker)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-22 10:19:22 +02:00
parent f314a1a06e
commit d8f54137de
5 changed files with 51 additions and 0 deletions
+43
View File
@@ -185,6 +185,49 @@ describe('MalioDate', () => {
})
})
describe('vue années', () => {
it('opens the year picker on second 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
expect(wrapper.find('[data-test="year-picker"]').exists()).toBe(true)
expect(wrapper.get('[data-test="header-toggle"]').text()).toContain('2021 2032')
})
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 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')
await wrapper.get('[data-test="header-next"]').trigger('click')
expect(wrapper.get('[data-test="header-toggle"]').text()).toContain('2033 2044')
})
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()
+2
View File
@@ -9,6 +9,8 @@
:required="required"
:disabled="disabled"
:readonly="readonly"
:min="min"
:max="max"
:hint="hint"
:error="mergedError"
:success="success"
+2
View File
@@ -9,6 +9,8 @@
:required="required"
:disabled="disabled"
:readonly="readonly"
:min="min"
:max="max"
:hint="hint"
:error="error"
:success="success"
+2
View File
@@ -9,6 +9,8 @@
:required="required"
:disabled="disabled"
:readonly="readonly"
:min="min?.slice(0, 10)"
:max="max?.slice(0, 10)"
:hint="hint"
:error="mergedError"
:success="success"
+2
View File
@@ -9,6 +9,8 @@
:required="required"
:disabled="disabled"
:readonly="readonly"
:min="min"
:max="max"
:hint="hint"
:error="error"
:success="success"