diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts index 679aeb521..006ac8e6c 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts @@ -14,6 +14,8 @@ import WidgetSelectDropdown from '@/renderer/extensions/vueNodes/widgets/compone interface WidgetSelectDropdownInstance extends ComponentPublicInstance { inputItems: FormDropdownItem[] outputItems: FormDropdownItem[] + dropdownItems: FormDropdownItem[] + filterSelected: string updateSelectedItems: (selectedSet: Set) => void } @@ -230,9 +232,7 @@ describe('WidgetSelectDropdown custom label mapping', () => { ).toBe(false) // The missing value should be accessible via dropdownItems when filter is 'all' (default) - const dropdownItems = ( - wrapper.vm as unknown as { dropdownItems: FormDropdownItem[] } - ).dropdownItems + const dropdownItems = wrapper.vm.dropdownItems expect( dropdownItems.some((item) => item.name === 'template_image.png') ).toBe(true) @@ -246,15 +246,10 @@ describe('WidgetSelectDropdown custom label mapping', () => { }) const wrapper = mountComponent(widget, 'template_image.png') - const vmWithFilter = wrapper.vm as unknown as { - filterSelected: string - dropdownItems: FormDropdownItem[] - } - - vmWithFilter.filterSelected = 'inputs' + wrapper.vm.filterSelected = 'inputs' await wrapper.vm.$nextTick() - const dropdownItems = vmWithFilter.dropdownItems + const dropdownItems = wrapper.vm.dropdownItems expect(dropdownItems).toHaveLength(2) expect( dropdownItems.every((item) => !String(item.id).startsWith('missing-')) @@ -267,16 +262,10 @@ describe('WidgetSelectDropdown custom label mapping', () => { }) const wrapper = mountComponent(widget, 'template_image.png') - const vmWithFilter = wrapper.vm as unknown as { - filterSelected: string - dropdownItems: FormDropdownItem[] - outputItems: FormDropdownItem[] - } - - vmWithFilter.filterSelected = 'outputs' + wrapper.vm.filterSelected = 'outputs' await wrapper.vm.$nextTick() - const dropdownItems = vmWithFilter.dropdownItems + const dropdownItems = wrapper.vm.dropdownItems expect(dropdownItems).toHaveLength(wrapper.vm.outputItems.length) expect( dropdownItems.every((item) => !String(item.id).startsWith('missing-')) @@ -289,9 +278,7 @@ describe('WidgetSelectDropdown custom label mapping', () => { }) const wrapper = mountComponent(widget, 'img_001.png') - const dropdownItems = ( - wrapper.vm as unknown as { dropdownItems: FormDropdownItem[] } - ).dropdownItems + const dropdownItems = wrapper.vm.dropdownItems expect(dropdownItems).toHaveLength(2) expect( dropdownItems.every((item) => !String(item.id).startsWith('missing-')) @@ -304,9 +291,7 @@ describe('WidgetSelectDropdown custom label mapping', () => { }) const wrapper = mountComponent(widget, undefined) - const dropdownItems = ( - wrapper.vm as unknown as { dropdownItems: FormDropdownItem[] } - ).dropdownItems + const dropdownItems = wrapper.vm.dropdownItems expect(dropdownItems).toHaveLength(2) expect( dropdownItems.every((item) => !String(item.id).startsWith('missing-')) diff --git a/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue b/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue index 314b17fa6..1a05ba25d 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue @@ -58,7 +58,7 @@ const props = withDefaults(defineProps(), { }) const selected = defineModel>('selected', { - default: new Set() + default: () => new Set() }) const filterSelected = defineModel('filterSelected', { default: '' }) const sortSelected = defineModel('sortSelected', { @@ -67,13 +67,13 @@ const sortSelected = defineModel('sortSelected', { const layoutMode = defineModel('layoutMode', { default: 'grid' }) -const files = defineModel('files', { default: [] }) +const files = defineModel('files', { default: () => [] }) const searchQuery = defineModel('searchQuery', { default: '' }) const ownershipSelected = defineModel('ownershipSelected', { default: 'all' }) const baseModelSelected = defineModel>('baseModelSelected', { - default: new Set() + default: () => new Set() }) const toastStore = useToastStore()