validate_test.go
1 package agents 2 3 import "testing" 4 5 func TestValidateCommandName(t *testing.T) { 6 // Valid names 7 for _, name := range []string{"review", "deploy", "my-cmd"} { 8 if err := ValidateCommandName(name); err != nil { 9 t.Errorf("expected valid: %q, got %v", name, err) 10 } 11 } 12 // Built-in collision 13 for _, name := range []string{"help", "quit", "copy", "search"} { 14 if err := ValidateCommandName(name); err == nil { 15 t.Errorf("expected error for built-in %q", name) 16 } 17 } 18 // Invalid charset 19 if err := ValidateCommandName("UPPER"); err == nil { 20 t.Error("expected error for uppercase") 21 } 22 } 23 24 func TestValidateToolsFilter(t *testing.T) { 25 // nil is ok 26 if err := ValidateToolsFilter(nil); err != nil { 27 t.Errorf("nil should be valid: %v", err) 28 } 29 // allow only is ok 30 if err := ValidateToolsFilter(&AgentToolsFilter{Allow: []string{"bash"}}); err != nil { 31 t.Errorf("allow-only should be valid: %v", err) 32 } 33 // both set is error 34 if err := ValidateToolsFilter(&AgentToolsFilter{Allow: []string{"a"}, Deny: []string{"b"}}); err == nil { 35 t.Error("expected error when both allow and deny set") 36 } 37 }