diff --git a/packages/effects/common-ui/src/components/icon-picker/__tests__/icon-picker.test.ts b/packages/effects/common-ui/src/components/icon-picker/__tests__/icon-picker.test.ts index 25b1e4e85..5e9e858e7 100644 --- a/packages/effects/common-ui/src/components/icon-picker/__tests__/icon-picker.test.ts +++ b/packages/effects/common-ui/src/components/icon-picker/__tests__/icon-picker.test.ts @@ -173,4 +173,27 @@ describe('icon-picker.vue', () => { wrapper.unmount(); }); + + it('updates the configured model value when selecting an icon', async () => { + const onUpdateValue = vi.fn(); + const wrapper = mount(IconPicker, { + attachTo: document.body, + props: { + icons: STATIC_ICONS, + inputComponent: markRaw(AntdvNextLikeInput), + modelValueProp: 'value', + prefix: '', + 'onUpdate:value': onUpdateValue, + }, + }); + await openIconPicker(wrapper); + + const firstIcon = document.body.querySelector('.grid-cols-6 > button'); + expect(firstIcon).toBeTruthy(); + await new DOMWrapper(firstIcon as Element).trigger('click'); + + expect(onUpdateValue).toHaveBeenCalledWith('home'); + + wrapper.unmount(); + }); }); diff --git a/packages/effects/common-ui/src/components/icon-picker/icon-picker.vue b/packages/effects/common-ui/src/components/icon-picker/icon-picker.vue index e94ed0048..b7d791a34 100644 --- a/packages/effects/common-ui/src/components/icon-picker/icon-picker.vue +++ b/packages/effects/common-ui/src/components/icon-picker/icon-picker.vue @@ -111,8 +111,7 @@ watch( ); const handleClick = (icon: string) => { - currentSelect.value = icon; - modelValue.value = icon; + updateCurrentSelect(icon); close(); };