jest.mock("../../services/uploadFile"); import { render, cleanup, screen, fireEvent, waitFor, } from "@testing-library/react"; import { useState } from "react"; import { setUploadFileDelay } from "../../services/uploadFile"; import { FileUploadProvider, useFileUploadContext, } from "../Contexts/FileUploadContext"; import { StatusProvider, useStatusContext } from "../Contexts/StatusContext"; const checkState = (uploading, progress, status, linkURL, message) => { expect(screen.getByTestId("uploading").innerHTML).toEqual(uploading); expect(screen.getByTestId("progress").innerHTML).toEqual(progress); expect(screen.getByTestId("status").innerHTML).toEqual(status); expect(screen.getByTestId("linkURL").innerHTML).toEqual(linkURL); expect(screen.getByTestId("message").innerHTML).toEqual(message); }; describe("FileUploadContext", () => { beforeEach(() => { const TestComp = () => { const { progress, uploading, status, upload, cancel, } = useFileUploadContext(); const { message, setMessage } = useStatusContext(); const [link, setLink] = useState(null); const TEST_FILE = [{ name: "test.jpg", size: 0 }]; const TEST_ACCESSTOKEN = "ACCESSTOKEN"; const TEST_FORMDATA = { packagename: "TEST", version: "VERSION", vehicles: ["VIN"], description: "TEST DESC", releasenotes: "http://releasenotes.com", }; const exec = async (form, token, file) => { try { const data = await upload(form, token, file); if (data.link) { setLink(data.link); } } catch (e) { setMessage(e.message); } }; return ( <>
{uploading.toString()}
{progress.toString()}
{status}
{message}
{link}