import { assertEquals, cleanup, render, screen } from "./setup.ts";
import PageContainer from "../../components/layout/PageContainer.tsx";
Deno.test({
name: "PageContainer - renders children",
fn() {
render(
Child content
,
);
assertEquals(screen.getByText("Child content").tagName, "SPAN");
cleanup();
},
sanitizeResources: false,
sanitizeOps: false,
});
Deno.test({
name: "PageContainer - applies base layout classes",
fn() {
const { container } = render(Test);
const div = container.firstElementChild!;
assertEquals(div.className.includes("w-screen"), true);
assertEquals(div.className.includes("h-screen"), true);
assertEquals(div.className.includes("flex"), true);
assertEquals(div.className.includes("flex-col"), true);
cleanup();
},
sanitizeResources: false,
sanitizeOps: false,
});
Deno.test({
name: "PageContainer - applies centering classes when centered=true",
fn() {
const { container } = render(
Centered,
);
const div = container.firstElementChild!;
assertEquals(div.className.includes("items-center"), true);
assertEquals(div.className.includes("justify-center"), true);
cleanup();
},
sanitizeResources: false,
sanitizeOps: false,
});
Deno.test({
name: "PageContainer - no centering when centered=false (default)",
fn() {
const { container } = render(Not centered);
const div = container.firstElementChild!;
assertEquals(div.className.includes("items-center"), false);
assertEquals(div.className.includes("justify-center"), false);
cleanup();
},
sanitizeResources: false,
sanitizeOps: false,
});
Deno.test({
name: "PageContainer - appends custom className",
fn() {
const { container } = render(
Custom,
);
const div = container.firstElementChild!;
assertEquals(div.className.includes("my-page"), true);
cleanup();
},
sanitizeResources: false,
sanitizeOps: false,
});