Files
Evandro Fonseca Junior fc44a69fb3 feat(servicos): ofertas no topo de /servicos, capa por assunto e diagramas
/servicos abre com as 3 ofertas e depois outros serviços; H1 de criação de sites e de engenharia com o nome da oferta; capa de cada serviço pelo assunto (SEV fora do próprio case cai de ~11 para 2 imagens); diagrama de fluxo em SVG nos serviços sem case; cases com o que o cliente passou a poder fazer e contato logo depois de Como ficou; FAQ num componente só; lastmod por rota; ProfessionalService com areaServed.
2026-10-14 19:14:46 -03:00

49 lines
1.7 KiB
TypeScript

import { render, screen } from "@testing-library/react";
import { caseStudies } from "@/lib/site-content";
import { ServiceRelatedCases } from "./ServiceRelatedCases";
const caseStudy = caseStudies[0];
const note = "Desde 2022 trabalho com isso, em sistemas internos.";
it("renders nothing without cases and without an experience note", () => {
const { container } = render(
<ServiceRelatedCases cases={[]} relevance={{}} />,
);
expect(container).toBeEmptyDOMElement();
});
it("shows only the experience note, without the 'open the case' sentence, when there are no cases", () => {
const { container } = render(
<ServiceRelatedCases cases={[]} relevance={{}} experienceNote={note} />,
);
expect(
screen.getByRole("heading", { level: 2, name: "Como eu trabalho nisso" }),
).toBeVisible();
expect(screen.getByText(note)).toBeVisible();
expect(screen.queryByText(/Abra o case/)).toBeNull();
expect(screen.queryByRole("link")).toBeNull();
expect(container.querySelector(".ds-grid-2")).toBeNull();
});
it("invites to open the case and lists each case when there are some", () => {
render(
<ServiceRelatedCases
cases={[caseStudy]}
relevance={{ [caseStudy.id]: "Frase própria sobre a relação." }}
/>,
);
expect(screen.getByText(/Abra o case/)).toBeVisible();
expect(screen.getByText("Frase própria sobre a relação.")).toBeVisible();
expect(
screen.getByRole("link", { name: `Ver case ${caseStudy.title}` }),
).toHaveAttribute("href", `/cases/${caseStudy.id}`);
});
it("falls back to the case summary when no relevance sentence is given", () => {
render(<ServiceRelatedCases cases={[caseStudy]} relevance={{}} />);
expect(screen.getByText(caseStudy.summary)).toBeVisible();
});