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

Function TestAIProviders

enterprise/dbcrypt/dbcrypt_internal_test.go:1119–1227  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1117}
1118
1119func TestAIProviders(t *testing.T) {
1120 t.Parallel()
1121 ctx := context.Background()
1122
1123 //nolint:gosec // test fixture, not real credentials
1124 const settings = `{"_type":"bedrock","_version":1,"region":"us-west-2","model":"anthropic.claude-sonnet-4-5-20250929-v1:0","access_key":"AKIA-test","access_key_secret":"test-secret"}`
1125
1126 insertProvider := func(t *testing.T, crypt *dbCrypt, ciphers []Cipher) database.AIProvider {
1127 t.Helper()
1128 provider := dbgen.AIProvider(t, crypt, database.AIProvider{
1129 Name: "anthropic-bedrock",
1130 Type: database.AiProviderTypeAnthropic,
1131 BaseUrl: "https://bedrock-runtime.us-west-2.amazonaws.com/",
1132 Settings: sql.NullString{String: settings, Valid: true},
1133 })
1134 requireAIProviderDecrypted(t, provider, ciphers, settings)
1135 return provider
1136 }
1137
1138 t.Run("InsertAIProvider", func(t *testing.T) {
1139 t.Parallel()
1140 db, crypt, ciphers := setup(t)
1141 provider := insertProvider(t, crypt, ciphers)
1142 requireAIProviderRawEncrypted(ctx, t, db, provider.ID, ciphers, settings)
1143 })
1144
1145 t.Run("InsertAIProviderEmptySettings", func(t *testing.T) {
1146 t.Parallel()
1147 db, crypt, _ := setup(t)
1148 provider := dbgen.AIProvider(t, crypt, database.AIProvider{
1149 Name: "openai-empty",
1150 }, func(p *database.InsertAIProviderParams) {
1151 p.Settings = sql.NullString{}
1152 })
1153 require.False(t, provider.SettingsKeyID.Valid)
1154 raw, err := db.GetAIProviderByID(ctx, provider.ID)
1155 require.NoError(t, err)
1156 require.False(t, raw.Settings.Valid)
1157 })
1158
1159 t.Run("GetAIProviderByID", func(t *testing.T) {
1160 t.Parallel()
1161 db, crypt, ciphers := setup(t)
1162 provider := insertProvider(t, crypt, ciphers)
1163 got, err := crypt.GetAIProviderByID(ctx, provider.ID)
1164 require.NoError(t, err)
1165 requireAIProviderDecrypted(t, got, ciphers, settings)
1166 requireAIProviderRawEncrypted(ctx, t, db, provider.ID, ciphers, settings)
1167 })
1168
1169 t.Run("GetAIProviderByName", func(t *testing.T) {
1170 t.Parallel()
1171 db, crypt, ciphers := setup(t)
1172 provider := insertProvider(t, crypt, ciphers)
1173 got, err := crypt.GetAIProviderByName(ctx, provider.Name)
1174 require.NoError(t, err)
1175 requireAIProviderDecrypted(t, got, ciphers, settings)
1176 requireAIProviderRawEncrypted(ctx, t, db, provider.ID, ciphers, settings)

Callers

nothing calls this directly

Calls 11

AIProviderFunction · 0.92
setupFunction · 0.70
HelperMethod · 0.65
RunMethod · 0.65
GetAIProviderByIDMethod · 0.65
GetAIProviderByNameMethod · 0.65
GetAIProvidersMethod · 0.65
UpdateAIProviderMethod · 0.65
LenMethod · 0.45

Tested by

no test coverage detected