import { describe, it, expect, vi } from "vitest"; import { render, screen } from "@testing-library/react"; import Modal from "./modal"; import { CMSContext } from "../../cms-provider"; const baseContextValue = { editMode: true, screenSize: "default" as const, pageData: {}, editing: { id: null, inputs: [] }, setEditing: vi.fn(), setPageData: vi.fn(), hoveredId: null, setHoveredId: vi.fn(), disabledItems: [], setDisabledItems: vi.fn(), assetSource: undefined, }; describe("ImagePicker Modal", () => { it("hides the Upload tab when no assetSource is provided", () => { render( {}} onClose={() => {}} /> ); expect(screen.getByRole("button", { name: /public/i })).toBeInTheDocument(); expect(screen.queryByRole("button", { name: /upload/i })).not.toBeInTheDocument(); }); it("renders the Upload tab when an assetSource with uploadAsset is provided", async () => { const assetSource = { listAssets: vi.fn().mockResolvedValue([]), uploadAsset: vi.fn(), }; render( {}} onClose={() => {}} /> ); expect(await screen.findByRole("button", { name: /upload/i })).toBeInTheDocument(); }); });