Skip to content

Commit 498ae3a

Browse files
committed
Add tests for initialization span tracing
1 parent bbb9d73 commit 498ae3a

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

contrib/mark3labs/mcp-go/hooks_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,35 @@ func TestIntegrationSessionInitialize(t *testing.T) {
8787
assert.Equal(t, "2.0", resp["jsonrpc"])
8888
assert.Equal(t, float64(1), resp["id"])
8989
assert.NotNil(t, resp["result"])
90+
91+
// Verify LLMObs task span was created for initialization
92+
spans := tt.WaitForLLMObsSpans(t, 1)
93+
require.Len(t, spans, 1)
94+
95+
taskSpan := spans[0]
96+
assert.Equal(t, "mcp.initialize", taskSpan.Name)
97+
assert.Equal(t, "task", taskSpan.Meta["span.kind"])
98+
99+
// Verify input/output annotations exist
100+
assert.Contains(t, taskSpan.Meta, "input")
101+
assert.Contains(t, taskSpan.Meta, "output")
102+
103+
// Verify input contains the initialize request data
104+
inputMeta := taskSpan.Meta["input"]
105+
assert.NotNil(t, inputMeta)
106+
inputJSON, err := json.Marshal(inputMeta)
107+
require.NoError(t, err)
108+
inputStr := string(inputJSON)
109+
assert.Contains(t, inputStr, "2024-11-05") // protocol version
110+
assert.Contains(t, inputStr, "test-client")
111+
112+
// Verify output contains the result
113+
outputMeta := taskSpan.Meta["output"]
114+
assert.NotNil(t, outputMeta)
115+
outputJSON, err := json.Marshal(outputMeta)
116+
require.NoError(t, err)
117+
outputStr := string(outputJSON)
118+
assert.Contains(t, outputStr, "serverInfo")
90119
}
91120

92121
func TestIntegrationToolCallSuccess(t *testing.T) {

0 commit comments

Comments
 (0)