Skip to content

Commit 4a53edd

Browse files
Construct request URL in APIClient
Remove the optional `url` requirement from HTTPRequestProtocol and the `url` computed property extension. Move URL construction into APIClient by combining `baseURL` and `path` (using `appendingPathComponent`). Remove the BadURLRequest mock and the unit test that asserted a `.badURL` error, since requests no longer expose a nullable URL. This centralizes URL creation and simplifies request implementations.
1 parent 591f1ca commit 4a53edd

File tree

5 files changed

+1
-32
lines changed

5 files changed

+1
-32
lines changed

Sources/Kite/APIClient.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,7 @@ public final class APIClient: Sendable {
3838
deserializer: any ResponseDataDeserializer<T>,
3939
additionalHeaders: [String: String]
4040
) async throws -> (T, URLResponse) {
41-
guard let url = request.url else {
42-
throw URLError(.badURL)
43-
}
44-
41+
let url = request.baseURL.appendingPathComponent(request.path)
4542
var urlRequest = URLRequest(url: url)
4643
urlRequest.httpMethod = request.method.rawValue
4744

Sources/Kite/Extensions/HTTPRequestProtocol+Extensions.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import Foundation
22

33
extension HTTPRequestProtocol {
4-
public var url: URL? {
5-
baseURL.appendingPathComponent(self.path)
6-
}
7-
84
public var path: String {
95
""
106
}

Sources/Kite/Protocols/HTTPRequestProtocol.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import Foundation
22

33
public protocol HTTPRequestProtocol {
44
var baseURL: URL { get }
5-
var url: URL? { get }
65
var path: String { get }
76
var parameters: [String: any Sendable]? { get }
87
var method: HTTPMethod { get }

Tests/KiteTests/APIClientTests/APIClientTests.swift

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -127,19 +127,6 @@ struct APIClientTests {
127127
_ = try await client.execute(request: dummyRequest)
128128
}
129129

130-
@Test("execute(request:) throws badURL when url is nil")
131-
func testExecuteThrowsOnBadURL() async throws {
132-
let client = APIClient(urlSession: makeMockSession())
133-
let dummyRequest = BadURLRequest()
134-
135-
await #expect(throws: URLError.self) {
136-
_ = try await client.execute(
137-
request: dummyRequest,
138-
deserializer: VoidDeserializer()
139-
)
140-
}
141-
}
142-
143130
@Test("execute(request:) throws unacceptableStatusCode on non-2xx response")
144131
func testExecuteThrowsOnHTTPErrorStatusCode() async throws {
145132
let client = APIClient(urlSession: makeMockSession())

Tests/KiteTests/Mocks/Requests/BadURLRequest.swift

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)