Files
tutti/packages/agent/host/goal_control_parse_test.go
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

30 lines
1.2 KiB
Go

package agenthost
import "testing"
func TestParseTypedGoalControlUsesSemanticContentAndUnicodeWhitespace(t *testing.T) {
tests := []struct {
name string
content string
want TypedGoalControl
wantOK bool
}{
{name: "space", content: "/goal clear", want: TypedGoalControl{Action: "clear"}, wantOK: true},
{name: "tab", content: "/goal\tclear", want: TypedGoalControl{Action: "clear"}, wantOK: true},
{name: "newline", content: "/goal\nship it", want: TypedGoalControl{Action: "set", Objective: "ship it"}, wantOK: true},
{name: "unicode space", content: "/goal\u3000ship it", want: TypedGoalControl{Action: "set", Objective: "ship it"}, wantOK: true},
{name: "ordinary prompt cannot create control", content: "ordinary prompt", wantOK: false},
{name: "bare goal is not a mutation", content: "/goal", wantOK: false},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
got, ok := ParseTypedGoalControl([]PromptContentBlock{{
Type: "text", Text: test.content,
}}, false)
if ok != test.wantOK || got != test.want {
t.Fatalf("ParseTypedGoalControl() = (%#v, %v), want (%#v, %v)", got, ok, test.want, test.wantOK)
}
})
}
}