MCPcopy
hub / github.com/grafana/tempo / TestHandleGetAttributeValues

Function TestHandleGetAttributeValues

modules/frontend/mcp_tools_test.go:371–436  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

369}
370
371func TestHandleGetAttributeValues(t *testing.T) {
372 server, callAndTestResults := testFrontend()
373
374 tests := []struct {
375 name string
376 request mcp.CallToolRequest
377 expected expectedResult
378 }{
379 {
380 name: "name only",
381 request: callToolRequest(map[string]any{
382 "name": "service.name",
383 }),
384 expected: expectedResult{
385 path: "/api/v2/search/tag/service.name/values",
386 params: map[string]string{},
387 meta: map[string]any{
388 "type": "attribute-values",
389 "encoding": "json",
390 "version": "2",
391 },
392 },
393 },
394 {
395 name: "no name",
396 request: callToolRequest(map[string]any{}),
397 expected: expectedResult{
398 err: "required argument \"name\" not found",
399 },
400 },
401 {
402 name: "name + filter query",
403 request: callToolRequest(map[string]any{
404 "name": "service.name",
405 "filter-query": "{ span.status = \"error\" }",
406 }),
407 expected: expectedResult{
408 path: "/api/v2/search/tag/service.name/values",
409 params: map[string]string{
410 "q": "{ span.status = \"error\" }",
411 },
412 meta: map[string]any{
413 "type": "attribute-values",
414 "encoding": "json",
415 "version": "2",
416 },
417 },
418 },
419 {
420 name: "invalid filter",
421 request: callToolRequest(map[string]any{
422 "name": "service.name",
423 "filter-query": "{ foo bar baz }",
424 }),
425 expected: expectedResult{
426 err: "filter-query invalid. It must have a single spanset filter with &&/|| conditions like { <cond> && <cond> } or { <cond> || <cond> }",
427 },
428 },

Callers

nothing calls this directly

Calls 3

testFrontendFunction · 0.85
callToolRequestFunction · 0.85
RunMethod · 0.45

Tested by

no test coverage detected