(t *testing.T)
| 247 | } |
| 248 | |
| 249 | func TestDefaultModelLogic(t *testing.T) { |
| 250 | tests := []struct { |
| 251 | name string |
| 252 | env string |
| 253 | userConfig *userconfig.Config |
| 254 | expectedProvider string |
| 255 | expectedModel string |
| 256 | }{ |
| 257 | { |
| 258 | name: "env", |
| 259 | env: "openai/gpt-4o", |
| 260 | expectedProvider: "openai", |
| 261 | expectedModel: "gpt-4o", |
| 262 | }, |
| 263 | { |
| 264 | name: "user_config", |
| 265 | userConfig: &userconfig.Config{ |
| 266 | DefaultModel: &latest.FlexibleModelConfig{ |
| 267 | ModelConfig: latest.ModelConfig{Provider: "google", Model: "gemini-2.5-flash"}, |
| 268 | }, |
| 269 | }, |
| 270 | expectedProvider: "google", |
| 271 | expectedModel: "gemini-2.5-flash", |
| 272 | }, |
| 273 | { |
| 274 | name: "env_overrides_user_config", |
| 275 | env: "openai/gpt-4o", |
| 276 | userConfig: &userconfig.Config{ |
| 277 | DefaultModel: &latest.FlexibleModelConfig{ |
| 278 | ModelConfig: latest.ModelConfig{Provider: "google", Model: "gemini-2.5-flash"}, |
| 279 | }, |
| 280 | }, |
| 281 | expectedProvider: "openai", |
| 282 | expectedModel: "gpt-4o", |
| 283 | }, |
| 284 | { |
| 285 | name: "empty_when_not_set", |
| 286 | expectedProvider: "", |
| 287 | expectedModel: "", |
| 288 | }, |
| 289 | } |
| 290 | |
| 291 | for _, tt := range tests { |
| 292 | t.Run(tt.name, func(t *testing.T) { |
| 293 | t.Parallel() |
| 294 | |
| 295 | loadUserConfig := func() (*userconfig.Config, error) { |
| 296 | if tt.userConfig != nil { |
| 297 | return tt.userConfig, nil |
| 298 | } |
| 299 | return &userconfig.Config{}, nil |
| 300 | } |
| 301 | |
| 302 | cmd := &cobra.Command{ |
| 303 | RunE: func(*cobra.Command, []string) error { |
| 304 | return nil |
| 305 | }, |
| 306 | } |
nothing calls this directly
no test coverage detected