mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-05-28 10:11:37 +02:00
41 lines
1014 B
Go
41 lines
1014 B
Go
package project
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"cyberstrike-ai/internal/database"
|
|
)
|
|
|
|
func TestBuildScopeBlock_targetsExcludeNotes(t *testing.T) {
|
|
proj := &database.Project{
|
|
ID: "p1",
|
|
Name: "Acme",
|
|
ScopeJSON: `{"targets":["https://app.example.com"],"exclude":["*.cdn.example.com"],"notes":"仅 Web 层"}`,
|
|
}
|
|
block := BuildScopeBlock(proj)
|
|
if !strings.Contains(block, "https://app.example.com") {
|
|
t.Fatalf("missing target: %s", block)
|
|
}
|
|
if !strings.Contains(block, "cdn.example.com") {
|
|
t.Fatalf("missing exclude: %s", block)
|
|
}
|
|
if !strings.Contains(block, "仅 Web 层") {
|
|
t.Fatalf("missing notes: %s", block)
|
|
}
|
|
}
|
|
|
|
func TestBuildScopeBlock_empty(t *testing.T) {
|
|
if BuildScopeBlock(&database.Project{Name: "X"}) != "" {
|
|
t.Fatal("expected empty")
|
|
}
|
|
}
|
|
|
|
func TestBuildScopeBlock_invalidJSON(t *testing.T) {
|
|
proj := &database.Project{Name: "X", ScopeJSON: `{not json`}
|
|
block := BuildScopeBlock(proj)
|
|
if !strings.Contains(block, "非合法 JSON") {
|
|
t.Fatalf("unexpected: %s", block)
|
|
}
|
|
}
|