49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package memory
|
|
|
|
import "testing"
|
|
|
|
func TestBuiltinToolDefs(t *testing.T) {
|
|
defs := BuiltinToolDefs()
|
|
if len(defs) != 5 {
|
|
t.Fatalf("BuiltinToolDefs() returned %d defs, want 5", len(defs))
|
|
}
|
|
|
|
names := map[string]bool{}
|
|
for _, d := range defs {
|
|
names[d.Name] = true
|
|
}
|
|
|
|
expected := []string{"memory_save", "memory_recall", "memory_delete", "memory_update", "memory_list"}
|
|
for _, name := range expected {
|
|
if !names[name] {
|
|
t.Errorf("missing %s tool definition", name)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsBuiltinTool(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
tool string
|
|
want bool
|
|
}{
|
|
{name: "memory_save", tool: "memory_save", want: true},
|
|
{name: "memory_recall", tool: "memory_recall", want: true},
|
|
{name: "memory_delete", tool: "memory_delete", want: true},
|
|
{name: "memory_update", tool: "memory_update", want: true},
|
|
{name: "memory_list", tool: "memory_list", want: true},
|
|
{name: "unknown tool", tool: "unknown", want: false},
|
|
{name: "empty string", tool: "", want: false},
|
|
{name: "partial match", tool: "memory_", want: false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := IsBuiltinTool(tt.tool)
|
|
if got != tt.want {
|
|
t.Errorf("IsBuiltinTool(%q) = %v, want %v", tt.tool, got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|