feat: Adds api route tests. Tested user interface works as expected, still needs some work on vendors form.

This commit is contained in:
2025-01-20 16:44:12 -05:00
parent affd9b5d81
commit 410bbae1c8
23 changed files with 537 additions and 121 deletions

View File

@@ -0,0 +1,101 @@
import Dependencies
import Foundation
import SharedModels
import Testing
import URLRouting
@Suite("EmployeeViewRouteTests")
struct EmployeeViewRouteTests {
let router = ViewRoute.router
@Test
func employeeCreate() throws {
var request = URLRequestData(
method: "POST",
path: "/employees",
body: .init("firstName=Blob&lastName=Esquire&active=true".utf8)
)
let route = try router.parse(&request)
#expect(
route == .employee(.create(.init(firstName: "Blob", lastName: "Esquire", active: true)))
)
}
@Test
func employeeDelete() throws {
let id = UUID(0)
var request = URLRequestData(
method: "DELETE",
path: "/employees/\(id)"
)
let route = try router.parse(&request)
#expect(
route == .employee(.delete(id: id))
)
}
@Test
func employeeForm() throws {
var request = URLRequestData(
method: "GET",
path: "/employees/create"
)
let route = try router.parse(&request)
#expect(
route == .employee(.form)
)
}
@Test
func employeeGet() throws {
let id = UUID(0)
var request = URLRequestData(
method: "GET",
path: "/employees/\(id)"
)
let route = try router.parse(&request)
#expect(
route == .employee(.get(id: id))
)
}
@Test
func employeeIndex() throws {
var request = URLRequestData(
method: "GET",
path: "/employees"
)
let route = try router.parse(&request)
#expect(
route == .employee(.index)
)
}
@Test
func employeeUpdate() throws {
let id = UUID(0)
var request = URLRequestData(
method: "PUT",
path: "/employees/\(id)",
body: .init("firstName=Blob&lastName=Esquire&active=true".utf8)
)
let route = try router.parse(&request)
#expect(
route == .employee(.update(
id: id,
updates: .init(firstName: "Blob", lastName: "Esquire", active: true)
))
)
}
@Test
func employeeSelect() throws {
var request = URLRequestData(
method: "GET",
path: "/employees/select",
query: ["context": ["purchaseOrderForm"]]
)
let route = try router.parse(&request)
#expect(route == .employee(.select(context: .purchaseOrderForm)))
}
}