Files
astro-website/site/tests/card-layout.test.ts
2026-02-10 02:34:25 -05:00

30 lines
1.1 KiB
TypeScript

import { readFile } from "node:fs/promises";
import path from "node:path";
import { describe, expect, it } from "vitest";
async function read(rel: string) {
return await readFile(path.join(process.cwd(), rel), "utf8");
}
describe("card layout", () => {
it("uses a shared StandardCard component for content and blog cards", async () => {
const contentCard = await read("src/components/ContentCard.astro");
expect(contentCard).toContain('import StandardCard from "./StandardCard.astro";');
expect(contentCard).toContain("<StandardCard");
const blogPostCard = await read("src/components/BlogPostCard.astro");
expect(blogPostCard).toContain('import StandardCard from "./StandardCard.astro";');
expect(blogPostCard).toContain("<StandardCard");
});
it("defines standardized card CSS (content band + footer bar)", async () => {
const css = await read("public/styles/global.css");
expect(css).toContain(".card-content");
expect(css).toContain("justify-content: space-between");
expect(css).toContain(".card-footer");
expect(css).toContain(".card-summary");
});
});