Skip to content

Commit

Permalink
fix: Consider an empty string header value to be present
Browse files Browse the repository at this point in the history
  • Loading branch information
jbelkins committed Sep 24, 2024
1 parent 5214bdd commit ba039df
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 15 deletions.
4 changes: 4 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -280,5 +280,9 @@ let package = Package(
name: "SmithyRetriesTests",
dependencies: ["ClientRuntime", "SmithyRetriesAPI", "SmithyRetries", "SmithyTestUtil"]
),
.testTarget(
name: "SmithyHTTPAPITests",
dependencies: ["SmithyHTTPAPI"]
),
].compactMap { $0 }
)
10 changes: 1 addition & 9 deletions Sources/SmithyHTTPAPI/Headers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -138,15 +138,7 @@ public struct Headers: Sendable {
}

public func exists(name: String) -> Bool {
guard headers.index(of: name) != nil else {
return false
}

guard let value = value(for: name) else {
return false
}

return !value.isEmpty
headers.index(of: name) != nil
}

/// The dictionary representation of all headers.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//

import SmithyHTTPAPI
import XCTest
import ClientRuntime

class HttpHeadersTests: XCTestCase {
class HeadersTests: XCTestCase {

var headersAsDictionaryWithArray = [String: [String]]()
var headersAsDictionary = [String: String]()
Expand Down Expand Up @@ -123,4 +124,21 @@ class HttpHeadersTests: XCTestCase {
XCTAssertEqual(headerA, headerB)
XCTAssertEqual(headerA.hashValue, headerB.hashValue)
}

// MARK: - exists()

func test_exists_trueIfHeaderExists() {
let subject = Headers(["a": "abc"])
XCTAssertTrue(subject.exists(name: "a"))
}

func test_exists_falseIfHeaderDoesntExist() {
let subject = Headers(["a": "abc"])
XCTAssertFalse(subject.exists(name: "b"))
}

func test_exists_trueIfHeaderValueIsEmptyString() {
let subject = Headers(["a": ""])
XCTAssertTrue(subject.exists(name: "a"))
}
}

0 comments on commit ba039df

Please sign in to comment.