mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-05 13:29:44 +02:00
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package daemon
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestDeriveTaskThreadNamePrefersClaimedThreadName(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
got := deriveTaskThreadName(Task{
|
|
ThreadName: " Fix login redirect ",
|
|
TriggerCommentContent: "please look at this comment",
|
|
ChatMessage: "chat fallback",
|
|
})
|
|
if got != "Fix login redirect" {
|
|
t.Fatalf("thread name = %q, want %q", got, "Fix login redirect")
|
|
}
|
|
}
|
|
|
|
func TestDeriveTaskThreadNameFallsBackToTaskContext(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
got := deriveTaskThreadName(Task{QuickCreatePrompt: "create issue for billing sync"})
|
|
if got != "create issue for billing sync" {
|
|
t.Fatalf("thread name = %q, want quick-create prompt", got)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeThreadNameCollapsesWhitespaceAndTruncates(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
input := "first line\n\t" + strings.Repeat("x", codexThreadNameMaxRunes+20)
|
|
got := normalizeThreadName(input, codexThreadNameMaxRunes)
|
|
if strings.ContainsAny(got, "\n\t") {
|
|
t.Fatalf("thread name still contains raw whitespace: %q", got)
|
|
}
|
|
if len([]rune(got)) != codexThreadNameMaxRunes {
|
|
t.Fatalf("thread name rune length = %d, want %d", len([]rune(got)), codexThreadNameMaxRunes)
|
|
}
|
|
if !strings.HasSuffix(got, "...") {
|
|
t.Fatalf("thread name should end with ellipsis marker, got %q", got)
|
|
}
|
|
}
|