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
38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
package state
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestAgentProvidersPreserveLegacyAndSeparatePreferences(t *testing.T) {
|
|
legacy, err := Decode([]byte("editor version=1 { agentCommand=\"/old/claude\" }"), EditorFile)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if legacy.AgentCommand != "/old/claude" || legacy.AgentProvider != "" || legacy.AgentCodexCommand != "" {
|
|
t.Fatalf("legacy preferences changed: %+v", legacy)
|
|
}
|
|
legacy.AgentProvider = "codex"
|
|
legacy.AgentCodexCommand = "/new/codex"
|
|
legacy.AgentClaudeModel = "claude-configured-model"
|
|
legacy.AgentCodexModel = "codex-configured-model"
|
|
legacy.AgentCodexEffort = "high"
|
|
root := t.TempDir()
|
|
if err := Save(root, legacy); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
got, err := Load(root)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got.AgentCommand != legacy.AgentCommand || got.AgentCodexCommand != legacy.AgentCodexCommand ||
|
|
got.AgentProvider != "codex" || got.AgentClaudeModel != legacy.AgentClaudeModel ||
|
|
got.AgentCodexModel != legacy.AgentCodexModel || got.AgentCodexEffort != "high" {
|
|
t.Fatalf("provider preferences did not round-trip: %+v", got)
|
|
}
|
|
if strings.Contains(string(Encode(Default())), "agent") {
|
|
t.Fatal("default agent preferences should not change legacy editor files")
|
|
}
|
|
}
|