File tree Expand file tree Collapse file tree 3 files changed +15
-2
lines changed
Sources/NIOInstrumentation
Tests/NIOInstrumentationTests Expand file tree Collapse file tree 3 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -23,11 +23,11 @@ public struct HTTPHeadersExtractor: ExtractorProtocol {
23
23
public init ( ) { }
24
24
25
25
public func extract( key: String , from headers: HTTPHeaders ) -> String ? {
26
- return headers
26
+ let headers = headers
27
27
. lazy
28
28
. filter { $0. name == key }
29
29
. map { $0. value }
30
- . joined ( separator: " , " )
30
+ return headers . isEmpty ? nil : headers . joined ( separator: " , " )
31
31
}
32
32
}
33
33
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ extension HTTPHeadersCarrierTests {
26
26
static var allTests : [ ( String , ( HTTPHeadersCarrierTests ) -> ( ) throws -> Void ) ] {
27
27
return [
28
28
( " testExtractSingleHeader " , testExtractSingleHeader) ,
29
+ ( " testExtractNoHeader " , testExtractNoHeader) ,
29
30
( " testExtractMultipleHeadersOfSameName " , testExtractMultipleHeadersOfSameName) ,
30
31
]
31
32
}
Original file line number Diff line number Diff line change @@ -35,6 +35,18 @@ final class HTTPHeadersCarrierTests: XCTestCase {
35
35
)
36
36
}
37
37
38
+ func testExtractNoHeader( ) {
39
+ let extractor = HTTPHeadersExtractor ( )
40
+
41
+ XCTAssertNil ( extractor. extract ( key: " test " , from: . init( ) ) )
42
+ }
43
+
44
+ func testExtractEmptyHeader( ) {
45
+ let extractor = HTTPHeadersExtractor ( )
46
+
47
+ XCTAssertEqual ( extractor. extract ( key: " test " , from: [ " test " : " " ] ) , " " )
48
+ }
49
+
38
50
func testExtractMultipleHeadersOfSameName( ) {
39
51
let headers : HTTPHeaders = [
40
52
" tracestate " : " vendorname1=opaqueValue1 " ,
You can’t perform that action at this time.
0 commit comments