MCPcopy Index your code
hub / github.com/coder/coder / TestProcessChat_UserProviderKey_Success

Function TestProcessChat_UserProviderKey_Success

coderd/x/chatd/chatd_test.go:7348–7418  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

7346}
7347
7348func 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)

Callers

nothing calls this directly

Calls 15

NewDBFunction · 0.92
ContextFunction · 0.92
NewOpenAIFunction · 0.92
OpenAIStreamingResponseFunction · 0.92
OpenAITextChunksFunction · 0.92
ChatMessageTextFunction · 0.92
newActiveTestServerFunction · 0.85
waitForTerminalChatFunction · 0.85
newTestServerFunction · 0.70

Tested by

no test coverage detected