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

@@ -8,7 +8,7 @@ private let viewProtectedMiddleware: [any Middleware] = [
UserPasswordAuthenticator(),
UserSessionAuthenticator(),
User.redirectMiddleware { req in
"/login?next=\(req.url)"
"/login?next=\(req.url.string)"
}
]
@@ -43,6 +43,7 @@ extension SharedModels.ViewRoute {
let token = try await users.login(.init(username: login.username, password: login.password))
let user = try await users.get(token.userID)!
request.session.authenticate(user)
request.logger.info("Logged in next: \(login.next ?? "N/A")")
return await request.render {
MainPage.loggedIn(next: login.next)
}
@@ -197,7 +198,10 @@ extension SharedModels.ViewRoute.PurchaseOrderRoute.Search {
MainPage(displayNav: true, route: .purchaseOrders) {
div(.class("container"), .id("purchase-order-content")) {
search
PurchaseOrderTable(page: .init(items: [], metadata: .init(page: 0, per: 50, total: 0)))
PurchaseOrderTable(
page: .init(items: [], metadata: .init(page: 0, per: 50, total: 0)),
context: .search
)
}
}
}
@@ -212,7 +216,7 @@ extension SharedModels.ViewRoute.PurchaseOrderRoute.Search {
}
return await request.render { html }
case let .search(context):
case let .request(context):
let results = try await database.purchaseOrders.search(context.toDatabaseQuery(), .init(page: 1, per: 25))
return await request.render {
PurchaseOrderTable(page: results, context: .search)