This commit is contained in:
csj
2026-09-13 15:20:40 +08:00
parent 8bc9ae8046
commit da6cb24249
8 changed files with 566 additions and 4 deletions
+27
View File
@@ -0,0 +1,27 @@
import Foundation
@main
struct AdminPPTSelectionTests {
static func record(_ id: String, user: String = "1", name: String = "张三", group: Int64 = 1,
date: String = "2026-09-13", state: String = "approved") -> AdminExpense {
AdminExpense(id: id, groupId: group, projectId: 1, userId: user, name: name, team: "\(group)",
projectName: "项目", type: "餐饮费用", amountCents: 1234, amountText: "12.34", note: "",
status: "已批准", state: state, date: date, version: 1, files: [:], events: [])
}
static func main() {
let records = [record("10"), record("2"), record("3", user: "2", group: 2, date: "2026-09-12"),
record("4", state: "pending"), record("5", state: "returned")]
let approved = AdminPPTSelection.filter(records, groupID: 0, userID: "", start: nil, end: nil)
precondition(approved.count == 3)
precondition(AdminPPTSelection.filter(records, groupID: 1, userID: "", start: nil, end: nil).count == 2)
precondition(AdminPPTSelection.filter(records, groupID: 0, userID: "2", start: nil, end: nil).map(\.id) == ["3"])
precondition(AdminPPTSelection.filter(records, groupID: 0, userID: "", start: "2026-09-13", end: "2026-09-13").count == 2)
precondition(AdminPPTSelection.filter(records, groupID: 0, userID: "", start: "2026-09-14", end: "2026-09-13").isEmpty)
precondition(AdminPPTOrder.group.sorted(approved).map(\.id) == ["2", "10", "3"])
precondition(AdminPPTOrder.date.sorted(approved).map(\.id) == ["3", "2", "10"])
let sameName = [record("7", user: "2"), record("6", user: "1", group: 2)]
precondition(AdminPPTOrder.person.sorted(sameName).map(\.id) == ["6", "7"])
print("PPT selection, approval filtering, date bounds and ordering tests passed")
}
}