import { renderToStaticMarkup } from "react-dom/server"; import { describe, expect, it } from "vitest"; import { SidebarMenuAction, SidebarMenuButton, SidebarMenuSubButton, SidebarProvider, } from "./sidebar"; function renderSidebarButton(className?: string) { return renderToStaticMarkup( Projects , ); } describe("sidebar interactive cursors", () => { it("uses a pointer cursor for menu buttons by default", () => { const html = renderSidebarButton(); expect(html).toContain('data-slot="sidebar-menu-button"'); expect(html).toContain("cursor-pointer"); }); it("lets project drag handles override the default pointer cursor", () => { const html = renderSidebarButton("cursor-grab"); expect(html).toContain("cursor-grab"); expect(html).not.toContain("cursor-pointer"); }); it("uses a pointer cursor for menu actions", () => { const html = renderToStaticMarkup( + , ); expect(html).toContain('data-slot="sidebar-menu-action"'); expect(html).toContain("cursor-pointer"); }); it("uses a pointer cursor for submenu buttons", () => { const html = renderToStaticMarkup( }>Show more, ); expect(html).toContain('data-slot="sidebar-menu-sub-button"'); expect(html).toContain("cursor-pointer"); }); });