import { describe, expect, test } from "bun:test"; import { renderToStaticMarkup } from "react-dom/server"; import { PageHeader, PageHeaderStyleProvider } from "./page-header"; const icon = ; describe("PageHeader", () => { test("shows the icon by default and hides it inside a settings provider", () => { expect(renderToStaticMarkup()).toContain( 'data-icon="schedules"', ); const settings = renderToStaticMarkup( , ); expect(settings).not.toContain("data-icon"); expect(settings).toContain("Variable sets"); }); test("showIcon overrides the provider, and the large variant never shows an icon", () => { const forced = renderToStaticMarkup( , ); expect(forced).toContain('data-icon="schedules"'); const large = renderToStaticMarkup( , ); expect(large).not.toContain("data-icon"); expect(large).toContain('data-variant="large"'); expect(large).toContain("text-2xl"); }); test("nested providers inherit what they don't set", () => { const html = renderToStaticMarkup( , ); expect(html).toContain('data-variant="large"'); expect(html).not.toContain("data-icon"); }); test("draws no hairline by default; an explicit divider or tabs bring their own rule", () => { const plain = renderToStaticMarkup(); expect(plain).not.toContain("border-b"); expect(plain).toContain("pb-4"); const ruled = renderToStaticMarkup(); expect(ruled).toContain("border-b"); const tabbed = renderToStaticMarkup( } />, ); expect(tabbed).not.toContain("border-b"); expect(tabbed).toContain('data-tabs="knowledge"'); }); test("renders one h1 with context, description and actions in their slots", () => { const html = renderToStaticMarkup( Invite people} />, ); expect(html.match(/

]*shrink-0/); }); });