@@ -136,6 +136,12 @@ describe("Workflow Integration Tests", () => {
136136 const workflowState = workflowService . getState ( ) ;
137137 expect ( workflowState . workflowFile ?. model ) . toBe ( "gpt-4-workflow" ) ;
138138
139+ // Mock loadPackageFromHub to return a model for the workflow model
140+ mockLoadPackageFromHub . mockResolvedValueOnce ( {
141+ name : "gpt-4-workflow" ,
142+ provider : "openai" ,
143+ } ) ;
144+
139145 // Test that ConfigEnhancer adds the workflow model to options
140146 const baseConfig = { models : [ ] } ;
141147 const baseOptions = { } ; // No --model flag
@@ -145,11 +151,18 @@ describe("Workflow Integration Tests", () => {
145151 baseOptions ,
146152 ) ;
147153
148- // Should have loaded the workflow model via injectModels
149- expect ( mockLoadPackagesFromHub ) . toHaveBeenCalledWith (
150- [ "gpt-4-workflow" ] ,
151- expect . anything ( ) ,
154+ // Should have loaded the workflow model directly via loadPackageFromHub
155+ expect ( mockLoadPackageFromHub ) . toHaveBeenCalledWith (
156+ "gpt-4-workflow" ,
157+ mockModelProcessor ,
152158 ) ;
159+
160+ // The workflow model should be prepended to the models array
161+ expect ( enhancedConfig . models ) . toHaveLength ( 1 ) ;
162+ expect ( enhancedConfig . models ?. [ 0 ] ) . toEqual ( {
163+ name : "gpt-4-workflow" ,
164+ provider : "openai" ,
165+ } ) ;
153166 } ) ;
154167
155168 it ( "should not add workflow model when no workflow is active" , async ( ) => {
@@ -177,6 +190,18 @@ describe("Workflow Integration Tests", () => {
177190 mockLoadPackageFromHub . mockResolvedValue ( mockWorkflowFile ) ;
178191 await workflowService . initialize ( "owner/workflow" ) ;
179192
193+ // Mock loadPackageFromHub for workflow model and loadPackagesFromHub for user models
194+ mockLoadPackageFromHub . mockResolvedValueOnce ( {
195+ name : "gpt-4-workflow" ,
196+ provider : "openai" ,
197+ } ) ;
198+ mockLoadPackagesFromHub . mockResolvedValueOnce ( [
199+ {
200+ name : "user-specified-model" ,
201+ provider : "anthropic" ,
202+ } ,
203+ ] ) ;
204+
180205 // Test that --model flag takes precedence
181206 const baseConfig = { models : [ ] } ;
182207 const baseOptions = { model : [ "user-specified-model" ] } ; // User specified --model
@@ -186,12 +211,28 @@ describe("Workflow Integration Tests", () => {
186211 baseOptions ,
187212 ) ;
188213
189- // Should process both the user model and workflow model
190- // The ConfigEnhancer adds workflow model to the existing model options
214+ // Should process the user model via loadPackagesFromHub
191215 expect ( mockLoadPackagesFromHub ) . toHaveBeenCalledWith (
192- [ "user-specified-model" , "gpt-4-workflow" ] ,
193- expect . anything ( ) ,
216+ [ "user-specified-model" ] ,
217+ mockModelProcessor ,
218+ ) ;
219+
220+ // Should also load the workflow model
221+ expect ( mockLoadPackageFromHub ) . toHaveBeenCalledWith (
222+ "gpt-4-workflow" ,
223+ mockModelProcessor ,
194224 ) ;
225+
226+ // Both models should be in the config, with user model first (takes precedence)
227+ expect ( enhancedConfig . models ) . toHaveLength ( 2 ) ;
228+ expect ( enhancedConfig . models ?. [ 0 ] ) . toEqual ( {
229+ name : "user-specified-model" ,
230+ provider : "anthropic" ,
231+ } ) ;
232+ expect ( enhancedConfig . models ?. [ 1 ] ) . toEqual ( {
233+ name : "gpt-4-workflow" ,
234+ provider : "openai" ,
235+ } ) ;
195236 } ) ;
196237 } ) ;
197238
0 commit comments