feat: add travel album OTG import flow
This commit is contained in:
@ -73,6 +73,29 @@ final class TravelAlbumAPITests: XCTestCase {
|
||||
XCTAssertEqual(session.requests[2].url?.path, "/api/yf-handset-app/photog/travel-album/mp-code")
|
||||
}
|
||||
|
||||
func testUploadMaterialBuildsPathAndBody() async throws {
|
||||
let material = envelopeJSON(#"{"id":6,"user_equity_travel_id":3,"file_name":"A.JPG","file_url":"https://cdn/a.jpg"}"#)
|
||||
let session = MockURLSession(responses: [material])
|
||||
let api = TravelAlbumAPI(client: APIClient(environment: .testing, session: session))
|
||||
|
||||
let response = try await api.uploadMaterial(
|
||||
TravelAlbumUploadMaterialRequest(
|
||||
userEquityTravelId: 3,
|
||||
fileName: "A.JPG",
|
||||
fileUrl: "https://cdn/a.jpg"
|
||||
)
|
||||
)
|
||||
|
||||
XCTAssertEqual(response.id, 6)
|
||||
let request = try XCTUnwrap(session.requests.first)
|
||||
XCTAssertEqual(request.httpMethod, "POST")
|
||||
XCTAssertEqual(request.url?.path, "/api/yf-handset-app/photog/travel-album/upload-material")
|
||||
let body = try JSONSerialization.jsonObject(with: try XCTUnwrap(request.httpBody)) as? [String: Any]
|
||||
XCTAssertEqual(body?["user_equity_travel_id"] as? Int, 3)
|
||||
XCTAssertEqual(body?["file_name"] as? String, "A.JPG")
|
||||
XCTAssertEqual(body?["file_url"] as? String, "https://cdn/a.jpg")
|
||||
}
|
||||
|
||||
private func envelopeJSON(_ dataJSON: String) -> Data {
|
||||
"""
|
||||
{"code":100000,"msg":"success","data":\(dataJSON)}
|
||||
|
||||
Reference in New Issue
Block a user