test.web/presentation/renderers/table.renderer.test.ts
test.web/presentation/renderers/table.renderer.test.ts is a file in Codebase Testing. 25 lines of code and 0 definitions.
import { describe, expect, it } from "vitest";
import { renderTable } from "@banes-lab/web/presentation/renderers/table.renderer.ts";
const HEADERS = ["Keyword", "Meaning"];
const ROWS = [
["READ", "Loads <code>data</code>"],
["WRITE", "Stores data"],
];
const KEYWORD_CLASS = "keyword";
describe("renderTable", () => {
it("renders a header row and one body row per entry", () => {
const table = renderTable({ headers: HEADERS, kind: "table", rows: ROWS });
expect(table.querySelectorAll("th")).toHaveLength(HEADERS.length);
expect(table.querySelectorAll("tbody tr")).toHaveLength(ROWS.length);
expect(table.querySelector("td code")).not.toBeNull();
});
it("wraps leading cells in keyword chips for the keyword tone", () => {
const table = renderTable({ headers: HEADERS, kind: "table", rows: ROWS, tone: "keyword" });
expect(table.classList.contains("keyword")).toBe(true);
expect(table.querySelectorAll(`td .${KEYWORD_CLASS}`)).toHaveLength(ROWS.length);
});
it("emboldens the first column for the role tone", () => {
const table = renderTable({ headers: HEADERS, kind: "table", rows: ROWS, tone: "role" });
expect(table.querySelectorAll("td strong")).toHaveLength(ROWS.length);
});
});