| 226 | } |
| 227 | |
| 228 | func AIProviderKey(t testing.TB, db database.Store, seed database.AIProviderKey, munge ...func(*database.InsertAIProviderKeyParams)) database.AIProviderKey { |
| 229 | t.Helper() |
| 230 | id := seed.ID |
| 231 | if id == uuid.Nil { |
| 232 | id = uuid.New() |
| 233 | } |
| 234 | now := dbtime.Now() |
| 235 | params := database.InsertAIProviderKeyParams{ |
| 236 | ID: id, |
| 237 | ProviderID: seed.ProviderID, |
| 238 | APIKey: takeFirst(seed.APIKey, "test-key"), |
| 239 | ApiKeyKeyID: seed.ApiKeyKeyID, |
| 240 | CreatedAt: takeFirst(seed.CreatedAt, now), |
| 241 | UpdatedAt: takeFirst(seed.UpdatedAt, now), |
| 242 | } |
| 243 | for _, fn := range munge { |
| 244 | fn(¶ms) |
| 245 | } |
| 246 | key, err := db.InsertAIProviderKey(genCtx, params) |
| 247 | require.NoError(t, err, "insert ai provider key") |
| 248 | return key |
| 249 | } |
| 250 | |
| 251 | // AIProviderWithOptionalKey inserts an AI provider and, when apiKey is not |
| 252 | // empty, inserts a provider-scoped key for it. |