test: migrate chatd tests to AI Gateway routing (#26658)

Refs CODAGT-681

Migrates all chatd tests from `AIGatewayRoutingEnabled = false` (direct
routing) to AI Gateway routing using the test helpers extracted in
#26639.

- `coderd/x/chatd/chatd_test.go` — 6 full-server tests migrated to
`NewWithAPI` + daemon, `directChatRoutingDeploymentValues` helper
deleted, 3 bare-chatd tests renamed
- `coderd/x/chatd/context_integration_test.go` — 2 tests migrated
- `coderd/exp_chats_test.go` — `chatDeploymentValues` helper deleted,
all 5 helper functions now use `NewWithAPI` + daemon internally (no call
site changes)
- `coderd/exp_chats_acl_test.go` — stale `chatDeploymentValues`
reference replaced
- `enterprise/coderd/exp_chats_test.go` — 9 sites across 5
`TestChatStreamRelay` subtests migrated
- `cli/exp_scaletest_chat_test.go` — 1 test migrated
- `coderd/x/chatd/model_routing_internal_test.go` — 1 direct-only test
removed
- `coderd/x/chatd/chatd_internal_test.go` — 1 direct-only test removed

> 🤖
This commit is contained in:
Cian Johnston
2026-06-30 12:17:42 +01:00
committed by GitHub
parent 33780758c1
commit e5b7e74847
8 changed files with 210 additions and 182 deletions
+35 -13
View File
@@ -779,19 +779,6 @@ func TestAIBridgeGatewayProviderTypesPreserveSlashModelID(t *testing.T) {
}
}
func TestDirectModelBuildDoesNotRequireActiveAPIKeyID(t *testing.T) {
t.Parallel()
server := &Server{}
model, err := server.newModel(t.Context(), modelClientRequest{
Chat: database.Chat{ID: uuid.New(), OwnerID: uuid.New()},
ModelName: "gpt-4",
UserAgent: chatprovider.UserAgent(),
}, newDirectModelRoute("openai", chatprovider.ProviderAPIKeys{OpenAI: "sk-test"}), modelBuildOptions{})
require.NoError(t, err)
require.NotNil(t, model)
}
func TestAIBridgeComputerUseModelUsesRoute(t *testing.T) {
t.Parallel()
@@ -829,6 +816,41 @@ func TestAIBridgeComputerUseModelUsesRoute(t *testing.T) {
require.Equal(t, aibridge.SourceAgents, factory.source)
}
func TestResolveComputerUseModel_AIGatewayMissingAPIKeyID(t *testing.T) {
t.Parallel()
providerID := uuid.New()
factory := &aibridgeTestFactory{rt: roundTripFunc(func(*http.Request) (*http.Response, error) {
t.Fatal("transport must not be used without an API key ID")
return nil, xerrors.New("unreachable")
})}
chat := database.Chat{ID: uuid.New(), OwnerID: uuid.New()}
server := &Server{
aiGatewayRoutingEnabled: true,
aibridgeTransportFactory: aibridgeTestFactoryPointer(factory),
}
provider := chattool.ComputerUseProviderOpenAI
modelProvider, modelName, ok := chattool.DefaultComputerUseModel(provider)
require.True(t, ok)
model, debugEnabled, resolvedProvider, resolvedModel, err := server.resolveComputerUseModel(
t.Context(),
chat,
aibridgeTestRoute(aibridgeTestAIProvider(providerID, "primary-openai", database.AIProviderTypeOpenai)),
provider,
modelProvider,
modelName,
modelBuildOptions{}, // no ActiveAPIKeyID
)
require.Error(t, err)
require.Nil(t, model)
require.False(t, debugEnabled)
require.Empty(t, resolvedProvider)
require.Empty(t, resolvedModel)
require.Contains(t, err.Error(), `resolve computer use model for provider "openai" model "gpt-5.5"`)
require.Contains(t, err.Error(), "active turn API key ID")
}
func TestAIBridgeDelegatedContextPropagation(t *testing.T) {
t.Parallel()