完善任务流程、键盘适配与页面交互
This commit is contained in:
@ -1269,6 +1269,53 @@ final class WildPhotographerReportTests: XCTestCase {
|
||||
XCTAssertEqual(viewModel.errorMessage, URLError(.badServerResponse).localizedDescription)
|
||||
}
|
||||
|
||||
func testRiskMapViewModelSharesSelectedReportMarker() async {
|
||||
let viewModel = WildReportRiskMapViewModel()
|
||||
let api = MockWildPhotographerReportAPI()
|
||||
api.riskMapResponses = [makeRiskMapResponse()]
|
||||
api.reportShareResponse = WildReportMiniProgramShareData(
|
||||
userName: "gh_test",
|
||||
path: "/pages/report/detail?id=32",
|
||||
title: "举报线索",
|
||||
description: "请协助处理",
|
||||
webpageURL: "https://example.com/report/32",
|
||||
miniProgramTypeValue: WeChatMiniProgramType.preview.rawValue
|
||||
)
|
||||
|
||||
await viewModel.loadInitial(
|
||||
api: api,
|
||||
locationProvider: MockRiskMapLocationProvider(.success(latitude: 43.3779, longitude: 84.0217)),
|
||||
scenicId: 128
|
||||
)
|
||||
let redMarker = try! XCTUnwrap(viewModel.markers.first { $0.kind == .wildPhotographer })
|
||||
await viewModel.selectMarker(redMarker)
|
||||
|
||||
let payload = await viewModel.shareSelectedClue(api: api)
|
||||
|
||||
XCTAssertEqual(api.reportShareRequests, ["32"])
|
||||
XCTAssertEqual(payload?.title, "举报线索")
|
||||
XCTAssertEqual(payload?.path, "/pages/report/detail?id=32")
|
||||
XCTAssertEqual(payload?.miniProgramType, .preview)
|
||||
}
|
||||
|
||||
func testRiskMapViewModelDoesNotShareCurrentLocationMarker() async {
|
||||
let viewModel = WildReportRiskMapViewModel()
|
||||
let api = MockWildPhotographerReportAPI()
|
||||
api.riskMapResponses = [makeRiskMapResponse()]
|
||||
|
||||
await viewModel.loadInitial(
|
||||
api: api,
|
||||
locationProvider: MockRiskMapLocationProvider(.success(latitude: 43.3779, longitude: 84.0217)),
|
||||
scenicId: 128
|
||||
)
|
||||
|
||||
let payload = await viewModel.shareSelectedClue(api: api)
|
||||
|
||||
XCTAssertNil(payload)
|
||||
XCTAssertTrue(api.reportShareRequests.isEmpty)
|
||||
XCTAssertEqual(viewModel.errorMessage, "请选择可分享的举报线索")
|
||||
}
|
||||
|
||||
func testDetailViewModelLoadsRemoteDetailWhenServerIDExists() async {
|
||||
let record = makeReportListItem(complaintNo: "JB20260708917", handleStatus: 0).toRecord()
|
||||
let viewModel = WildPhotographerReportDetailViewModel(record: record)
|
||||
|
||||
Reference in New Issue
Block a user