Files
vapor-po/Tests/ViewRouteTests/PurchaseOrderViewRouteTests.swift

130 lines
3.4 KiB
Swift

import Dependencies
import Foundation
import SharedModels
import Testing
import URLRouting
@Suite("PurchaseOrderViewRouteTests")
struct PurchaseOrderViewRouteTests {
let router = SiteRoute.View.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)))))
}
}