page_container_test.tsx 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { cleanup, assertEquals, render, screen } from "./setup.ts";
  2. import PageContainer from "../../components/layout/PageContainer.tsx";
  3. Deno.test({
  4. name: "PageContainer - renders children",
  5. fn() {
  6. render(<PageContainer><span>Child content</span></PageContainer>);
  7. assertEquals(screen.getByText("Child content").tagName, "SPAN");
  8. cleanup();
  9. },
  10. sanitizeResources: false,
  11. sanitizeOps: false,
  12. });
  13. Deno.test({
  14. name: "PageContainer - applies base layout classes",
  15. fn() {
  16. const { container } = render(<PageContainer>Test</PageContainer>);
  17. const div = container.firstElementChild!;
  18. assertEquals(div.className.includes("w-screen"), true);
  19. assertEquals(div.className.includes("h-screen"), true);
  20. assertEquals(div.className.includes("flex"), true);
  21. assertEquals(div.className.includes("flex-col"), true);
  22. cleanup();
  23. },
  24. sanitizeResources: false,
  25. sanitizeOps: false,
  26. });
  27. Deno.test({
  28. name: "PageContainer - applies centering classes when centered=true",
  29. fn() {
  30. const { container } = render(<PageContainer centered>Centered</PageContainer>);
  31. const div = container.firstElementChild!;
  32. assertEquals(div.className.includes("items-center"), true);
  33. assertEquals(div.className.includes("justify-center"), true);
  34. cleanup();
  35. },
  36. sanitizeResources: false,
  37. sanitizeOps: false,
  38. });
  39. Deno.test({
  40. name: "PageContainer - no centering when centered=false (default)",
  41. fn() {
  42. const { container } = render(<PageContainer>Not centered</PageContainer>);
  43. const div = container.firstElementChild!;
  44. assertEquals(div.className.includes("items-center"), false);
  45. assertEquals(div.className.includes("justify-center"), false);
  46. cleanup();
  47. },
  48. sanitizeResources: false,
  49. sanitizeOps: false,
  50. });
  51. Deno.test({
  52. name: "PageContainer - appends custom className",
  53. fn() {
  54. const { container } = render(<PageContainer className="my-page">Custom</PageContainer>);
  55. const div = container.firstElementChild!;
  56. assertEquals(div.className.includes("my-page"), true);
  57. cleanup();
  58. },
  59. sanitizeResources: false,
  60. sanitizeOps: false,
  61. });