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:.
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { render, screen } from "@testing-library/react";
|
|
import NotFound, { metadata } from "./not-found";
|
|
|
|
describe("not-found", () => {
|
|
it("has no canonical (the home one does not apply to a 404) and no generic robots tag of its own", () => {
|
|
// o Next já escreve <meta name="robots" content="noindex"> no 404: repeti-lo duplicaria a tag
|
|
expect(metadata.alternates).toEqual({ canonical: null });
|
|
expect(metadata.robots).not.toHaveProperty("index");
|
|
expect(metadata.robots).not.toHaveProperty("follow");
|
|
});
|
|
|
|
it("keeps Googlebot out, since the root layout lets it index", () => {
|
|
expect(metadata.robots).toEqual({
|
|
googleBot: { index: false, follow: false },
|
|
});
|
|
});
|
|
|
|
it("explains the problem and offers a way back, in Portuguese", () => {
|
|
render(<NotFound />);
|
|
|
|
expect(screen.getByRole("heading", { level: 1 })).toHaveTextContent("404");
|
|
expect(
|
|
screen.getByRole("heading", { level: 2, name: "Página não encontrada" }),
|
|
).toBeVisible();
|
|
expect(
|
|
screen.getByRole("link", { name: "Voltar ao início" }),
|
|
).toHaveAttribute("href", "/");
|
|
expect(screen.getByRole("link", { name: "Ver os cases" })).toHaveAttribute(
|
|
"href",
|
|
"/cases",
|
|
);
|
|
});
|
|
});
|