mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-08-22 11:05:09 -05:00
Allow many mocked users
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user