82 lines
1.9 KiB
Swift
82 lines
1.9 KiB
Swift
import Dependencies
|
|
import Foundation
|
|
import SharedModels
|
|
import Testing
|
|
import URLRouting
|
|
|
|
@Suite("UserViewRouteTests")
|
|
struct UserViewRouteTests {
|
|
let router = SiteRoute.View.router
|
|
|
|
@Test
|
|
func create() throws {
|
|
var request = URLRequestData(
|
|
method: "POST",
|
|
path: "/users",
|
|
body: .init("username=foo&email=foo@bar.com&password=super-secret&confirmPassword=super-secret".utf8)
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(
|
|
route == .user(.create(.init(
|
|
username: "foo",
|
|
email: "foo@bar.com",
|
|
password: "super-secret",
|
|
confirmPassword: "super-secret"
|
|
))))
|
|
}
|
|
|
|
// @Test
|
|
// func delete() throws {
|
|
// let id = UUID(0)
|
|
// var request = URLRequestData(
|
|
// method: "DELETE",
|
|
// path: "/users/\(id)"
|
|
// )
|
|
// let route = try router.parse(&request)
|
|
// #expect(route == .user(.delete(id: id)))
|
|
// }
|
|
|
|
@Test
|
|
func form() throws {
|
|
var request = URLRequestData(
|
|
method: "GET",
|
|
path: "/users/create"
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .user(.form))
|
|
}
|
|
|
|
@Test
|
|
func get() throws {
|
|
let id = UUID(0)
|
|
var request = URLRequestData(
|
|
method: "GET",
|
|
path: "/users/\(id)"
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .user(.get(id: id)))
|
|
}
|
|
|
|
@Test
|
|
func index() throws {
|
|
var request = URLRequestData(
|
|
method: "GET",
|
|
path: "/users"
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .user(.index))
|
|
}
|
|
|
|
@Test
|
|
func update() throws {
|
|
let id = UUID(0)
|
|
var request = URLRequestData(
|
|
method: "PATCH",
|
|
path: "/users/\(id)",
|
|
body: .init("username=bar&email=bar@foo.com".utf8)
|
|
)
|
|
let route = try router.parse(&request)
|
|
#expect(route == .user(.update(id: id, updates: .init(username: "bar", email: "bar@foo.com"))))
|
|
}
|
|
}
|