import { describe, expect, it, beforeEach } from "vitest"; import { render } from "@testing-library/react"; import { HelmetProvider } from "react-helmet-async"; import { DocumentTitle } from "./document-title.tsx"; const renderTitle = (ui: React.ReactNode) => render({ui}); describe("DocumentTitle", () => { beforeEach(() => { document.head.innerHTML = "Docmost"; }); it("appends the app name", () => { renderTitle(); expect(document.title).toBe("Home - Docmost"); }); it("omits the app name when asked", () => { renderTitle(); expect(document.title).toBe("My page"); }); it("falls back to the app name without a title", () => { renderTitle(); expect(document.title).toBe("Docmost"); }); it("never renders an empty title", () => { renderTitle(); const titles = Array.from(document.querySelectorAll("head > title")); expect(titles.every((node) => node.textContent !== "")).toBe(true); }); it("renders extra head children", () => { renderTitle( , ); expect( document.querySelector('head > meta[name="robots"]')?.getAttribute("content"), ).toBe("noindex"); }); });