@@ -109,7 +109,7 @@ class RequestPathParameterCodingTests: XCTestCase {
109109 guard let urlRequest = encodeRequest ( request: request) else {
110110 return
111111 }
112- XCTAssertEqual ( urlRequest. url? . path , " /some%20name " )
112+ XCTAssertEqual ( urlRequest. url? . absoluteString , " https://local.url /some%20name" )
113113 }
114114
115115 func testEncoding_stringParameterCustomNaming_shouldUseCustomName( ) {
@@ -125,7 +125,7 @@ class RequestPathParameterCodingTests: XCTestCase {
125125 guard let urlRequest = encodeRequest ( request: request) else {
126126 return
127127 }
128- XCTAssertEqual ( urlRequest. url? . path , " /some%20name " )
128+ XCTAssertEqual ( urlRequest. url? . absoluteString , " https://local.url /some%20name" )
129129 }
130130
131131 func testEncoding_intParameterCustomNaming_shouldUseCustomName( ) {
@@ -205,6 +205,22 @@ class RequestPathParameterCodingTests: XCTestCase {
205205 XCTAssertEqual ( urlRequest. url? . path, " /321 " )
206206 }
207207
208+ func testEncoding_paramValueContainsUnescapedCharacters_shouldEscapeCharacters( ) {
209+ struct Request : Encodable {
210+
211+ typealias Response = EmptyResponse
212+
213+ @RequestPath var path = " /{id} "
214+ @RequestPathParameter var id : String ?
215+ }
216+ var request = Request ( )
217+ request. id = " {ABC} "
218+ guard let urlRequest = encodeRequest ( request: request) else {
219+ return
220+ }
221+ XCTAssertEqual ( urlRequest. url? . absoluteString, " https://local.url/%7BABC%7D " )
222+ }
223+
208224 internal func encodeRequest< T: Encodable > ( request: T , file: StaticString = #filePath, line: UInt = #line) -> URLRequest ? {
209225 let encoder = RequestEncoder ( baseURL: baseURL)
210226 let encoded : URLRequest
0 commit comments