(t *testing.T)
| 1307 | } |
| 1308 | |
| 1309 | func TestUserAIProviderKeys(t *testing.T) { |
| 1310 | t.Parallel() |
| 1311 | ctx := context.Background() |
| 1312 | |
| 1313 | const ( |
| 1314 | //nolint:gosec // test credentials |
| 1315 | initialAPIKey = "sk-initial-ai-provider-key-value" |
| 1316 | //nolint:gosec // test credentials |
| 1317 | updatedAPIKey = "sk-updated-ai-provider-key-value" |
| 1318 | //nolint:gosec // test credentials |
| 1319 | rotatedAPIKey = "sk-rotated-ai-provider-key-value" |
| 1320 | ) |
| 1321 | |
| 1322 | insertProviderAndKey := func( |
| 1323 | t *testing.T, |
| 1324 | crypt *dbCrypt, |
| 1325 | ciphers []Cipher, |
| 1326 | ) (database.AIProvider, database.UserAiProviderKey) { |
| 1327 | t.Helper() |
| 1328 | user := dbgen.User(t, crypt, database.User{}) |
| 1329 | provider := dbgen.AIProvider(t, crypt, database.AIProvider{}) |
| 1330 | now := dbtime.Now() |
| 1331 | |
| 1332 | key, err := crypt.UpsertUserAIProviderKey(ctx, database.UpsertUserAIProviderKeyParams{ |
| 1333 | ID: uuid.New(), |
| 1334 | UserID: user.ID, |
| 1335 | AIProviderID: provider.ID, |
| 1336 | APIKey: initialAPIKey, |
| 1337 | CreatedAt: now, |
| 1338 | UpdatedAt: now, |
| 1339 | }) |
| 1340 | require.NoError(t, err) |
| 1341 | require.Equal(t, initialAPIKey, key.APIKey) |
| 1342 | require.Equal(t, ciphers[0].HexDigest(), key.ApiKeyKeyID.String) |
| 1343 | return provider, key |
| 1344 | } |
| 1345 | |
| 1346 | getRawUserAIProviderKey := func(t *testing.T, store database.Store, userID uuid.UUID, providerID uuid.UUID) database.UserAiProviderKey { |
| 1347 | t.Helper() |
| 1348 | key, err := store.GetUserAIProviderKeyByProviderID(ctx, database.GetUserAIProviderKeyByProviderIDParams{ |
| 1349 | UserID: userID, |
| 1350 | AIProviderID: providerID, |
| 1351 | }) |
| 1352 | require.NoError(t, err) |
| 1353 | return key |
| 1354 | } |
| 1355 | |
| 1356 | t.Run("UpsertUserAIProviderKeyCreatesValue", func(t *testing.T) { |
| 1357 | t.Parallel() |
| 1358 | db, crypt, ciphers := setup(t) |
| 1359 | provider, key := insertProviderAndKey(t, crypt, ciphers) |
| 1360 | |
| 1361 | got, err := crypt.GetUserAIProviderKeyByProviderID(ctx, database.GetUserAIProviderKeyByProviderIDParams{ |
| 1362 | UserID: key.UserID, |
| 1363 | AIProviderID: provider.ID, |
| 1364 | }) |
| 1365 | require.NoError(t, err) |
| 1366 | require.Equal(t, key.ID, got.ID) |
nothing calls this directly
no test coverage detected