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,75 @@
import Dependencies
import Foundation
import SharedModels
import Testing
import URLRouting
@Suite("VendorViewRouteTests")
struct VendorViewRouteTests {
let router = ViewRoute.router
@Test
func create() throws {
var request = URLRequestData(
method: "POST",
path: "/vendors",
body: .init("name=Test".utf8)
)
let route = try router.parse(&request)
#expect(route == .vendor(.create(.init(name: "Test"))))
}
@Test
func delete() throws {
let id = UUID(0)
var request = URLRequestData(
method: "DELETE",
path: "/vendors/\(id)"
)
let route = try router.parse(&request)
#expect(route == .vendor(.delete(id: id)))
}
@Test
func get() throws {
let id = UUID(0)
var request = URLRequestData(
method: "GET",
path: "/vendors/\(id)"
)
let route = try router.parse(&request)
#expect(route == .vendor(.get(id: id)))
}
@Test
func form() throws {
var request = URLRequestData(
method: "GET",
path: "/vendors/create"
)
let route = try router.parse(&request)
#expect(route == .vendor(.form))
}
@Test
func index() throws {
var request = URLRequestData(
method: "GET",
path: "/vendors"
)
let route = try router.parse(&request)
#expect(route == .vendor(.index))
}
@Test
func update() throws {
let id = UUID(0)
var request = URLRequestData(
method: "PUT",
path: "/vendors/\(id)",
body: .init("name=Test".utf8)
)
let route = try router.parse(&request)
#expect(route == .vendor(.update(id: id, updates: .init(name: "Test"))))
}
}