import { registerSectionsSync } from "@decocms/blocks/cms";
import { renderToString } from "react-dom/server";
import { describe, expect, it } from "vitest";
import { DeferredSectionBoundary } from "./DeferredSection";
function Hero({ label }: { label?: string }) {
return
{`hero-${label ?? "none"}`}
;
}
describe("DeferredSectionBoundary (next)", () => {
it("renders the fallback while the promise is pending, per Suspense semantics", () => {
const KEY = "site/sections/NextDeferredA.tsx";
registerSectionsSync({ [KEY]: { default: Hero } });
const neverResolves = new Promise(() => {});
const html = renderToString(
loading}
/>,
);
expect(html).toContain("loading");
expect(html).not.toContain("hero-");
});
});