@@ -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 ( )