feat: Adds api route tests. Tested user interface works as expected, still needs some work on vendors form.
This commit is contained in:
93
Tests/ApiRouteTests/EmployeeApiRouteTests.swift
Normal file
93
Tests/ApiRouteTests/EmployeeApiRouteTests.swift
Normal file
@@ -0,0 +1,93 @@
|
||||
import Dependencies
|
||||
import Foundation
|
||||
import SharedModels
|
||||
import Testing
|
||||
import URLRouting
|
||||
|
||||
@Suite("EmployeeApiRouteTests")
|
||||
struct EmployeeApiRouteTests {
|
||||
let router = ApiRoute.router
|
||||
|
||||
@Test
|
||||
func employeeCreate() throws {
|
||||
let json = """
|
||||
{
|
||||
\"firstName\": \"Blob\",
|
||||
\"lastName\": \"Esquire\",
|
||||
\"active\": true
|
||||
}
|
||||
"""
|
||||
var request = URLRequestData(
|
||||
method: "POST",
|
||||
path: "/api/v1/employees",
|
||||
body: .init(json.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: "/api/v1/employees/\(id)"
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(
|
||||
route == .employee(.delete(id: id))
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
func employeeGet() throws {
|
||||
let id = UUID(0)
|
||||
var request = URLRequestData(
|
||||
method: "GET",
|
||||
path: "/api/v1/employees/\(id)"
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(
|
||||
route == .employee(.get(id: id))
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
func employeeIndex() throws {
|
||||
var request = URLRequestData(
|
||||
method: "GET",
|
||||
path: "/api/v1/employees"
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(
|
||||
route == .employee(.index)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
func employeeUpdate() throws {
|
||||
let id = UUID(0)
|
||||
let json = """
|
||||
{
|
||||
\"firstName\": \"Blob\",
|
||||
\"lastName\": \"Esquire\",
|
||||
\"active\": true
|
||||
}
|
||||
"""
|
||||
var request = URLRequestData(
|
||||
method: "PUT",
|
||||
path: "/api/v1/employees/\(id)",
|
||||
body: .init(json.utf8)
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(
|
||||
route == .employee(.update(
|
||||
id: id,
|
||||
updates: .init(firstName: "Blob", lastName: "Esquire", active: true)
|
||||
))
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user