Files
portifolio-evandrodevbr/app/sitemap.test.ts
T
Evandro Fonseca Junior de6af74a0c feat(cases): prova certa por serviço, páginas internas com trabalho no topo
Diagnóstico sem case que não cabe; desktop com o GCC Installer como projeto próprio; IoT com o Twins Lab e a nota da Apolo. Mosaico de pôsteres em /servicos e /cases, faixa baixa em uma coluna no currículo, privacidade e laboratório; Laboratório como lista compacta; SEV começando por catálogo, pedido no WhatsApp e painel; Joinville e SC nos títulos; imagens do LCP com fetchPriority e sizes reais; pré-carregamento só no hover; 404 com Open Graph próprio.
2026-10-14 17:01:35 -03:00

34 lines
1.2 KiB
TypeScript

import { caseStudies, servicePages, siteUrl } from "@/lib/site-content";
import sitemap from "./sitemap";
/** O mapa do site lista a home, as páginas fixas, cada serviço e cada case, sem repetir endereço. */
describe("sitemap", () => {
const urls = sitemap().map((entry) => entry.url);
it("lists the fixed pages, every service and every case, once each", () => {
expect(urls).toEqual(
expect.arrayContaining([
siteUrl,
`${siteUrl}/curriculo`,
`${siteUrl}/privacidade`,
`${siteUrl}/servicos`,
`${siteUrl}/cases`,
`${siteUrl}/ia`,
...servicePages.map(({ slug }) => `${siteUrl}/servicos/${slug}`),
...caseStudies.map(({ id }) => `${siteUrl}/cases/${id}`),
]),
);
expect(new Set(urls).size).toBe(urls.length);
expect(urls).toHaveLength(6 + servicePages.length + caseStudies.length);
});
it("never lists the 404 page", () => {
expect(urls.some((url) => /not-found|nada/.test(url))).toBe(false);
});
it("gives every entry the same fixed date, so the sitemap is equal on every build", () => {
const dates = sitemap().map((entry) => String(entry.lastModified));
expect(new Set(dates).size).toBe(1);
});
});