Skip to content

Commit 1ceaad6

Browse files
committed
test: extend GetTraceWithRawTracesParameter to verify span deduplication based on the raw parameter.
1 parent e7b8143 commit 1ceaad6

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

cmd/jaeger/internal/extension/jaegerquery/internal/http_handler_test.go

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -447,25 +447,51 @@ func TestGetTraceBadTimeWindow(t *testing.T) {
447447
}
448448

449449
func TestGetTraceWithRawTracesParameter(t *testing.T) {
450-
// TODO: extend the test cases to ensure raw traces are obtained
451-
// when the flag is set once the differentiating logic has been implemented
450+
// Create a trace with a duplicate span (span1 and span3 share SpanID=1).
451+
// When raw=false, the standard adjusters deduplicate spans, returning 2.
452+
// When raw=true, no adjusters run, so all 3 spans are returned as-is.
453+
makeMockTraceWithDupe := func() ptrace.Traces {
454+
trace := ptrace.NewTraces()
455+
resources := trace.ResourceSpans().AppendEmpty()
456+
resources.Resource().Attributes().PutStr("service.name", "service")
457+
scopes := resources.ScopeSpans().AppendEmpty()
458+
459+
span1 := scopes.Spans().AppendEmpty()
460+
span1.SetTraceID(v1adapter.FromV1TraceID(mockTraceID))
461+
span1.SetSpanID(v1adapter.FromV1SpanID(model.NewSpanID(1)))
462+
463+
span2 := scopes.Spans().AppendEmpty()
464+
span2.SetTraceID(v1adapter.FromV1TraceID(mockTraceID))
465+
span2.SetSpanID(v1adapter.FromV1SpanID(model.NewSpanID(2)))
466+
467+
span3 := scopes.Spans().AppendEmpty()
468+
span3.SetTraceID(v1adapter.FromV1TraceID(mockTraceID))
469+
span3.SetSpanID(v1adapter.FromV1SpanID(model.NewSpanID(1)))
470+
471+
return trace
472+
}
473+
452474
tests := []struct {
453-
rawTraces bool
475+
rawTraces bool
476+
expectedNumSpans int
454477
}{
455-
{rawTraces: true},
456-
{rawTraces: false},
478+
{rawTraces: true, expectedNumSpans: 3},
479+
{rawTraces: false, expectedNumSpans: 2},
457480
}
458481
for _, test := range tests {
459482
t.Run(fmt.Sprintf("rawTraces=%v", test.rawTraces), func(t *testing.T) {
460483
ts := initializeTestServer(t)
461484
ts.traceReader.On("GetTraces", mock.Anything, mock.MatchedBy(func(params []tracestore.GetTraceParams) bool {
462485
return len(params) == 1 && params[0].TraceID == v1adapter.FromV1TraceID(mockTraceID)
463-
})).Return(tracesIter(makeMockPTrace())).Once()
486+
})).Return(tracesIter(makeMockTraceWithDupe())).Once()
464487

465488
var response structuredResponse
466489
err := getJSON(fmt.Sprintf("%s/api/traces/%s?raw=%v", ts.server.URL, mockTraceID.String(), test.rawTraces), &response)
467490
require.NoError(t, err)
468491
assert.Empty(t, response.Errors)
492+
493+
traces := extractTraces(t, &response)
494+
assert.Len(t, traces[0].Spans, test.expectedNumSpans)
469495
})
470496
}
471497
}

0 commit comments

Comments
 (0)