/**
* @vitest-environment node
*/
import { it, describe, expect } from "vitest";
import { renderToString, renderToStaticMarkup } from "react-dom/server";
import { WindowVirtualizer } from "./WindowVirtualizer";
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)!
.firstElementChild!.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)!
.firstElementChild!.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)!
.firstElementChild!.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)!
.firstElementChild!.childElementCount
).toEqual(COUNT + OVERSCAN);
});
});