UNPKG

@octopusdeploy/design-system-components

Version:
41 lines (40 loc) 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("@testing-library/react"); const vitest_1 = require("vitest"); const PageTitleProvider_1 = require("../PageTitleProvider"); (0, vitest_1.describe)("PageTitleProvider", () => { (0, vitest_1.it)("sets the page title using the primary and secondary segments", () => { const result = renderPageTitleProvider({ pageTitlePrimarySegment: "Primary", pageTitleSecondarySegment: "Secondary" }); result.assertPageTitle("Primary - Secondary - Octopus Deploy"); }); (0, vitest_1.it)("sets the page title using just the primary segment", () => { const result = renderPageTitleProvider({ pageTitlePrimarySegment: "Primary", pageTitleSecondarySegment: undefined }); result.assertPageTitle("Primary - Octopus Deploy"); }); (0, vitest_1.it)("sets the page title using just the secondary segment", () => { const result = renderPageTitleProvider({ pageTitlePrimarySegment: undefined, pageTitleSecondarySegment: "Secondary" }); result.assertPageTitle("Secondary - Octopus Deploy"); }); (0, vitest_1.it)("updates the page title when the segments change", () => { const result = renderPageTitleProvider({ pageTitlePrimarySegment: "My Project", pageTitleSecondarySegment: "Deployments" }); result.rerender({ pageTitlePrimarySegment: "My Project", pageTitleSecondarySegment: "Releases" }); result.assertPageTitle("My Project - Releases - Octopus Deploy"); }); }); function renderPageTitleProvider(renderOptions) { const getUiWithRenderOptions = (renderOptions) => ((0, jsx_runtime_1.jsx)(PageTitleProvider_1.PageTitleProvider, { children: (0, jsx_runtime_1.jsx)(TestPageTitleSetter, { pageTitlePrimarySegment: renderOptions?.pageTitlePrimarySegment, pageTitleSecondarySegment: renderOptions?.pageTitleSecondarySegment }) })); const { rerender } = (0, react_1.render)(getUiWithRenderOptions(renderOptions)); return { rerender: (renderOptions) => rerender(getUiWithRenderOptions(renderOptions)), assertPageTitle: (pageTitle) => { (0, vitest_1.expect)(document.title).toBe(pageTitle); }, }; } function TestPageTitleSetter({ pageTitlePrimarySegment, pageTitleSecondarySegment }) { (0, PageTitleProvider_1.useSetPageTitlePrimarySegmentEffect)(pageTitlePrimarySegment); (0, PageTitleProvider_1.useSetPageTitleSecondarySegmentEffect)(pageTitleSecondarySegment); return null; }