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

Function TestUserAIProviderKeys

coderd/exp_chats_test.go:2081–2259  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2079}
2080
2081func TestUserAIProviderKeys(t *testing.T) {
2082 t.Parallel()
2083
2084 createOpenAIProvider := func(t *testing.T, client *codersdk.ExperimentalClient, name string, enabled bool, apiKeys ...string) codersdk.AIProvider {
2085 t.Helper()
2086
2087 provider, err := client.CreateAIProvider(testutil.Context(t, testutil.WaitLong), codersdk.CreateAIProviderRequest{
2088 Type: codersdk.AIProviderTypeOpenAI,
2089 Name: name,
2090 Enabled: enabled,
2091 BaseURL: "https://api.openai.example.com/v1",
2092 APIKeys: apiKeys,
2093 })
2094 require.NoError(t, err)
2095 return provider
2096 }
2097
2098 findUserAIProviderKeyConfig := func(
2099 t *testing.T,
2100 configs []codersdk.UserAIProviderKeyConfig,
2101 providerID uuid.UUID,
2102 ) *codersdk.UserAIProviderKeyConfig {
2103 t.Helper()
2104
2105 for i := range configs {
2106 if configs[i].Provider.ID == providerID {
2107 return &configs[i]
2108 }
2109 }
2110 return nil
2111 }
2112
2113 t.Run("SelfServiceLifecycle", func(t *testing.T) {
2114 t.Parallel()
2115
2116 ctx := testutil.Context(t, testutil.WaitLong)
2117 adminClient := newChatClient(t)
2118 firstUser := coderdtest.CreateFirstUser(t, adminClient.Client)
2119 memberClientRaw, _ := coderdtest.CreateAnotherUser(t, adminClient.Client, firstUser.OrganizationID)
2120 memberClient := codersdk.NewExperimentalClient(memberClientRaw)
2121
2122 provider := createOpenAIProvider(t, adminClient, "test-user-key-"+uuid.NewString(), true, "test-provider-api-key")
2123
2124 configs, err := memberClient.ListUserAIProviderKeyConfigs(ctx, "me")
2125 require.NoError(t, err)
2126 cfg := findUserAIProviderKeyConfig(t, configs, provider.ID)
2127 require.NotNil(t, cfg)
2128 require.False(t, cfg.HasUserAPIKey)
2129 require.True(t, cfg.HasProviderAPIKey)
2130 require.True(t, cfg.BYOKEnabled)
2131
2132 cfgValue, err := memberClient.UpsertUserAIProviderKey(ctx, "me", provider.ID, codersdk.CreateUserAIProviderKeyRequest{APIKey: "test-user-api-key"})
2133 require.NoError(t, err)
2134 require.Equal(t, provider.ID, cfgValue.Provider.ID)
2135 require.True(t, cfgValue.HasUserAPIKey)
2136 require.True(t, cfgValue.HasProviderAPIKey)
2137 require.True(t, cfgValue.BYOKEnabled)
2138

Callers

nothing calls this directly

Calls 15

ContextFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
NewExperimentalClientFunction · 0.92
requireSDKErrorFunction · 0.85
chatDeploymentValuesFunction · 0.85
CreateAIProviderMethod · 0.80
newChatClientFunction · 0.70

Tested by

no test coverage detected