Allow many mocked users

This commit is contained in:
Kalle
2022-04-03 11:18:13 +03:00
parent 1287fa4ad9
commit 3eaebe24b0
2 changed files with 11 additions and 10 deletions

View File

@@ -43,7 +43,7 @@ app.use(
app.use(morgan("tiny"));
const mockUserFromHTTPCall: { user: LoggedInUser | null } = { user: null };
const mockUserFromHTTPCall: Record<string, LoggedInUser> = {};
try {
setUpAuth(app);
@@ -55,14 +55,10 @@ try {
function userToContext(req: Express.Request) {
if (process.env.NODE_ENV === "development") {
// @ts-expect-error TODO: check how to set headers types
const mockedUser = req.headers["mock-auth"];
// @ts-expect-error TODO: express user type
const mockedUser = mockUserFromHTTPCall[req.user?.id];
if (mockedUser) {
return JSON.parse(mockedUser);
}
if (mockUserFromHTTPCall.user) {
return mockUserFromHTTPCall.user;
return mockedUser;
}
}
return req.user;

View File

@@ -6,13 +6,16 @@ import type { LoggedInUser } from "~/utils/schemas";
export function setUpMockAuth(
app: Express,
userObj: { user: LoggedInUser | null }
usersObj: Record<string, LoggedInUser>
): void {
if (process.env.NODE_ENV !== "development") return;
// eslint-disable-next-line @typescript-eslint/no-misused-promises
app.post("/mock-auth", async (req, res) => {
try {
// @ts-expect-error TODO: express user type
if (!req.user?.id) return res.status(400).end();
const data = z
.object({ username: z.string().nullish(), team: z.string().nullish() })
.parse(req.query);
@@ -44,7 +47,9 @@ export function setUpMockAuth(
if (!newMockUser) return res.status(400).end();
userObj.user = {
/* prettier-ignore */
// @ts-expect-error TODO: express user type
usersObj[req.user.id] = { // eslint-disable-line @typescript-eslint/no-unsafe-member-access
discordAvatar: newMockUser.discordAvatar,
discordId: newMockUser.discordId,
id: newMockUser.id,