Files
aego/editor/shell/agentsettings_test.go
sanspie 5eb1832907
ci-platforms / darwin amd64 smoke (push) Skipped
ci / build (amd64, linux, ubuntu-24.04) (push) Failing after 15m28s
ci / release (push) Skipped
ci-platforms / windows amd64 smoke (push) Skipped
ci-platforms / darwin arm64 smoke (push) Skipped
ci / checks (push) Successful in 7m47s
Complete Stage 12 for v0.12.0
2026-11-05 11:46:53 +03:00

56 lines
1.5 KiB
Go

package shell
import (
"sync"
"testing"
"aego/editor/core/agentui"
"aego/editor/core/state"
)
func TestAgentPreferencesStayWithTheirProvider(t *testing.T) {
var app App
app.loadAgentSettings(&state.Editor{AgentCommand: "/opt/claude"})
claude := app.AgentSettings("")
if claude.Provider != "claude" || claude.Command != "/opt/claude" {
t.Fatalf("legacy provider: %+v", claude)
}
claude.Model = "claude-user-model"
app.SetAgentSettings(claude)
app.SetAgentSettings(agentui.ProviderSettings{Provider: "codex", Command: "/opt/codex", Model: "codex-user-model", Effort: "high"})
codex := app.AgentSettings("")
app.SetAgentSettings(app.AgentSettings("claude"))
if app.AgentSettings("") != claude || app.AgentSettings("codex") != codex {
t.Fatal("switching providers mixed their settings")
}
app.SetAgentSettings(codex)
saved := state.Default()
app.saveAgentSettings(saved)
var reopened App
reopened.loadAgentSettings(saved)
if reopened.AgentSettings("") != codex || reopened.AgentSettings("claude") != claude {
t.Fatal("reopening did not restore provider and its settings")
}
}
func TestAgentAvailabilityCanReadPreferencesDuringSwitch(t *testing.T) {
var app App
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
for i := 0; i < 500; i++ {
_ = app.AgentSettings("")
_ = app.AgentCommand()
}
}()
for i := 0; i < 500; i++ {
provider := "claude"
if i%2 == 0 {
provider = "codex"
}
app.SetAgentSettings(agentui.ProviderSettings{Provider: provider, Command: "/configured/" + provider})
}
wg.Wait()
}