完善钱包提现状态展示与举报摄影师列表交互。

对齐 Android 提现进度与时间线映射,优化钱包与积分兑换页刷新逻辑,并补充相关单元测试与真机测试说明。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-13 16:51:32 +08:00
parent 5138c1c11a
commit 05804ba7d6
9 changed files with 440 additions and 99 deletions

View File

@ -548,6 +548,91 @@ final class WildPhotographerReportTests: XCTestCase {
XCTAssertEqual(record.imageCount, 1)
XCTAssertEqual(record.videoCount, 1)
XCTAssertEqual(detail.supplementRecords.first?.summaryText, " · 1")
XCTAssertEqual(detail.supplementRecords.first?.evidences.first?.fileURL, "https://example.com/supplement.jpg")
}
func testSupplementRecordsPreserveMixedMediaOrderAndSummary() throws {
let evidences = [
WildReportDetailEvidence(
fileType: 1,
fileTypeText: "图片",
fileURL: "https://example.com/one.jpg",
fileName: "one.jpg"
),
WildReportDetailEvidence(
fileType: 2,
fileTypeText: "视频",
fileURL: "https://example.com/two.mp4",
fileName: "two.mp4"
),
WildReportDetailEvidence(
fileType: 5,
fileTypeText: "图片",
fileURL: "https://example.com/three.png",
fileName: "three.png"
)
]
let detail = WildReportDetailData(
supplements: [
WildReportDetailContent(
type: "supplement",
id: 7,
desc: "补充现场材料",
time: "2026-07-13 10:00:00",
evidences: evidences
)
]
)
let record = try XCTUnwrap(detail.supplementRecords.first)
XCTAssertEqual(record.evidences.map(\.fileType), [1, 2, 5])
XCTAssertEqual(record.evidences.map(\.fileURL), [
"https://example.com/one.jpg",
"https://example.com/two.mp4",
"https://example.com/three.png"
])
XCTAssertEqual(record.imageCount, 2)
XCTAssertEqual(record.videoCount, 1)
XCTAssertTrue(record.hasMedia)
XCTAssertEqual(record.summaryText, "补充现场材料 · 2张图片 · 1段视频")
}
func testSupplementRecordsFallBackToReportContentsAndKeepMedia() throws {
let detail = WildReportDetailData(
supplements: [],
reportContents: [
WildReportDetailContent(
type: "report",
id: 1,
desc: "初始举报",
time: "2026-07-13 09:00:00"
),
WildReportDetailContent(
type: "supplement",
id: 2,
desc: "补充视频",
time: "2026-07-13 10:00:00",
evidences: [
WildReportDetailEvidence(
fileType: 2,
fileTypeText: "视频",
fileURL: "https://example.com/fallback.mp4",
fileName: "fallback.mp4"
)
]
)
]
)
let record = try XCTUnwrap(detail.supplementRecords.first)
XCTAssertEqual(detail.supplementRecords.count, 1)
XCTAssertEqual(record.id, "2")
XCTAssertEqual(record.evidences.map(\.fileURL), ["https://example.com/fallback.mp4"])
XCTAssertEqual(record.imageCount, 0)
XCTAssertEqual(record.videoCount, 1)
XCTAssertEqual(record.summaryText, "补充视频 · 1段视频")
}
func testSupplementRecordSequenceTitleStartsFromDisplayOrder() {