feat: update wallet punch point and report success

This commit is contained in:
2026-07-09 14:27:18 +08:00
parent 2970f1514b
commit 43e6133c21
34 changed files with 6671 additions and 71 deletions

View File

@ -158,6 +158,40 @@ final class WildPhotographerReportTests: XCTestCase {
XCTAssertEqual(response.list.first?.complaintNo, "JB20260708917")
}
func testSubmitReportAPIReturnsComplaintNumber() async throws {
let json = Data("""
{
"code": 100000,
"data": {
"complaint_no": "JB20260709886",
"id": 40
},
"msg": "success",
"time": "2026-07-09 14:09:41"
}
""".utf8)
let session = MockURLSession(responses: [json])
let api = WildPhotographerReportAPI(client: APIClient(environment: .testing, session: session))
let response = try await api.submitReport(WildReportSubmitRequest(
scenicId: 128,
reportType: 2,
desc: "测试说明",
storeUserId: nil,
contactPhone: "13800138000",
locationName: "测试景区",
locationAddress: "测试地址",
lat: 30.12,
lng: 120.34,
evidences: [WildReportEvidenceRequest(fileURL: "https://example.com/scene.jpg", fileType: 1, fileName: "scene.jpg")],
paymentScreenshots: []
))
XCTAssertEqual(session.requests.first?.url?.path, "/api/yf-handset-app/photog/report/submit")
XCTAssertEqual(response.id, 40)
XCTAssertEqual(response.complaintNo, "JB20260709886")
}
func testReportDetailAPILoadsRemoteDetail() async throws {
let json = Data("""
{
@ -548,6 +582,7 @@ final class WildPhotographerReportTests: XCTestCase {
let homeViewModel = WildPhotographerReportHomeViewModel()
let viewModel = WildPhotographerReportSubmitViewModel(homeViewModel: homeViewModel)
let api = MockWildPhotographerReportAPI()
api.submitResponse = WildReportSubmitResponse(id: 40, complaintNo: "JB20260709886")
let uploader = MockWildReportAttachmentUploader()
viewModel.selectReportType(WildReportType(value: 2, label: ""))
viewModel.addImages([try makeAttachment(kind: .image, fileName: "scene.jpg")])
@ -559,7 +594,8 @@ final class WildPhotographerReportTests: XCTestCase {
XCTAssertNil(viewModel.validationMessage)
XCTAssertNotNil(viewModel.submitResult)
XCTAssertEqual(viewModel.submitResult?.record.id, "")
XCTAssertEqual(viewModel.submitResult?.record.serverID, 40)
XCTAssertEqual(viewModel.submitResult?.record.id, "JB20260709886")
XCTAssertEqual(uploader.uploadedFileNames, ["scene.jpg", "payment.jpg"])
XCTAssertEqual(api.submitRequests.first?.scenicId, 9)
XCTAssertEqual(api.submitRequests.first?.reportType, 2)
@ -1043,6 +1079,7 @@ private final class MockWildPhotographerReportAPI: WildPhotographerReportServing
var reportCopyResponse = WildReportCopyResponse()
var reportCopyError: Error?
var error: Error?
var submitResponse = WildReportSubmitResponse()
var submitRequests: [WildReportSubmitRequest] = []
var reportListResponses: [WildReportListResponse] = []
var reportListRequests: [WildReportListRequest] = []
@ -1069,9 +1106,10 @@ private final class MockWildPhotographerReportAPI: WildPhotographerReportServing
return reportCopyResponse
}
func submitReport(_ request: WildReportSubmitRequest) async throws {
func submitReport(_ request: WildReportSubmitRequest) async throws -> WildReportSubmitResponse {
if let error { throw error }
submitRequests.append(request)
return submitResponse
}
func supplementReport(_ request: WildReportSupplementRequest) async throws {