MCPcopy Create free account
hub / github.com/coder/coder / Test_extractManualTitleTurns

Function Test_extractManualTitleTurns

coderd/x/chatd/quickgen_internal_test.go:27–89  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

25)
26
27func Test_extractManualTitleTurns(t *testing.T) {
28 t.Parallel()
29
30 tests := []struct {
31 name string
32 messages []database.ChatMessage
33 want []manualTitleTurn
34 }{
35 {
36 name: "filters to visible user and assistant text turns",
37 messages: []database.ChatMessage{
38 mustChatMessage(t, database.ChatMessageRoleUser, database.ChatMessageVisibilityBoth,
39 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeText, Text: " review quickgen helpers "},
40 ),
41 mustChatMessage(t, database.ChatMessageRoleAssistant, database.ChatMessageVisibilityBoth,
42 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeText, Text: " drafted a plan "},
43 ),
44 mustChatMessage(t, database.ChatMessageRoleSystem, database.ChatMessageVisibilityBoth,
45 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeText, Text: "system prompt"},
46 ),
47 mustChatMessage(t, database.ChatMessageRoleTool, database.ChatMessageVisibilityBoth,
48 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeText, Text: "tool output"},
49 ),
50 mustChatMessage(t, database.ChatMessageRoleUser, database.ChatMessageVisibilityModel,
51 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeText, Text: "hidden model note"},
52 ),
53 mustChatMessage(t, database.ChatMessageRoleUser, database.ChatMessageVisibilityBoth,
54 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeText, Text: " "},
55 ),
56 mustChatMessage(t, database.ChatMessageRoleAssistant, database.ChatMessageVisibilityBoth,
57 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeReasoning, Text: "reasoning only"},
58 ),
59 mustChatMessage(t, database.ChatMessageRoleUser, database.ChatMessageVisibilityBoth,
60 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeFile, MediaType: "text/plain"},
61 ),
62 },
63 want: []manualTitleTurn{
64 {role: "user", text: "review quickgen helpers"},
65 {role: "assistant", text: "drafted a plan"},
66 },
67 },
68 {
69 name: "reuses text extraction for multi-part content",
70 messages: []database.ChatMessage{
71 mustChatMessage(t, database.ChatMessageRoleUser, database.ChatMessageVisibilityBoth,
72 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeText, Text: "first chunk"},
73 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeReasoning, Text: "skip me"},
74 codersdk.ChatMessagePart{Type: codersdk.ChatMessagePartTypeText, Text: " second chunk "},
75 ),
76 },
77 want: []manualTitleTurn{{role: "user", text: "first chunk second chunk"}},
78 },
79 }
80
81 for _, tt := range tests {
82 t.Run(tt.name, func(t *testing.T) {
83 t.Parallel()
84

Callers

nothing calls this directly

Calls 4

mustChatMessageFunction · 0.85
extractManualTitleTurnsFunction · 0.85
RunMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected