mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-07-01 10:15:37 +02:00
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package multiagent
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestHitlRejectToolResult_toolSearchIsJSON(t *testing.T) {
|
|
raw := HitlRejectToolResult("tool_search", "rejected by user: timeout")
|
|
var payload toolSearchHitlRejectPayload
|
|
if err := json.Unmarshal([]byte(raw), &payload); err != nil {
|
|
t.Fatalf("unmarshal: %v", err)
|
|
}
|
|
if len(payload.SelectedTools) != 0 {
|
|
t.Fatalf("expected empty selectedTools, got %v", payload.SelectedTools)
|
|
}
|
|
if !payload.HitlRejected {
|
|
t.Fatal("expected _hitlRejected true")
|
|
}
|
|
if !strings.Contains(payload.Reason, "timeout") {
|
|
t.Fatalf("reason=%q", payload.Reason)
|
|
}
|
|
}
|
|
|
|
func TestHitlRejectToolResult_otherToolKeepsLegacyText(t *testing.T) {
|
|
raw := HitlRejectToolResult("nmap", "too risky")
|
|
if strings.HasPrefix(raw, "{") {
|
|
t.Fatalf("expected legacy text, got %q", raw)
|
|
}
|
|
if !strings.HasPrefix(raw, "[HITL Reject]") {
|
|
t.Fatalf("expected [HITL Reject] prefix, got %q", raw)
|
|
}
|
|
}
|
|
|
|
func TestMergeHitlExemptMetaTools_includesToolSearch(t *testing.T) {
|
|
merged := MergeHitlExemptMetaTools([]string{"read_file"})
|
|
found := false
|
|
for _, name := range merged {
|
|
if IsToolSearchTool(name) {
|
|
found = true
|
|
break
|
|
}
|
|
}
|
|
if !found {
|
|
t.Fatalf("tool_search missing from %v", merged)
|
|
}
|
|
}
|