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