diff --git a/src/stores/modelToNodeStore.test.ts b/src/stores/modelToNodeStore.test.ts index b9528ca47d..3d8665ed27 100644 --- a/src/stores/modelToNodeStore.test.ts +++ b/src/stores/modelToNodeStore.test.ts @@ -539,5 +539,16 @@ describe('useModelToNodeStore', () => { expect(modelToNodeStore.getNodeProvider('')).toBeUndefined() expect(modelToNodeStore.getAllNodeProviders('')).toEqual([]) }) + + it('should handle invalid input types gracefully', () => { + const modelToNodeStore = useModelToNodeStore() + modelToNodeStore.registerDefaults() + + expect(modelToNodeStore.getNodeProvider(null as any)).toBeUndefined() + expect(modelToNodeStore.getNodeProvider(undefined as any)).toBeUndefined() + expect(modelToNodeStore.getNodeProvider(123 as any)).toBeUndefined() + expect(modelToNodeStore.getAllNodeProviders(null as any)).toEqual([]) + expect(modelToNodeStore.getAllNodeProviders(undefined as any)).toEqual([]) + }) }) }) diff --git a/src/stores/modelToNodeStore.ts b/src/stores/modelToNodeStore.ts index 3b77220cb1..a17aee9a8e 100644 --- a/src/stores/modelToNodeStore.ts +++ b/src/stores/modelToNodeStore.ts @@ -81,6 +81,10 @@ export const useModelToNodeStore = defineStore('modelToNode', () => { function findProvidersWithFallback( modelType: string ): ModelNodeProvider[] | undefined { + if (!modelType || typeof modelType !== 'string') { + return undefined + } + const exactMatch = modelToNodeMap.value[modelType] if (exactMatch && exactMatch.length > 0) return exactMatch