| 269 | } |
| 270 | |
| 271 | func ChatProvider(t testing.TB, db database.Store, seed database.ChatProvider, munge ...func(*database.InsertChatProviderParams)) database.ChatProvider { |
| 272 | t.Helper() |
| 273 | params := database.InsertChatProviderParams{ |
| 274 | Provider: takeFirst(seed.Provider, "openai"), |
| 275 | DisplayName: takeFirst(seed.DisplayName, seed.Provider, "openai"), |
| 276 | APIKey: takeFirst(seed.APIKey, "test-key"), |
| 277 | BaseUrl: seed.BaseUrl, |
| 278 | ApiKeyKeyID: seed.ApiKeyKeyID, |
| 279 | CreatedBy: seed.CreatedBy, |
| 280 | Enabled: takeFirst(seed.Enabled, true), |
| 281 | CentralApiKeyEnabled: takeFirst(seed.CentralApiKeyEnabled, true), |
| 282 | AllowUserApiKey: seed.AllowUserApiKey, |
| 283 | AllowCentralApiKeyFallback: seed.AllowCentralApiKeyFallback, |
| 284 | } |
| 285 | for _, fn := range munge { |
| 286 | fn(¶ms) |
| 287 | } |
| 288 | provider := AIProvider(t, db, database.AIProvider{ |
| 289 | Type: database.AIProviderType(params.Provider), |
| 290 | Name: "test-" + uuid.NewString(), |
| 291 | DisplayName: sql.NullString{String: params.DisplayName, Valid: params.DisplayName != ""}, |
| 292 | BaseUrl: params.BaseUrl, |
| 293 | }, func(p *database.InsertAIProviderParams) { |
| 294 | p.Enabled = params.Enabled |
| 295 | }) |
| 296 | if params.APIKey != "" { |
| 297 | AIProviderKey(t, db, database.AIProviderKey{ |
| 298 | ProviderID: provider.ID, |
| 299 | APIKey: params.APIKey, |
| 300 | ApiKeyKeyID: params.ApiKeyKeyID, |
| 301 | }) |
| 302 | } |
| 303 | return database.ChatProvider{ |
| 304 | ID: provider.ID, |
| 305 | Provider: params.Provider, |
| 306 | DisplayName: params.DisplayName, |
| 307 | APIKey: params.APIKey, |
| 308 | BaseUrl: params.BaseUrl, |
| 309 | ApiKeyKeyID: params.ApiKeyKeyID, |
| 310 | CreatedBy: params.CreatedBy, |
| 311 | Enabled: params.Enabled, |
| 312 | CentralApiKeyEnabled: params.CentralApiKeyEnabled, |
| 313 | AllowUserApiKey: params.AllowUserApiKey, |
| 314 | AllowCentralApiKeyFallback: params.AllowCentralApiKeyFallback, |
| 315 | CreatedAt: provider.CreatedAt, |
| 316 | UpdatedAt: provider.UpdatedAt, |
| 317 | } |
| 318 | } |
| 319 | |
| 320 | func MCPServerConfig(t testing.TB, db database.Store, seed database.MCPServerConfig) database.MCPServerConfig { |
| 321 | t.Helper() |