jest.mock("../../services/updates"); import { render, cleanup, screen, fireEvent, waitFor, } from "@testing-library/react"; import { UpdatesProvider, useUpdatesContext } from "./UpdatesContext"; import { StatusProvider, useStatusContext } from "./StatusContext"; import { TEST_AUTH_OBJECT } from "../../utils/testing"; describe("UpdatesContext", () => { describe("getPackages", () => { const expectedData = `[{"id":1,"package_name":"Test","version":"1.0","link":"http://cloudfront.com/download"},{"id":2,"package_name":"Test","version":"1.1","link":"http://cloudfront.com/download"},{"id":3,"package_name":"Test","version":"1.2","link":"http://cloudfront.com/download"}]`; const checkState = (busy, packages, message) => { expect(screen.getByTestId("busy").innerHTML).toEqual(busy); expect(screen.getByTestId("packages").innerHTML).toEqual(packages); expect(screen.getByTestId("message").innerHTML).toEqual(message); }; beforeEach(() => { const TestComp = () => { const { busy, packages, getPackages } = useUpdatesContext(); const { message, setMessage } = useStatusContext(); const exec = async (data, token) => { try { await getPackages(data, token); } catch (e) { setMessage(e.message); } }; return ( <>
{busy.toString()}
{JSON.stringify(packages)}
{message}