wip: foto da pasta principal antes de trocar de branch
CI / verify (push) Failing after 5m29s

Estado do disco em 14/10/2026, sem filtrar. Inclui as copias .sync-conflict-* do Syncthing de 07/10 e os 15 arquivos que o Syncthing apagou; todo esse conteudo ja existia em outros commits. So havia fora do Git: AGENTS.md, CLAUDE.md e a alteracao em data/project-health.json.
This commit is contained in:
Evandro Fonseca Junior committed 2026-10-14 00:42:49 -03:00
1 parent b2f3899dc2
commit dfcadc71fa
77 files changed
+6944 -2419

No files matched your search

+12 -10
View File
@@ -58,12 +58,16 @@ function readJsonLdEntities(container: HTMLElement): Record<string, unknown>[] {
}
function expectCaseCtas() {
const destinations = screen
.getAllByRole("link")
.map((link) => link.getAttribute("href"));
expect(destinations).toContain("/#contact");
expect(destinations).toContain("/servicos");
expect(destinations).not.toContain("/curriculo");
expect(
screen.getByRole("link", {
name: "Avaliar perfil para contratação",
}),
).toHaveAttribute("href", "/curriculo");
expect(
screen.getByRole("link", {
name: "Solicitar consultoria técnica",
}),
).toHaveAttribute("href", "/#contact");
}
it("keeps the six public params and factual case metadata", async () => {
@@ -209,7 +213,7 @@ it("renders the authorized detailed case in order with traceable sources", async
});
it("keeps the fallback concise and links its declared services", async () => {
const caseStudy = getCase("sc-plus");
const caseStudy = getCase("gcc-installer");
expect(caseStudy.detail).toBeUndefined();
const ui = await CasePage({
params: Promise.resolve({ slug: caseStudy.id }),
@@ -222,9 +226,7 @@ it("keeps the fallback concise and links its declared services", async () => {
for (const technology of caseStudy.stack) {
expect(screen.getByText(technology)).toBeVisible();
}
expect(
screen.getByRole("link", { name: "Abrir demonstração" }),
).toHaveAttribute("href", caseStudy.demoUrl);
expect(screen.queryByRole("link", { name: "Abrir demonstração" })).toBeNull();
expect(screen.getByRole("link", { name: "Ver código" })).toHaveAttribute(
"href",
caseStudy.githubUrl,
+3 -12
View File
@@ -35,11 +35,10 @@ export async function generateMetadata({
const url = `${siteUrl}/cases/${caseStudy.id}`;
return {
title: `${caseStudy.title} | Case de Engenharia`,
title: `${caseStudy.title} | Case de Engenharia de Software`,
description: caseStudy.summary,
alternates: { canonical: url },
openGraph: {
locale: "pt_BR",
title: caseStudy.title,
description: caseStudy.summary,
url,
@@ -110,14 +109,6 @@ export default async function CasePage({ params }: CasePageProps) {
<p className="ds-copy max-w-[68ch] !text-[rgba(255,255,255,.78)]">
{caseStudy.detail?.answer.text ?? caseStudy.summary}
</p>
{caseStudy.role ? (
<p className="ds-copy max-w-[68ch] !text-[rgba(255,255,255,.78)]">
<strong className="font-semibold text-white">
Minha participação:
</strong>{" "}
{caseStudy.role}
</p>
) : null}
{!caseStudy.detail ? (
<p className="mt-sp-6 text-[15px] leading-8 text-white">
{caseStudy.impact}
@@ -245,9 +236,9 @@ export default async function CasePage({ params }: CasePageProps) {
<div className="mt-sp-6 flex flex-wrap gap-sp-3">
<Link
className="ds-link ds-link-accent"
href={intentCtas.project.href}
href={intentCtas.hiring.href}
>
{intentCtas.project.label}
{intentCtas.hiring.label}
</Link>
<Link
className="ds-link ds-link-muted"
+2 -3
View File
@@ -18,7 +18,6 @@ export const metadata: Metadata = {
canonical: pageUrl,
},
openGraph: {
locale: "pt_BR",
title: pageTitle,
description: pageDescription,
url: pageUrl,
@@ -137,11 +136,11 @@ export default function CasesPage() {
<div className="mt-sp-10 flex flex-wrap gap-sp-3">
<MagneticButton
as="a"
href={intentCtas.project.href}
href={intentCtas.hiring.href}
className="ds-link ds-link-accent"
strength={0.25}
>
{intentCtas.project.label}
{intentCtas.hiring.label}
</MagneticButton>
<MagneticButton
as="a"