mirror of
https://github.com/coder/coder.git
synced 2026-10-29 17:44:33 +08:00
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:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user