@@ -79,4 +79,48 @@ describe("OpenAI memory embedding adapter", () => {
7979 input_type : "document" ,
8080 } ) ;
8181 } ) ;
82+
83+ it ( "preserves the caller's custom provider id when creating the embedding client (#47884)" , async ( ) => {
84+ await openAiMemoryEmbeddingProviderAdapter . create ( {
85+ config : { } as never ,
86+ provider : "bailian-embedding" ,
87+ model : "text-embedding-v3" ,
88+ fallback : "none" ,
89+ } ) ;
90+
91+ const createCalls = mocks . createOpenAiEmbeddingProvider . mock . calls as unknown as Array <
92+ [ { provider ?: string ; fallback ?: string ; model ?: string } ]
93+ > ;
94+ const [ opts ] = createCalls . at ( - 1 ) ?? [ ] ;
95+ expect ( opts ?. provider ) . toBe ( "bailian-embedding" ) ;
96+ expect ( opts ?. fallback ) . toBe ( "none" ) ;
97+ expect ( opts ?. model ) . toBe ( "text-embedding-v3" ) ;
98+ } ) ;
99+
100+ it ( "propagates the custom provider id into the embedding runtime cache key (#47884)" , async ( ) => {
101+ const result = await openAiMemoryEmbeddingProviderAdapter . create ( {
102+ config : { } as never ,
103+ provider : "bailian-embedding" ,
104+ model : "text-embedding-v3" ,
105+ fallback : "none" ,
106+ } ) ;
107+
108+ expect ( result . runtime ?. cacheKeyData ) . toMatchObject ( {
109+ provider : "bailian-embedding" ,
110+ } ) ;
111+ } ) ;
112+
113+ it ( "defaults the lookup id to 'openai' when no provider is supplied (#47884)" , async ( ) => {
114+ await openAiMemoryEmbeddingProviderAdapter . create ( {
115+ config : { } as never ,
116+ model : "text-embedding-3-small" ,
117+ fallback : "none" ,
118+ } ) ;
119+
120+ const createCalls = mocks . createOpenAiEmbeddingProvider . mock . calls as unknown as Array <
121+ [ { provider ?: string } ]
122+ > ;
123+ const [ opts ] = createCalls . at ( - 1 ) ?? [ ] ;
124+ expect ( opts ?. provider ) . toBe ( "openai" ) ;
125+ } ) ;
82126} ) ;
0 commit comments