diff --git a/src/msw/handlers/Viewer.ts b/src/msw/handlers/Viewer.ts new file mode 100644 index 0000000..40fe31a --- /dev/null +++ b/src/msw/handlers/Viewer.ts @@ -0,0 +1,29 @@ +import { graphql } from "msw"; + +import { mockAvatars } from "~/mocks/assets"; +import { FetchViewerDocument } from "~/mocks/codegen"; + +export const queryFetchViewer = graphql.query( + FetchViewerDocument, + (req, res, ctx) => { + if (!req.headers.get("Authorization")) { + return res(ctx.data({ __typename: "Query", viewer: null })); + } + + // eslint-disable-next-line no-process-env + if (process.env.NEXT_PUBLIC_MSW_FIRST_NEED_REGISTER === "true") { + return res(ctx.data({ __typename: "Query", viewer: null })); + } + + return res(ctx.data({ + __typename: "Query", + viewer: { + __typename: "User", + id: "viewer", + alias: "viewer", + displayName: "Viewer", + avatar: mockAvatars.viewer, + }, + })); + }, +); diff --git a/src/msw/handlers/index.ts b/src/msw/handlers/index.ts index 560a0b4..46de988 100644 --- a/src/msw/handlers/index.ts +++ b/src/msw/handlers/index.ts @@ -7,8 +7,12 @@ import { queryGlobalNavNotifications } from "./GlobalNav"; import { queryAllHenkenPages, queryHenkenPage } from "./HenkenPage"; import { mutationRegisterUser, queryIsAliasUnique } from "./RegisterUserForm"; import { queryAllUserPages, querySendHenkensUserPage, queryUserPage } from "./UserPage"; +import { queryFetchViewer } from "./Viewer"; export const handlers = [ + // Viewer + queryFetchViewer, + // Henken Page queryAllHenkenPages, queryHenkenPage,