Files
kandev/apps/backend/internal/agent/runtime/lifecycle/provider_propagation_test.go
T

67 lines
2.2 KiB
Go

package lifecycle
import (
"context"
"reflect"
"testing"
"github.com/kandev/kandev/internal/task/models"
)
func TestAgentctlProviderMappingsPreserveProviderCapabilities(t *testing.T) {
providersByCase := map[string][]string{
"github-only": {"github"},
"gitlab-only": {"gitlab"},
"mixed": {"github", "gitlab"},
"empty": {},
"unsupported-filtered": {},
}
for name, providers := range providersByCase {
providers := providers
t.Run(name, func(t *testing.T) {
req := &ExecutorCreateRequest{McpProviders: providers}
standalone := buildStandaloneCreateInstanceRequest(req, nil, "", false, false, false, false, nil)
container := buildContainerCreateInstanceRequest(ContainerConfig{McpProviders: providers}, "", false, false, false, false, nil)
docker := buildReconnectCreateInstanceRequest(req, "previous-execution")
sprites := spriteCreateInstanceRequest(req)
ssh := buildSSHCreateInstanceRequest(req, "/workspace")
mapped := map[string][]string{
"standalone": standalone.McpProviders,
"container": container.McpProviders,
"docker": docker.McpProviders,
"sprites": sprites.McpProviders,
executorTypeSSH: ssh.McpProviders,
}
for backend, got := range mapped {
if !reflect.DeepEqual(got, providers) {
t.Errorf("%s provider mapping = %#v, want %#v", backend, got, providers)
}
}
})
}
}
func TestManagerLaunchCarriesMCPProvidersToExecutor(t *testing.T) {
mgr, backend := newEnvironmentExecutionTestManager(t, nil)
want := []string{"github", "gitlab"}
_, err := mgr.Launch(context.Background(), &LaunchRequest{
TaskID: "task-provider-launch",
SessionID: "session-provider-launch",
AgentProfileID: "profile-provider-launch",
ExecutorType: string(models.ExecutorTypeLocal),
IsEphemeral: true,
McpProviders: want,
})
if err != nil {
t.Fatalf("Manager.Launch: %v", err)
}
if backend.lastRequest == nil {
t.Fatal("executor CreateInstance was not called")
}
if !reflect.DeepEqual(backend.lastRequest.McpProviders, want) {
t.Fatalf("executor McpProviders = %#v, want %#v", backend.lastRequest.McpProviders, want)
}
}