(t *testing.T)
| 7346 | } |
| 7347 | |
| 7348 | func TestProcessChat_UserProviderKey_Success(t *testing.T) { |
| 7349 | t.Parallel() |
| 7350 | |
| 7351 | db, ps := dbtestutil.NewDB(t) |
| 7352 | ctx := testutil.Context(t, testutil.WaitLong) |
| 7353 | |
| 7354 | const userAPIKey = "user-test-key" |
| 7355 | |
| 7356 | var authHeadersMu sync.Mutex |
| 7357 | authHeaders := make([]string, 0, 1) |
| 7358 | openAIURL := chattest.NewOpenAI(t, func(req *chattest.OpenAIRequest) chattest.OpenAIResponse { |
| 7359 | authHeadersMu.Lock() |
| 7360 | authHeaders = append(authHeaders, req.Header.Get("Authorization")) |
| 7361 | authHeadersMu.Unlock() |
| 7362 | |
| 7363 | if !req.Stream { |
| 7364 | return chattest.OpenAINonStreamingResponse("user provider key success") |
| 7365 | } |
| 7366 | return chattest.OpenAIStreamingResponse( |
| 7367 | chattest.OpenAITextChunks("hello from the saved user key")..., |
| 7368 | ) |
| 7369 | }) |
| 7370 | |
| 7371 | user, org, provider, model := seedChatDependenciesWithProviderPolicy( |
| 7372 | t, |
| 7373 | db, |
| 7374 | "openai-compat", |
| 7375 | openAIURL, |
| 7376 | "", |
| 7377 | false, |
| 7378 | true, |
| 7379 | false, |
| 7380 | ) |
| 7381 | _, err := db.UpsertUserAIProviderKey(ctx, database.UpsertUserAIProviderKeyParams{ |
| 7382 | ID: uuid.New(), |
| 7383 | UserID: user.ID, |
| 7384 | AIProviderID: provider.ID, |
| 7385 | APIKey: userAPIKey, |
| 7386 | }) |
| 7387 | require.NoError(t, err) |
| 7388 | |
| 7389 | creator := newTestServer(t, db, ps, uuid.New()) |
| 7390 | chat, err := creator.CreateChat(ctx, chatd.CreateOptions{ |
| 7391 | OrganizationID: org.ID, |
| 7392 | OwnerID: user.ID, |
| 7393 | Title: "user-provider-key-success", |
| 7394 | ModelConfigID: model.ID, |
| 7395 | InitialUserContent: []codersdk.ChatMessagePart{ |
| 7396 | codersdk.ChatMessageText("say hello"), |
| 7397 | }, |
| 7398 | }) |
| 7399 | require.NoError(t, err) |
| 7400 | |
| 7401 | _, events, cancel, ok := creator.Subscribe(ctx, chat.ID, nil, 0) |
| 7402 | require.True(t, ok) |
| 7403 | t.Cleanup(cancel) |
| 7404 | |
| 7405 | _ = newActiveTestServer(t, db, ps) |
nothing calls this directly
no test coverage detected