Três ofertas (site que traz pedidos pelo WhatsApp, sistema para tirar a operação da planilha, revisão de sistema existente) com miniatura e formulário com o tipo escolhido; botão principal do hero abre o WhatsApp; moldura da SEV no hero do celular; menu fecha ao navegar, Esc, foco preso incluindo a barra de cookies e espaço para ela; CinematicHome como componente de servidor com ilha cliente; /ia com H1 de oferta e cartão do que você recebe; botão flutuante em aside com transform; AVIF antes de WebP; copy sem repetir contato direto.
25 lines
1020 B
TypeScript
25 lines
1020 B
TypeScript
import nextConfig from "../next.config";
|
|
|
|
describe("next.config", () => {
|
|
it("does not announce the framework in the X-Powered-By header", () => {
|
|
expect(nextConfig.poweredByHeader).toBe(false);
|
|
});
|
|
|
|
it("serves AVIF before WebP, because the browser takes the first format of the list it accepts", () => {
|
|
expect(nextConfig.images?.formats).toEqual(["image/avif", "image/webp"]);
|
|
});
|
|
|
|
it("leaves the image cache time to the framework default instead of revalidating every minute", () => {
|
|
expect(nextConfig.images).not.toHaveProperty("minimumCacheTTL");
|
|
});
|
|
|
|
it("keeps the CSP in Report-Only until Google Ads is allowed in it, never enforcing it by accident", async () => {
|
|
const rules = (await nextConfig.headers?.()) ?? [];
|
|
const site = rules.find(({ source }) => source === "/(.*)");
|
|
const names = site?.headers.map(({ key }) => key) ?? [];
|
|
|
|
expect(names).toContain("Content-Security-Policy-Report-Only");
|
|
expect(names).not.toContain("Content-Security-Policy");
|
|
});
|
|
});
|