Mockingjay icon indicating copy to clipboard operation
Mockingjay copied to clipboard

Support for Swift 4 multiline json string

Open kdawgwilk opened this issue 8 years ago • 1 comments

let myJsonString = """
{
    "example": "value"
}
"""
stub(http(.post, uri: "*/route"), jsonString(myJsonString))

kdawgwilk avatar Nov 21 '17 22:11 kdawgwilk

Implementation would be something like this inside the Builders.swift:

public func jsonString(_ jsonString: String, status: Int = 200, headers: [String:String]? = nil) -> (_ request: URLRequest) -> Response {
  return { (request:URLRequest) in
    var headers = headers ?? [String:String]()
    if headers["Content-Type"] == nil {
      headers["Content-Type"] = "application/json; charset=utf-8"
    }
    let data = jsonString.data(using: .utf8)!
    
    return http(status, headers: headers, download: .content(data))(request)
  }
}

kdawgwilk avatar Nov 21 '17 22:11 kdawgwilk