MCPcopy Create free account
hub / github.com/coder/aibridge / TestScanForCorrelatingToolCallID

Function TestScanForCorrelatingToolCallID

intercept/messages/base_test.go:20–76  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

18)
19
20func TestScanForCorrelatingToolCallID(t *testing.T) {
21 t.Parallel()
22
23 tests := []struct {
24 name string
25 requestBody string
26 expected *string
27 }{
28 {
29 name: "no messages field",
30 requestBody: `{}`,
31 expected: nil,
32 },
33 {
34 name: "messages string",
35 requestBody: `{"messages":"test"}`,
36 expected: nil,
37 },
38 {
39 name: "empty messages array",
40 requestBody: `{"messages":[]}`,
41 expected: nil,
42 },
43 {
44 name: "last message has no tool result blocks",
45 requestBody: `{"messages":[{"role":"user","content":"hello"}]}`,
46 expected: nil,
47 },
48 {
49 name: "single tool result block",
50 requestBody: `{"messages":[{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_abc","content":"result"}]}]}`,
51 expected: utils.PtrTo("toolu_abc"),
52 },
53 {
54 name: "multiple tool result blocks returns last",
55 requestBody: `{"messages":[{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_first","content":"first"},{"type":"text","text":"ignored"},{"type":"tool_result","tool_use_id":"toolu_second","content":"second"}]}]}`,
56 expected: utils.PtrTo("toolu_second"),
57 },
58 {
59 name: "last message is not a tool result",
60 requestBody: `{"messages":[{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_first","content":"first"}]},{"role":"user","content":"some text"}]}`,
61 expected: nil,
62 },
63 }
64
65 for _, tc := range tests {
66 t.Run(tc.name, func(t *testing.T) {
67 t.Parallel()
68
69 base := &interceptionBase{
70 reqPayload: mustMessagesPayload(t, tc.requestBody),
71 }
72
73 require.Equal(t, tc.expected, base.CorrelatingToolCallID())
74 })
75 }
76}
77

Callers

nothing calls this directly

Calls 3

CorrelatingToolCallIDMethod · 0.95
PtrToFunction · 0.92
mustMessagesPayloadFunction · 0.85

Tested by

no test coverage detected