Files
vapor-po/Tests/ApiRouteTests/VendorBranchApiRouteTests.swift

88 lines
2.0 KiB
Swift

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