Skip to main content
Glama
Modal.test.tsx1.37 kB
import React from "react"; import { render, screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { Modal } from "./Modal"; describe("Modal", () => { const defaultProps = { onClose: jest.fn(), title: "Test Title", description: "Test Description", children: <div>Modal Content</div>, }; it("closes and triggers onClose after ClosePanelButton is clicked", async () => { const user = userEvent.setup(); const onClose = jest.fn(); render(<Modal {...defaultProps} onClose={onClose} />); const closeButton = screen.getByRole("button"); await user.click(closeButton); // Wait for afterLeave/onClose after transition await waitFor(() => { expect(onClose).toHaveBeenCalled(); expect(screen.queryByTestId("modal")).not.toBeInTheDocument(); }); }); it("closes and triggers onClose after modal overlay is clicked", async () => { const user = userEvent.setup(); const onClose = jest.fn(); render(<Modal {...defaultProps} onClose={onClose} />); const overlay = screen.getByTestId("modal-overlay"); await user.click(overlay); // Wait for afterLeave/onClose after transition await waitFor(() => { expect(onClose).toHaveBeenCalled(); expect(screen.queryByTestId("modal")).not.toBeInTheDocument(); }); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/get-convex/convex-backend'

If you have feedback or need assistance with the MCP directory API, please join our Discord server