| 193 | } |
| 194 | |
| 195 | func AIProvider(t testing.TB, db database.Store, seed database.AIProvider, munge ...func(*database.InsertAIProviderParams)) database.AIProvider { |
| 196 | t.Helper() |
| 197 | id := seed.ID |
| 198 | if id == uuid.Nil { |
| 199 | id = uuid.New() |
| 200 | } |
| 201 | provType := seed.Type |
| 202 | if provType == "" { |
| 203 | provType = database.AiProviderTypeOpenai |
| 204 | } |
| 205 | name := takeFirst(seed.Name, testutil.GetRandomNameHyphenated(t)) |
| 206 | displayName := seed.DisplayName |
| 207 | if !displayName.Valid { |
| 208 | displayName = sql.NullString{String: name, Valid: true} |
| 209 | } |
| 210 | params := database.InsertAIProviderParams{ |
| 211 | ID: id, |
| 212 | Type: provType, |
| 213 | Name: name, |
| 214 | DisplayName: displayName, |
| 215 | Enabled: takeFirst(seed.Enabled, true), |
| 216 | BaseUrl: takeFirst(seed.BaseUrl, "https://api.example.com/"), |
| 217 | Settings: seed.Settings, |
| 218 | SettingsKeyID: seed.SettingsKeyID, |
| 219 | } |
| 220 | for _, fn := range munge { |
| 221 | fn(¶ms) |
| 222 | } |
| 223 | provider, err := db.InsertAIProvider(genCtx, params) |
| 224 | require.NoError(t, err, "insert ai provider") |
| 225 | return provider |
| 226 | } |
| 227 | |
| 228 | func AIProviderKey(t testing.TB, db database.Store, seed database.AIProviderKey, munge ...func(*database.InsertAIProviderKeyParams)) database.AIProviderKey { |
| 229 | t.Helper() |