MCPcopy
hub / github.com/docker/docker-agent / TestSessionTracking

Function TestSessionTracking

pkg/telemetry/telemetry_test.go:109–146  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

107}
108
109func TestSessionTracking(t *testing.T) {
110 t.Parallel()
111 logger := slog.New(slog.NewTextHandler(os.Stderr, nil))
112 mockHTTP := NewMockHTTPClient()
113 client := newClient(t.Context(), logger, true, true, "test-version", mockHTTP.Client)
114
115 client.endpoint = "https://test-session-tracking.com/api"
116 client.apiKey = "test-session-key"
117 client.header = "test-header"
118
119 ctx := t.Context()
120
121 sessionID := client.RecordSessionStart(ctx, "test-agent", "test-session-id")
122 assert.NotEmpty(t, sessionID)
123
124 // Record some activity
125 client.RecordToolCall(ctx, "test-tool", "session-id", "agent-name", time.Millisecond, nil)
126 client.RecordTokenUsage(ctx, "test-model", 100, 50, 0.5)
127
128 // End session
129 client.RecordSessionEnd(ctx)
130
131 // Multiple ends should be safe
132 client.RecordSessionEnd(ctx)
133
134 require.Eventually(t, func() bool {
135 return mockHTTP.GetRequestCount() > 0
136 }, time.Second, 5*time.Millisecond, "Expected HTTP requests to be made for session tracking events")
137
138 requestCount := mockHTTP.GetRequestCount()
139 t.Logf("Session tracking HTTP requests captured: %d", requestCount)
140
141 requests := mockHTTP.GetRequests()
142 for i, req := range requests {
143 assert.Equal(t, http.MethodPost, req.Method, "Request %d: Expected POST method", i)
144 assert.Equal(t, "test-session-key", req.Header.Get("test-header"), "Request %d: Expected test-header test-session-key", i)
145 }
146}
147
148func TestCommandTracking(t *testing.T) {
149 t.Parallel()

Callers

nothing calls this directly

Calls 11

GetRequestCountMethod · 0.95
GetRequestsMethod · 0.95
NewMockHTTPClientFunction · 0.85
newClientFunction · 0.85
ContextMethod · 0.80
RecordSessionStartMethod · 0.65
RecordToolCallMethod · 0.65
RecordTokenUsageMethod · 0.65
RecordSessionEndMethod · 0.65
GetMethod · 0.65
NewMethod · 0.45

Tested by

no test coverage detected