jest.mock("../Contexts/UserContext"); jest.mock("../Contexts/StatusContext"); import React from "react"; import { fireEvent, render, screen, waitFor, } from "@testing-library/react"; import { UserProvider, setToken } from "../Contexts/UserContext"; import { StatusProvider } from "../Contexts/StatusContext"; import { TEST_AUTH_OBJECT_FISKER } from "../../utils/testing"; import BulkActions from "."; import addSnapshotSerializer from "../../utils/snapshot"; describe("BulkActions", () => { beforeAll(() => { setToken(TEST_AUTH_OBJECT_FISKER); global.URL.createObjectURL = jest.fn(); global.URL.revokeObjectURL = jest.fn(); addSnapshotSerializer(expect); }); it("Render", async () => { const { container } = render( ); await waitFor(() => { /* render */ }); expect(container).toMatchSnapshot(); }); it("opens a modal", async () => { render( ); const buttonEl = screen.getByText("Add Tags"); fireEvent.click(buttonEl); const submitEl = screen.getByText("Submit"); expect(submitEl).toBeTruthy(); }); it("filters valid actions", async () => { render( ); const dropdownBtn = screen.getByTestId("dropdown-button-expand"); fireEvent.click(dropdownBtn); const dropdownOptions = screen.getAllByRole("menuitem"); expect(dropdownOptions.length).toBe(2); }); });