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.
This commit is contained in:
1 parent
7b633f0f4a
commit
de6af74a0c
37 files changed
+1062
-254
No files matched your search
+50
-12
@@ -100,16 +100,57 @@ it("maps each service to its client cases", () => {
|
||||
"lavacao-047",
|
||||
"sc-plus",
|
||||
]);
|
||||
expect(getService("arquitetura-de-software").relatedCaseIds).toEqual([
|
||||
"sev-modaintima",
|
||||
]);
|
||||
// GCC Installer é Python/Tkinter: não combina com um serviço de Tauri e Rust
|
||||
expect(getService("tauri-rust").relatedCaseIds).toEqual([]);
|
||||
// nenhum case de cliente é um diagnóstico de sistema: o serviço fica só com a experiência na Apolo
|
||||
expect(getService("arquitetura-de-software").relatedCaseIds).toEqual([]);
|
||||
expect(getService("arquitetura-de-software").caseRelevance).toEqual({});
|
||||
// o GCC Installer é um app para Windows (em Python): entra no serviço de desktop como projeto próprio
|
||||
expect(getService("tauri-rust").relatedCaseIds).toEqual(["gcc-installer"]);
|
||||
expect(getService("integracao-hardware-software-iot").relatedCaseIds).toEqual(
|
||||
["twins-lab"],
|
||||
);
|
||||
});
|
||||
|
||||
it("says what the Next.js service cases really prove: sites built by me, not a diagnosis", () => {
|
||||
const { caseRelevance } = getService("consultoria-nextjs");
|
||||
for (const id of ["sev-modaintima", "lavacao-047"]) {
|
||||
expect(caseRelevance[id]).toMatch(/construí em Next\.js 16/);
|
||||
expect(caseRelevance[id]).not.toMatch(/diagn|conheço por dentro/i);
|
||||
}
|
||||
});
|
||||
|
||||
it("is honest that the desktop case is a Windows app made in Python, not in Tauri", () => {
|
||||
expect(getService("tauri-rust").caseRelevance["gcc-installer"]).toMatch(
|
||||
/Windows.*Python/,
|
||||
);
|
||||
});
|
||||
|
||||
it("places the services in Joinville and SC instead of only 'em Garuva'", () => {
|
||||
expect(getService("criacao-de-sites").metaTitle).toBe(
|
||||
"Criação de sites em Joinville e SC",
|
||||
);
|
||||
for (const service of servicePages) {
|
||||
expect(service.metaTitle).not.toMatch(/em Garuva/);
|
||||
expect(service.metaDescription).toMatch(/Garuva e Joinville \(SC\)/);
|
||||
}
|
||||
});
|
||||
|
||||
it("opens the case lists with what sells: the catalog, the order by WhatsApp and the panel", () => {
|
||||
const deliveries =
|
||||
caseStudies.find(({ id }) => id === "sev-modaintima")?.deliveries ?? [];
|
||||
const [catalog, whatsapp, panel] = deliveries;
|
||||
expect(catalog).toMatch(/^Catálogo por tamanho/);
|
||||
expect(whatsapp).toMatch(/^Pedido pelo WhatsApp/);
|
||||
expect(panel).toMatch(/^Painel para a loja cadastrar as peças/);
|
||||
// a vitrine com animações, que era a primeira, vai para o fim
|
||||
expect(deliveries[deliveries.length - 1]).toMatch(
|
||||
/^Uma vitrine com animações/,
|
||||
);
|
||||
// a animação da Lavação também não abre a lista
|
||||
expect(
|
||||
caseStudies.find(({ id }) => id === "lavacao-047")?.deliveries[0],
|
||||
).toMatch(/^Tabela de preços/);
|
||||
});
|
||||
|
||||
it("puts client cases before laboratory cases when listing related work", () => {
|
||||
expect(
|
||||
getRelatedCases(["twins-lab", "lavacao-047", "sev-modaintima"]).map(
|
||||
@@ -128,14 +169,11 @@ it("derives the exact related service set from the existing relationship", () =>
|
||||
.map(({ slug }) => slug)
|
||||
.sort(),
|
||||
).toEqual(
|
||||
[
|
||||
"criacao-de-sites",
|
||||
"engenharia-de-software",
|
||||
"consultoria-nextjs",
|
||||
"arquitetura-de-software",
|
||||
].sort(),
|
||||
["criacao-de-sites", "engenharia-de-software", "consultoria-nextjs"].sort(),
|
||||
);
|
||||
expect(getRelatedServices("gcc-installer")).toEqual([]);
|
||||
expect(getRelatedServices("gcc-installer").map(({ slug }) => slug)).toEqual([
|
||||
"tauri-rust",
|
||||
]);
|
||||
});
|
||||
|
||||
it("resolves every declared related case ID", () => {
|
||||
|
||||
Reference in new issue
Block a user