feat: Adds better mock support for models to aid in testing / viewing a mock project for the pdf client.

This commit is contained in:
2026-01-26 13:39:27 -05:00
parent 5fa11ae584
commit e08d896758
11 changed files with 366 additions and 19 deletions

View File

@@ -1,3 +1,4 @@
import Dependencies
import Foundation
// Represents the database model.
@@ -71,7 +72,6 @@ extension TrunkSize {
}
}
// TODO: Make registers non-optional
public struct RoomProxy: Codable, Equatable, Identifiable, Sendable {
public var id: Room.ID { room.id }
@@ -91,3 +91,24 @@ extension TrunkSize {
public static let allCases = [Self.supply, .return]
}
}
#if DEBUG
extension TrunkSize {
public static func mock(projectID: Project.ID, rooms: [Room]) -> [Self] {
@Dependency(\.uuid) var uuid
let allRooms = rooms.reduce(into: [TrunkSize.RoomProxy]()) { array, room in
var registers = [Int]()
for n in 1...room.registerCount {
registers.append(n)
}
array.append(.init(room: room, registers: registers))
}
return [
.init(id: uuid(), projectID: projectID, type: .supply, rooms: allRooms),
.init(id: uuid(), projectID: projectID, type: .return, rooms: allRooms),
]
}
}
#endif