templating api
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { Request, Response, NextFunction } from "express"
|
||||
|
||||
import {
|
||||
findAndAuthorizeCurrentUserMiddleware,
|
||||
type AuthorizationRequest,
|
||||
} from "@/middlewares/find-and-authorize-current-user-middleware"
|
||||
|
||||
import { User } from "@/models"
|
||||
|
||||
/**
|
||||
* Usage:
|
||||
* At the top level of a test file import:
|
||||
* import { mockCurrentUser } from "@/support"
|
||||
*
|
||||
* Then where you want to set the current user:
|
||||
* mockCurrentUser(currentUser)
|
||||
*
|
||||
* @param newCurrentUser - The user to set as the current user
|
||||
*/
|
||||
export function mockCurrentUser(newCurrentUser: User) {
|
||||
vi.mock("@/middlewares/jwt-middleware", () => ({
|
||||
default: async (_req: Request, _res: Response, next: NextFunction) => next(),
|
||||
jwtMiddleware: async (_req: Request, _res: Response, next: NextFunction) => next(),
|
||||
}))
|
||||
|
||||
vi.mock("@/middlewares/find-and-authorize-current-user-middleware")
|
||||
const findAndAuthorizeCurrentUserMiddlewareMock = vi.mocked(findAndAuthorizeCurrentUserMiddleware)
|
||||
findAndAuthorizeCurrentUserMiddlewareMock.mockImplementation(
|
||||
async (req: AuthorizationRequest, _res: Response, next: NextFunction) => {
|
||||
const currentUser = await User.withScope(["asCurrentUser"]).findByPk(newCurrentUser.id, {
|
||||
rejectOnEmpty: true,
|
||||
})
|
||||
|
||||
req.currentUser = currentUser
|
||||
next()
|
||||
}
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user