fix(ui) : garde readonly défensive isOpen + test readonly TimePicker

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-03 15:35:41 +02:00
parent 12a165c1c1
commit 993364062d
3 changed files with 8 additions and 2 deletions
@@ -205,7 +205,7 @@ const mergedInputClass = computed(() =>
: hasSuccess.value : hasSuccess.value
? 'border-m-success' ? 'border-m-success'
: isReadonly.value ? '' : 'focus:border-m-primary', : isReadonly.value ? '' : 'focus:border-m-primary',
isOpen.value ? 'border-m-primary !py-[9px] !rounded-b-none' : '', (!isReadonly.value && isOpen.value) ? 'border-m-primary !py-[9px] !rounded-b-none' : '',
props.inputClass, props.inputClass,
), ),
) )
@@ -52,6 +52,12 @@ describe('MalioTimePicker', () => {
expect(wrapper.find('[data-test="popover"]').exists()).toBe(false) expect(wrapper.find('[data-test="popover"]').exists()).toBe(false)
}) })
it('n\'ouvre pas le popover si readonly', async () => {
const wrapper = mountPicker({readonly: true})
await wrapper.get('[data-test="time-field"]').trigger('click')
expect(wrapper.find('[data-test="popover"]').exists()).toBe(false)
})
it('émet la valeur réglée depuis les molettes', async () => { it('émet la valeur réglée depuis les molettes', async () => {
const wrapper = mountPicker({modelValue: '09:30'}) const wrapper = mountPicker({modelValue: '09:30'})
await wrapper.get('[data-test="time-field"]').trigger('click') await wrapper.get('[data-test="time-field"]').trigger('click')
+1 -1
View File
@@ -202,7 +202,7 @@ const mergedInputClass = computed(() =>
: hasSuccess.value : hasSuccess.value
? 'border-m-success' ? 'border-m-success'
: isReadonly.value ? '' : 'focus:border-m-primary', : isReadonly.value ? '' : 'focus:border-m-primary',
isOpen.value ? 'border-m-primary !rounded-b-none !py-[9px]' : '', (!isReadonly.value && isOpen.value) ? 'border-m-primary !rounded-b-none !py-[9px]' : '',
props.inputClass, props.inputClass,
), ),
) )