/** * @vitest-environment node */ import { it, describe, expect } from "vitest"; import { renderToString, renderToStaticMarkup } from "react-dom/server"; import { VList } from "./VList"; import { JSDOM } from "jsdom"; const LIST_ID = "list-id"; describe("SSR", () => { it("should render items with renderToString and vertical", () => { const COUNT = 10; const OVERSCAN = 4; const html = renderToString( {Array.from({ length: 1000 }).map((_, i) => (
{i}
))}
); expect(html).toMatchSnapshot(); expect( new JSDOM(html).window.document.getElementById(LIST_ID)!.children[0]! .childElementCount ).toEqual(COUNT + OVERSCAN); }); it("should render items with renderToStaticMarkup and vertical", () => { const COUNT = 10; const OVERSCAN = 4; const html = renderToStaticMarkup( {Array.from({ length: 1000 }).map((_, i) => (
{i}
))}
); expect(html).toMatchSnapshot(); expect( new JSDOM(html).window.document.getElementById(LIST_ID)!.children[0]! .childElementCount ).toEqual(COUNT + OVERSCAN); }); it("should render items with renderToString and horizontal", () => { const COUNT = 10; const OVERSCAN = 4; const html = renderToString( {Array.from({ length: 1000 }).map((_, i) => (
{i}
))}
); expect(html).toMatchSnapshot(); expect( new JSDOM(html).window.document.getElementById(LIST_ID)!.children[0]! .childElementCount ).toEqual(COUNT + OVERSCAN); }); it("should render items with renderToStaticMarkup and horizontal", () => { const COUNT = 10; const OVERSCAN = 4; const html = renderToStaticMarkup( {Array.from({ length: 1000 }).map((_, i) => (
{i}
))}
); expect(html).toMatchSnapshot(); expect( new JSDOM(html).window.document.getElementById(LIST_ID)!.children[0]! .childElementCount ).toEqual(COUNT + OVERSCAN); }); });