diff --git a/Sources/FoundationEssentials/URL/URL.swift b/Sources/FoundationEssentials/URL/URL.swift index 61285c4af..75441f482 100644 --- a/Sources/FoundationEssentials/URL/URL.swift +++ b/Sources/FoundationEssentials/URL/URL.swift @@ -1513,6 +1513,7 @@ extension URL { @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *) public func appending(queryItems: [URLQueryItem]) -> URL { guard var c = URLComponents(url: self, resolvingAgainstBaseURL: true) else { return self } + guard queryItems.isEmpty == false else { return self } var newItems = c.queryItems ?? [] newItems.append(contentsOf: queryItems) c.queryItems = newItems diff --git a/Tests/FoundationEssentialsTests/URLTests.swift b/Tests/FoundationEssentialsTests/URLTests.swift index 344454a67..8592ac0ab 100644 --- a/Tests/FoundationEssentialsTests/URLTests.swift +++ b/Tests/FoundationEssentialsTests/URLTests.swift @@ -666,6 +666,12 @@ private struct URLTests { ) // Append queryItems + let emptyQueryItems: [URLQueryItem] = [] + #expect( + base.appending(queryItems: emptyQueryItems).absoluteString == + "https://www.example.com" + ) + let queryItems = [ URLQueryItem(name: "id", value: "42"), URLQueryItem(name: "color", value: "blue")