import { describe, expect, it, vi } from "vitest"; import { render, screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { Tabs } from ".."; describe("Tabs", () => { it("should match the snapshot", () => { const component = render( tab trigger 1 tab trigger 2 tab content 1 tab content 2 ); expect(component.baseElement).toMatchSnapshot(); }); it("should change tab correctly", async () => { const tabsFn = vi.fn(); render( tab trigger 1 tab trigger 2 tab content 1 tab content 2 ); const content1 = screen.getByText("tab content 1"); expect(content1).toBeInTheDocument(); const trigger = screen.getByRole("tab", { name: /tab trigger 2/i }); await waitFor(() => userEvent.click(trigger)); const content2 = screen.getByText("tab content 2"); expect(content2).toBeInTheDocument(); expect(tabsFn).toHaveBeenCalled(); }); it("should not trigger when disabled", async () => { const tabsFn = vi.fn(); render( tab trigger 1 tab trigger 2 tab content 1 tab content 2 ); const trigger = screen.getByRole("tab", { name: /tab trigger 2/i }); await waitFor(() => userEvent.click(trigger)); expect(tabsFn).not.toHaveBeenCalled(); }); });