Skip to content

Commit f14cad5

Browse files
committed
refactor: Convert Sentry header tests to use [Theory] with InlineData for better coverage
1 parent 4818a25 commit f14cad5

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

test/Sentry.AspNetCore.Tests/SentryMiddlewareTests.cs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -682,8 +682,10 @@ public async Task InvokeAsync_InstrumenterOpenTelemetry_SavesScope()
682682
}
683683
}
684684

685-
[Fact]
686-
public async Task InvokeAsync_RequestContainsSentryHeaders_ContinuesTrace()
685+
[Theory]
686+
[InlineData("Sentry-Trace", "4b4d2878507b43d3af7dd8c4ab7a96d9-3cc6fd1337d243de", "4b4d2878507b43d3af7dd8c4ab7a96d9")]
687+
[InlineData("traceparent", "00-4b4d2878507b43d3af7dd8c4ab7a96d8-3cc6fd1337d243de-00", "4b4d2878507b43d3af7dd8c4ab7a96d8")]
688+
public async Task InvokeAsync_RequestContainsSentryHeaders_ContinuesTrace(string headerName, string headerValue, string expectedTraceId)
687689
{
688690
SentryTraceHeader capturedTraceHeader = null;
689691
BaggageHeader capturedBaggageHeader = null;
@@ -698,7 +700,7 @@ public async Task InvokeAsync_RequestContainsSentryHeaders_ContinuesTrace()
698700
var request = Substitute.For<HttpRequest>();
699701
var fakeHeaders = new HeaderDictionary
700702
{
701-
{ "Sentry-Trace", "4b4d2878507b43d3af7dd8c4ab7a96d9-3cc6fd1337d243de"},
703+
{ headerName, headerValue},
702704
{ "Baggage", "sentry-trace_id=4b4d2878507b43d3af7dd8c4ab7a96d9, sentry-public_key=eb18e953812b41c3aeb042e666fd3b5c"},
703705
};
704706
_ = request.Headers.Returns(fakeHeaders);
@@ -710,19 +712,21 @@ public async Task InvokeAsync_RequestContainsSentryHeaders_ContinuesTrace()
710712
_fixture.Hub.Received().ContinueTrace(Arg.Any<SentryTraceHeader>(), Arg.Any<BaggageHeader>());
711713

712714
Assert.NotNull(capturedTraceHeader);
713-
Assert.Equal("4b4d2878507b43d3af7dd8c4ab7a96d9", capturedTraceHeader.TraceId.ToString());
715+
Assert.Equal(expectedTraceId, capturedTraceHeader.TraceId.ToString());
714716
Assert.NotNull(capturedBaggageHeader);
715717
Assert.Equal("sentry-trace_id=4b4d2878507b43d3af7dd8c4ab7a96d9, sentry-public_key=eb18e953812b41c3aeb042e666fd3b5c", capturedBaggageHeader.ToString());
716718
}
717719

718-
[Fact]
719-
public async Task InvokeAsync_RequestContainsSentryHeaders_AddsHeadersAndTransactionContextToItems()
720+
[Theory]
721+
[InlineData("Sentry-Trace", "4b4d2878507b43d3af7dd8c4ab7a96d9-3cc6fd1337d243de", "4b4d2878507b43d3af7dd8c4ab7a96d9")]
722+
[InlineData("traceparent", "00-4b4d2878507b43d3af7dd8c4ab7a96d8-3cc6fd1337d243de-00", "4b4d2878507b43d3af7dd8c4ab7a96d8")]
723+
public async Task InvokeAsync_RequestContainsSentryHeaders_AddsHeadersAndTransactionContextToItems(string headerName, string headerValue, string expectedTraceId)
720724
{
721725
var sut = _fixture.GetSut();
722726
var request = Substitute.For<HttpRequest>();
723727
var fakeHeaders = new HeaderDictionary
724728
{
725-
{ "Sentry-Trace", "4b4d2878507b43d3af7dd8c4ab7a96d9-3cc6fd1337d243de"},
729+
{ headerName, headerValue},
726730
{ "Baggage", "sentry-trace_id=4b4d2878507b43d3af7dd8c4ab7a96d9, sentry-public_key=eb18e953812b41c3aeb042e666fd3b5c"},
727731
};
728732
var contextItems = new Dictionary<object, object>();
@@ -741,22 +745,24 @@ public async Task InvokeAsync_RequestContainsSentryHeaders_AddsHeadersAndTransac
741745

742746
var traceHeader = contextItems[SentryMiddleware.TraceHeaderItemKey] as SentryTraceHeader;
743747
Assert.NotNull(traceHeader);
744-
Assert.Equal("4b4d2878507b43d3af7dd8c4ab7a96d9", traceHeader.TraceId.ToString());
748+
Assert.Equal(expectedTraceId, traceHeader.TraceId.ToString());
745749
var baggageHeader = contextItems[SentryMiddleware.BaggageHeaderItemKey] as BaggageHeader;
746750
Assert.NotNull(baggageHeader);
747751
Assert.Equal("sentry-trace_id=4b4d2878507b43d3af7dd8c4ab7a96d9, sentry-public_key=eb18e953812b41c3aeb042e666fd3b5c", baggageHeader.ToString());
748752
var transactionContext = contextItems[SentryMiddleware.BaggageHeaderItemKey] as BaggageHeader;
749753
Assert.NotNull(transactionContext);
750754
}
751755

752-
[Fact]
753-
public async Task InvokeAsync_InvokingWithTheSameContextTwice_DoesNotThrow()
756+
[Theory]
757+
[InlineData("Sentry-Trace", "4b4d2878507b43d3af7dd8c4ab7a96d9-3cc6fd1337d243de")]
758+
[InlineData("traceparent", "00-4b4d2878507b43d3af7dd8c4ab7a96d8-3cc6fd1337d243de-01")]
759+
public async Task InvokeAsync_InvokingWithTheSameContextTwice_DoesNotThrow(string headerName, string headerValue)
754760
{
755761
var sut = _fixture.GetSut();
756762
var request = Substitute.For<HttpRequest>();
757763
var fakeHeaders = new HeaderDictionary
758764
{
759-
{ "Sentry-Trace", "4b4d2878507b43d3af7dd8c4ab7a96d9-3cc6fd1337d243de"},
765+
{ headerName, headerValue},
760766
{ "Baggage", "sentry-trace_id=4b4d2878507b43d3af7dd8c4ab7a96d9, sentry-public_key=eb18e953812b41c3aeb042e666fd3b5c"},
761767
};
762768
var contextItems = new Dictionary<object, object>();

0 commit comments

Comments
 (0)