Files
agent-dashboard/internal/config/config_test.go
T
laily 5fecb6d215 feat: implement agent-notify CLI with hooks and tmux passthrough
Add OSC 777 notification sender, Cursor/Claude hook adapters,
config/install commands, and README for Ghostty + tmux setup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 11:19:34 +08:00

64 lines
1.2 KiB
Go

package config
import (
"os"
"path/filepath"
"testing"
)
func TestDefaultConfig(t *testing.T) {
cfg := Default()
if !cfg.Events.Stop {
t.Fatal("expected stop=true by default")
}
if cfg.Events.Idle {
t.Fatal("expected idle=false by default")
}
if cfg.Notify.Protocol != "osc777" {
t.Fatalf("expected osc777, got %q", cfg.Notify.Protocol)
}
}
func TestLoadFromFile(t *testing.T) {
dir := t.TempDir()
path := filepath.Join(dir, "config.toml")
content := `
[events]
stop = false
tool = true
[notify]
body_stop = "custom stop"
`
if err := os.WriteFile(path, []byte(content), 0644); err != nil {
t.Fatal(err)
}
cfg, err := Load(path)
if err != nil {
t.Fatal(err)
}
if cfg.Events.Stop {
t.Fatal("expected stop=false")
}
if !cfg.Events.Tool {
t.Fatal("expected tool=true")
}
if cfg.Notify.BodyStop != "custom stop" {
t.Fatalf("got %q", cfg.Notify.BodyStop)
}
}
func TestEventEnabled(t *testing.T) {
cfg := Default()
if !cfg.EventEnabled("stop") {
t.Fatal("expected stop enabled by default")
}
if !cfg.EventEnabled("STOP") {
t.Fatal("expected case-insensitive match")
}
cfg.Events.Stop = false
if cfg.EventEnabled("stop") {
t.Fatal("expected stop disabled")
}
}