jest.mock("../../services/auth");
jest.mock("../../services/getTimerWorker");
import {
render,
cleanup,
screen,
fireEvent,
waitFor,
} from "@testing-library/react";
import { UserProvider, useUserContext } from "../Contexts/UserContext";
import auth from "../../services/auth";
import getTimerWorker from "../../services/getTimerWorker";
import { TEST_AUTH_OBJECT, TEST_EXPECTED_GROUPS } from "../../utils/testing";
const INVALID_TOKEN_RESPONSE = {
error: "Bad Request Error",
message: "Bad Request Message",
};
const setupRefreshEnv = (refreshResponse, valid) => {
auth.setRefreshResponse(refreshResponse);
auth.setVerifyResponse({ valid });
};
const setupSignInEnv = (refreshResponse, valid) => {
auth.setSignInResponse(refreshResponse);
auth.setVerifyResponse({ valid });
};
const checkBaseResults = (error, fetching, token, groups) => {
expect(screen.getByTestId("error").innerHTML).toEqual(error);
expect(screen.getByTestId("fetching").innerHTML).toEqual(fetching);
expect(screen.getByTestId("token").innerHTML).toEqual(token);
expect(screen.getByTestId("groups").innerHTML).toEqual(groups);
};
const checkTokenResults = (timer, token) => {
expect(timer.start.mock.calls.length).toEqual(1);
expect(timer.onMessage.mock.calls.length).toEqual(1);
expect(timer.stop.mock.calls.length).toEqual(0);
expect(timer.terminate.mock.calls.length).toEqual(0);
if (!localStorage) {
expect(localStorage.getItem("token")).toEqual(token);
localStorage.removeItem("token");
}
};
describe("UseContext", () => {
describe("Signin", () => {
beforeEach(() => {
const TestComp = () => {
const { signIn, error, token, groups, fetching } = useUserContext();
return (
<>
{error}
{fetching.toString()}
{JSON.stringify(token)}
{groups}