@@ -29,8 +29,7 @@ final class HeaderExtractingHTTPServerHandlerTests: XCTestCase {
29
29
30
30
let traceID = " abc "
31
31
let handler = HeaderExtractingHTTPServerHandler ( )
32
- let loop = EmbeddedEventLoop ( )
33
- let channel = EmbeddedChannel ( handler: handler, loop: loop)
32
+ let channel = EmbeddedChannel ( handler: handler, loop: EmbeddedEventLoop ( ) )
34
33
35
34
var requestHead = HTTPRequestHead ( version: . init( major: 1 , minor: 1 ) , method: . GET, uri: " / " )
36
35
requestHead. headers = [ FakeTracer . headerName: traceID]
@@ -42,6 +41,25 @@ final class HeaderExtractingHTTPServerHandlerTests: XCTestCase {
42
41
XCTAssertEqual ( channel. _channelCore. baggage [ FakeTracer . TraceIDKey. self] , traceID)
43
42
}
44
43
44
+ func test_respects_previous_baggage_values( ) throws {
45
+ InstrumentationSystem . bootstrapInternal ( FakeTracer ( ) )
46
+
47
+ let traceID = " abc "
48
+ let handler = HeaderExtractingHTTPServerHandler ( )
49
+ let channel = EmbeddedChannel ( handler: handler, loop: EmbeddedEventLoop ( ) )
50
+ channel. _channelCore. baggage [ TestKey . self] = " test "
51
+
52
+ var requestHead = HTTPRequestHead ( version: . init( major: 1 , minor: 1 ) , method: . GET, uri: " / " )
53
+ requestHead. headers = [ FakeTracer . headerName: traceID]
54
+
55
+ XCTAssertNil ( channel. _channelCore. baggage [ FakeTracer . TraceIDKey. self] )
56
+
57
+ try channel. writeInbound ( HTTPServerRequestPart . head ( requestHead) )
58
+
59
+ XCTAssertEqual ( channel. _channelCore. baggage [ FakeTracer . TraceIDKey. self] , traceID)
60
+ XCTAssertEqual ( channel. _channelCore. baggage [ TestKey . self] , " test " )
61
+ }
62
+
45
63
func test_forwards_all_read_events( ) throws {
46
64
InstrumentationSystem . bootstrapInternal ( FakeTracer ( ) )
47
65
@@ -59,3 +77,7 @@ final class HeaderExtractingHTTPServerHandlerTests: XCTestCase {
59
77
XCTAssertNotNil ( try channel. readInbound ( as: HTTPServerRequestPart . self) )
60
78
}
61
79
}
80
+
81
+ private enum TestKey : Baggage . Key {
82
+ typealias Value = String
83
+ }
0 commit comments