experimental: codex / ai integration
This commit is contained in:
@@ -120,6 +120,43 @@ syntax_theme = "gruvbox"
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadConfigParsesExperimentalAISettings(t *testing.T) {
|
||||
path := filepath.Join(t.TempDir(), "config.toml")
|
||||
content := `
|
||||
[ai]
|
||||
enabled = true
|
||||
provider = "codex-cli"
|
||||
model = "gpt-test"
|
||||
command = "/usr/local/bin/codex"
|
||||
timeout = "2m"
|
||||
max_calls = 3
|
||||
max_request_bytes = 64000
|
||||
max_run_bytes = 128000
|
||||
max_file_bytes = 32000
|
||||
store_directory = "/tmp/diple-ai"
|
||||
exclude = ["vendor/", "*.lock"]
|
||||
|
||||
[keybindings.views]
|
||||
ai = ["ctrl+a"]
|
||||
`
|
||||
if err := os.WriteFile(path, []byte(content), 0o600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
config, err := loadConfig(path, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := validateConfig(config); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !config.AI.Enabled || config.AI.Model != "gpt-test" ||
|
||||
config.AI.MaxCalls != 3 || config.AI.Timeout.Duration != 2*time.Minute ||
|
||||
config.AI.StoreDirectory != "/tmp/diple-ai" ||
|
||||
strings.Join(config.KeyBindings.Views.AI, ",") != "ctrl+a" {
|
||||
t.Fatalf("AI config = %#v", config.AI)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateConfigRejectsEmptyKeyBinding(t *testing.T) {
|
||||
config := defaultConfig()
|
||||
config.KeyBindings.Navigation.Down = nil
|
||||
|
||||
Reference in New Issue
Block a user