/ internal / agents / validate_test.go
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  }