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/);
});
});