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

Function TestUserChatPersonalModelOverrides

coderd/exp_chats_test.go:11551–11922  ·  view source on GitHub ↗

nolint:tparallel,paralleltest // Subtests share coderdtest instances.

(t *testing.T)

Source from the content-addressed store, hash-verified

11549
11550//nolint:tparallel,paralleltest // Subtests share coderdtest instances.
11551func TestUserChatPersonalModelOverrides(t *testing.T) {
11552 t.Parallel()
11553
11554 ctx := testutil.Context(t, testutil.WaitLong)
11555 adminClient, db := newChatClientWithDatabase(t)
11556 firstUser := coderdtest.CreateFirstUser(t, adminClient.Client)
11557 memberClientRaw, member := coderdtest.CreateAnotherUser(t, adminClient.Client, firstUser.OrganizationID)
11558 memberClient := codersdk.NewExperimentalClient(memberClientRaw)
11559 noKeyClientRaw, noKeyUser := coderdtest.CreateAnotherUser(t, adminClient.Client, firstUser.OrganizationID)
11560 noKeyClient := codersdk.NewExperimentalClient(noKeyClientRaw)
11561
11562 defaultModelConfig := createChatModelConfig(t, adminClient)
11563 provider := enableUserChatProviderKey(t, adminClient, memberClient, defaultModelConfig.Provider)
11564 modelProvider := createAIProviderForTest(t, adminClient, "anthropic", "")
11565 _, err := memberClient.UpsertUserAIProviderKey(ctx, "me", modelProvider.ID, codersdk.CreateUserAIProviderKeyRequest{
11566 APIKey: "test-user-api-key-" + uuid.NewString(),
11567 })
11568 require.NoError(t, err)
11569 contextLimit := int64(4096)
11570 modelConfig, err := adminClient.CreateChatModelConfig(ctx, codersdk.CreateChatModelConfigRequest{
11571 Provider: "anthropic",
11572 AIProviderID: &modelProvider.ID,
11573 Model: "claude-personal-" + uuid.NewString(),
11574 ContextLimit: &contextLimit,
11575 })
11576 require.NoError(t, err)
11577 err = adminClient.UpdateChatModelOverride(ctx, codersdk.ChatModelOverrideContextGeneral, codersdk.UpdateChatModelOverrideRequest{
11578 ModelConfigID: modelConfig.ID.String(),
11579 })
11580 require.NoError(t, err)
11581 err = adminClient.UpdateChatModelOverride(ctx, codersdk.ChatModelOverrideContextExplore, codersdk.UpdateChatModelOverrideRequest{
11582 ModelConfigID: defaultModelConfig.ID.String(),
11583 })
11584 require.NoError(t, err)
11585
11586 disabledModelConfig := createDisabledChatModelConfig(
11587 t,
11588 adminClient,
11589 defaultModelConfig.Provider,
11590 "gpt-4o-personal-disabled-"+uuid.NewString(),
11591 )
11592 disabledProvider := createAIProviderForTest(t, adminClient, "google", "test-api-key")
11593 contextLimit = int64(4096)
11594 disabledProviderModelConfig, err := adminClient.CreateChatModelConfig(ctx, codersdk.CreateChatModelConfigRequest{
11595 Provider: "google",
11596 AIProviderID: &disabledProvider.ID,
11597 Model: "gemini-personal-disabled-provider-" + uuid.NewString(),
11598 ContextLimit: &contextLimit,
11599 })
11600 require.NoError(t, err)
11601 enabled := false
11602 disabledProvider, err = adminClient.UpdateAIProvider(ctx, disabledProvider.ID.String(), codersdk.UpdateAIProviderRequest{
11603 Enabled: &enabled,
11604 })
11605 require.NoError(t, err)
11606 require.NotEqual(t, uuid.Nil, provider.ID)
11607 require.NotEqual(t, uuid.Nil, disabledProvider.ID)
11608

Callers

nothing calls this directly

Calls 15

ContextFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
NewExperimentalClientFunction · 0.92
AsSystemRestrictedFunction · 0.92

Tested by

no test coverage detected