test(email) : couvre le bouton + d'ajout de MalioInputEmail
This commit is contained in:
@@ -24,6 +24,9 @@ type InputEmailProps = {
|
|||||||
iconSize?: string | number
|
iconSize?: string | number
|
||||||
iconColor?: string
|
iconColor?: string
|
||||||
lowercase?: boolean
|
lowercase?: boolean
|
||||||
|
addable?: boolean
|
||||||
|
addIconName?: string
|
||||||
|
addButtonLabel?: string
|
||||||
reserveMessageSpace?: boolean
|
reserveMessageSpace?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,4 +318,78 @@ describe('MalioInputEmail', () => {
|
|||||||
expect(msg.exists()).toBe(true)
|
expect(msg.exists()).toBe(true)
|
||||||
expect(msg.classes()).not.toContain('min-h-[1rem]')
|
expect(msg.classes()).not.toContain('min-h-[1rem]')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('does not render add button by default', () => {
|
||||||
|
const wrapper = mountComponent()
|
||||||
|
|
||||||
|
expect(wrapper.find('[data-test="add-button"]').exists()).toBe(false)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('renders add button when addable is true', () => {
|
||||||
|
const wrapper = mountComponent({addable: true})
|
||||||
|
|
||||||
|
expect(wrapper.find('[data-test="add-button"]').exists()).toBe(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('emits add event when add button is clicked', async () => {
|
||||||
|
const wrapper = mountComponent({addable: true})
|
||||||
|
|
||||||
|
await wrapper.get('[data-test="add-button"]').trigger('click')
|
||||||
|
|
||||||
|
expect(wrapper.emitted('add')).toHaveLength(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not emit add when disabled', async () => {
|
||||||
|
const wrapper = mountComponent({addable: true, disabled: true})
|
||||||
|
|
||||||
|
await wrapper.get('[data-test="add-button"]').trigger('click')
|
||||||
|
|
||||||
|
expect(wrapper.emitted('add')).toBeUndefined()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not emit add when readonly', async () => {
|
||||||
|
const wrapper = mountComponent({addable: true, readonly: true})
|
||||||
|
|
||||||
|
await wrapper.get('[data-test="add-button"]').trigger('click')
|
||||||
|
|
||||||
|
expect(wrapper.emitted('add')).toBeUndefined()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('disables add button when disabled', () => {
|
||||||
|
const wrapper = mountComponent({addable: true, disabled: true})
|
||||||
|
|
||||||
|
expect(wrapper.get('[data-test="add-button"]').attributes('disabled')).toBeDefined()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('add button is not natively disabled in readonly (onAdd guard blocks the action)', () => {
|
||||||
|
const wrapper = mountComponent({addable: true, readonly: true})
|
||||||
|
|
||||||
|
expect(wrapper.get('[data-test="add-button"]').attributes('disabled')).toBeUndefined()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('moves the email icon to the left automatically when addable', () => {
|
||||||
|
const wrapper = mountComponent({addable: true})
|
||||||
|
|
||||||
|
const icon = wrapper.get('[data-test="icon"]')
|
||||||
|
expect(icon.classes()).toContain('left-[10px]')
|
||||||
|
expect(icon.classes()).not.toContain('right-[10px]')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('keeps the email icon on the right when addable is false', () => {
|
||||||
|
const wrapper = mountComponent()
|
||||||
|
|
||||||
|
expect(wrapper.get('[data-test="icon"]').classes()).toContain('right-[10px]')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('uses the default add button aria-label', () => {
|
||||||
|
const wrapper = mountComponent({addable: true})
|
||||||
|
|
||||||
|
expect(wrapper.get('[data-test="add-button"]').attributes('aria-label')).toBe('Ajouter une adresse email')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('allows overriding the add button aria-label', () => {
|
||||||
|
const wrapper = mountComponent({addable: true, addButtonLabel: 'Ajouter un destinataire'})
|
||||||
|
|
||||||
|
expect(wrapper.get('[data-test="add-button"]').attributes('aria-label')).toBe('Ajouter un destinataire')
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user