22 lines
982 B
TypeScript
22 lines
982 B
TypeScript
// @vitest-environment node
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
const sourcePath = path.resolve(process.cwd(), "apps/web/app/components/ui/tables/TableSimple.tsx");
|
|
|
|
describe("TableSimple render performance", () => {
|
|
it("precomputes repeated table collections outside the row render path", () => {
|
|
const source = fs.readFileSync(sourcePath, "utf8");
|
|
|
|
expect(source).toContain("const visibleHeaders = useMemo");
|
|
expect(source).toContain("const firstColumnActions = useMemo");
|
|
expect(source).toContain("const trailingActions = useMemo");
|
|
expect(source).toContain("const selectedRowsSet = useMemo");
|
|
expect(source).not.toContain("actions.filter((f) => f.firstColumn)");
|
|
expect(source).not.toContain("actions.filter((f) => !f.firstColumn)");
|
|
expect(source).not.toContain("headers.filter((f) => !f.hidden)");
|
|
expect(source).not.toContain("selectedRows?.includes(item)");
|
|
});
|
|
});
|