Case com mídia ao lado do título e play acessível; problema de cada cliente reescrito com base nos dados; serviços relacionados em 2 cards; FAQ antes do próximo passo e bloco 'Onde já apliquei isso'; Apolo citada em IoT e arquitetura. metaTitle até 43 caracteres e descrições até 155 com teste; JSON-LD CreativeWork; imagens de compartilhamento abaixo de 100 KB; 404 e robots corrigidos; server-only nos módulos com node:.
49 lines
1.7 KiB
TypeScript
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: "Onde já apliquei isso" }),
|
|
).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: `Ler 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();
|
|
});
|