feat: Adds api route tests. Tested user interface works as expected, still needs some work on vendors form.
This commit is contained in:
87
Tests/ApiRouteTests/VendorBranchApiRouteTests.swift
Normal file
87
Tests/ApiRouteTests/VendorBranchApiRouteTests.swift
Normal file
@@ -0,0 +1,87 @@
|
||||
import Dependencies
|
||||
import Foundation
|
||||
import SharedModels
|
||||
import Testing
|
||||
import URLRouting
|
||||
|
||||
@Suite("VendorBranchApiRouteTests")
|
||||
struct VendorBranchApiRouteTests {
|
||||
let router = ApiRoute.router
|
||||
|
||||
@Test
|
||||
func create() throws {
|
||||
let id = UUID(0)
|
||||
let json = """
|
||||
{
|
||||
\"name\": \"Test\",
|
||||
\"vendorID\": \"\(id)\"
|
||||
}
|
||||
"""
|
||||
var request = URLRequestData(
|
||||
method: "POST",
|
||||
path: "/api/v1/vendors/branches",
|
||||
body: .init(json.utf8)
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(route == .vendorBranch(.create(.init(name: "Test", vendorID: id))))
|
||||
}
|
||||
|
||||
@Test
|
||||
func delete() throws {
|
||||
let id = UUID(0)
|
||||
var request = URLRequestData(
|
||||
method: "DELETE",
|
||||
path: "/api/v1/vendors/branches/\(id)"
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(route == .vendorBranch(.delete(id: id)))
|
||||
}
|
||||
|
||||
@Test
|
||||
func get() throws {
|
||||
let id = UUID(0)
|
||||
var request = URLRequestData(
|
||||
method: "GET",
|
||||
path: "/api/v1/vendors/branches/\(id)"
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(route == .vendorBranch(.get(id: id)))
|
||||
}
|
||||
|
||||
@Test
|
||||
func index() throws {
|
||||
let id = UUID(0)
|
||||
var request = URLRequestData(
|
||||
method: "GET",
|
||||
path: "/api/v1/vendors/branches"
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(route == .vendorBranch(.index()))
|
||||
|
||||
var request2 = URLRequestData(
|
||||
method: "GET",
|
||||
path: "/api/v1/vendors/branches",
|
||||
query: ["vendorID": ["\(id)"]]
|
||||
)
|
||||
let route2 = try router.parse(&request2)
|
||||
#expect(route2 == .vendorBranch(.index(for: id)))
|
||||
}
|
||||
|
||||
@Test
|
||||
func update() throws {
|
||||
let id = UUID(0)
|
||||
let json = """
|
||||
{
|
||||
\"name\": \"Test\"
|
||||
}
|
||||
"""
|
||||
var request = URLRequestData(
|
||||
method: "PUT",
|
||||
path: "/api/v1/vendors/branches/\(id)",
|
||||
body: .init(json.utf8)
|
||||
)
|
||||
let route = try router.parse(&request)
|
||||
#expect(route == .vendorBranch(.update(id: id, updates: .init(name: "Test"))))
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user