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(.base(.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(.base(.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(.base(.index()))) var request2 = URLRequestData( method: "GET", path: "/api/v1/vendors/branches", query: ["vendorID": ["\(id)"]] ) let route2 = try router.parse(&request2) #expect(route2 == .vendorBranch(.base(.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(.base(.update(id: id, updates: .init(name: "Test"))))) } }