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:
@@ -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', () => {
|
describe('vue mois', () => {
|
||||||
it('switches to month view on header toggle', async () => {
|
it('switches to month view on header toggle', async () => {
|
||||||
const wrapper = mountDate()
|
const wrapper = mountDate()
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
:required="required"
|
:required="required"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
|
:min="min"
|
||||||
|
:max="max"
|
||||||
:hint="hint"
|
:hint="hint"
|
||||||
:error="mergedError"
|
:error="mergedError"
|
||||||
:success="success"
|
:success="success"
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
:required="required"
|
:required="required"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
|
:min="min"
|
||||||
|
:max="max"
|
||||||
:hint="hint"
|
:hint="hint"
|
||||||
:error="error"
|
:error="error"
|
||||||
:success="success"
|
:success="success"
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
:required="required"
|
:required="required"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
|
:min="min?.slice(0, 10)"
|
||||||
|
:max="max?.slice(0, 10)"
|
||||||
:hint="hint"
|
:hint="hint"
|
||||||
:error="mergedError"
|
:error="mergedError"
|
||||||
:success="success"
|
:success="success"
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
:required="required"
|
:required="required"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
|
:min="min"
|
||||||
|
:max="max"
|
||||||
:hint="hint"
|
:hint="hint"
|
||||||
:error="error"
|
:error="error"
|
||||||
:success="success"
|
:success="success"
|
||||||
|
|||||||
Reference in New Issue
Block a user