Fix brand text test to handle split-element rendering

The nav brand was changed to <span>Groom</span>Book for color styling,
but getByText with a regex can't match text split across child elements.
Use a custom text matcher that checks the STRONG element's textContent.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Groom Book CTO
2026-03-19 03:20:09 +00:00
parent f21ac59040
commit ad4cc56546
+6 -2
View File
@@ -23,7 +23,9 @@ function renderApp(route = "/admin") {
describe("App navigation", () => {
it("renders the Groom Book brand", () => {
const nav = renderApp();
expect(within(nav).getByText(/Groom\s*Book/)).toBeInTheDocument();
expect(
within(nav).getByText((_, el) => el?.tagName === "STRONG" && /Groom\s*Book/.test(el.textContent ?? ""))
).toBeInTheDocument();
});
it("renders the Book CTA button", () => {
@@ -61,6 +63,8 @@ describe("App navigation", () => {
</MemoryRouter>
);
// Customer portal should render at root - no admin nav present
expect(screen.queryByText(/Groom\s*Book/)).not.toBeInTheDocument();
expect(
screen.queryByText((_, el) => el?.tagName === "STRONG" && /Groom\s*Book/.test(el.textContent ?? ""))
).not.toBeInTheDocument();
});
});