130 lines
3.3 KiB
Swift
130 lines
3.3 KiB
Swift
import Dependencies
|
|
import Foundation
|
|
import SharedModels
|
|
import Testing
|
|
import URLRouting
|
|
|
|
@Suite("PurchaseOrderViewRouteTests")
|
|
struct PurchaseOrderViewRouteTests {
|
|
let router = ViewRoute.router
|
|
|
|
@Test
|
|
func create() throws {
|
|
let id = UUID(0)
|
|
var request = URLRequestData(
|
|
method: "POST",
|
|
path: "/purchase-orders",
|
|
body: .init("id=1&workOrder=12345&materials=some&customer=Testy&truckStock=false&createdByID=\(id)&createdForID=\(id)&vendorBranchID=\(id)".utf8)
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .purchaseOrder(.create(.init(
|
|
id: 1,
|
|
workOrder: 12345,
|
|
materials: "some",
|
|
customer: "Testy",
|
|
truckStock: false,
|
|
createdByID: id,
|
|
createdForID: id,
|
|
vendorBranchID: id
|
|
))))
|
|
}
|
|
|
|
@Test
|
|
func delete() throws {
|
|
let id = 1
|
|
var request = URLRequestData(
|
|
method: "DELETE",
|
|
path: "/purchase-orders/\(id)"
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .purchaseOrder(.delete(id: id)))
|
|
}
|
|
|
|
@Test
|
|
func form() throws {
|
|
var request = URLRequestData(
|
|
method: "GET",
|
|
path: "/purchase-orders/create"
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .purchaseOrder(.form))
|
|
}
|
|
|
|
@Test
|
|
func get() throws {
|
|
let id = 1
|
|
var request = URLRequestData(
|
|
method: "GET",
|
|
path: "/purchase-orders/\(id)"
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .purchaseOrder(.get(id: id)))
|
|
}
|
|
|
|
@Test
|
|
func index() throws {
|
|
var request = URLRequestData(
|
|
method: "GET",
|
|
path: "/purchase-orders"
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .purchaseOrder(.index))
|
|
}
|
|
|
|
@Test
|
|
func page() throws {
|
|
var request = URLRequestData(
|
|
method: "GET",
|
|
path: "/purchase-orders/next"
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .purchaseOrder(.page(page: 1, limit: 25)))
|
|
|
|
var request2 = URLRequestData(
|
|
method: "GET",
|
|
path: "/purchase-orders/next",
|
|
query: ["page": ["2"], "limit": ["50"]]
|
|
)
|
|
let route2 = try router.parse(&request2)
|
|
#expect(route2 == .purchaseOrder(.page(page: 2, limit: 50)))
|
|
}
|
|
|
|
@Test
|
|
func searchIndex() throws {
|
|
var request = URLRequestData(
|
|
method: "GET",
|
|
path: "/purchase-orders/search",
|
|
query: ["context": ["customer"]]
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .purchaseOrder(.search(.index(context: .customer, table: nil))))
|
|
|
|
var request2 = URLRequestData(
|
|
method: "GET",
|
|
path: "/purchase-orders/search"
|
|
)
|
|
let route2 = try router.parse(&request2)
|
|
#expect(route2 == .purchaseOrder(.search(.index(context: .employee, table: nil))))
|
|
|
|
var request3 = URLRequestData(
|
|
method: "GET",
|
|
path: "/purchase-orders/search",
|
|
query: ["context": ["vendor"], "table": ["true"]]
|
|
)
|
|
let route3 = try router.parse(&request3)
|
|
#expect(route3 == .purchaseOrder(.search(.index(context: .vendor, table: true))))
|
|
}
|
|
|
|
@Test
|
|
func searchPost() throws {
|
|
let id = UUID(0)
|
|
var request = URLRequestData(
|
|
method: "POST",
|
|
path: "/purchase-orders/search",
|
|
body: .init("context=employee&createdForID=\(id)".utf8)
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .purchaseOrder(.search(.request(.init(context: .employee, createdForID: id)))))
|
|
}
|
|
}
|