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.
34 lines
1.2 KiB
TypeScript
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);
|
|
});
|
|
});
|