Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

62 lines
1.9 KiB
Go

package tuttiagent
import (
"context"
"reflect"
"testing"
agentstatusservice "github.com/tutti-os/tutti/services/tuttid/service/agentstatus"
)
type authCommandResolverStub struct {
resolution agentstatusservice.ProviderCommandResolution
}
func (s authCommandResolverStub) ResolveProviderCommand(
context.Context,
string,
) (agentstatusservice.ProviderCommandResolution, error) {
return s.resolution, nil
}
func TestAuthBootstrapperResolvesProviderCommandEnvironment(t *testing.T) {
providerEnv := []string{"PATH=provider-path", "TUTTI_APP_NODE=managed-node"}
wantEnv := []string{"PATH=resolved-path", "TUTTI_APP_NODE=managed-node", "BASE=value"}
var receivedOverrides []string
bootstrapper := &AuthBootstrapper{
ProviderCommands: authCommandResolverStub{
resolution: agentstatusservice.ProviderCommandResolution{
Command: []string{"provider-launcher", "app-server"},
Env: providerEnv,
},
},
ResolveEnv: func(overrides []string) []string {
receivedOverrides = append([]string(nil), overrides...)
return append([]string(nil), wantEnv...)
},
ResolveCommand: func(command string, env []string) string {
if command != "provider-launcher" {
t.Fatalf("command to resolve = %q, want provider-launcher", command)
}
if !reflect.DeepEqual(env, wantEnv) {
t.Fatalf("command resolution environment = %v, want %v", env, wantEnv)
}
return "resolved-provider-launcher"
},
}
command, err := bootstrapper.resolveLoginCommand(t.Context())
if err != nil {
t.Fatalf("resolveLoginCommand() error = %v", err)
}
if command.BinaryPath != "resolved-provider-launcher" {
t.Fatalf("binary = %q, want resolved-provider-launcher", command.BinaryPath)
}
if !reflect.DeepEqual(receivedOverrides, providerEnv) {
t.Fatalf("environment overrides = %v, want %v", receivedOverrides, providerEnv)
}
if !reflect.DeepEqual(command.Env, wantEnv) {
t.Fatalf("resolved environment = %v, want %v", command.Env, wantEnv)
}
}