50 lines
2.6 KiB
Markdown
50 lines
2.6 KiB
Markdown
# Integração do portal com a API
|
|
|
|
## Ligações públicas
|
|
|
|
O catálogo abre em `/oportunidades`, as fichas em `/oportunidades/{slug}` e os
|
|
sectores em `/sectores/{slug}`. O formulário geral abre em `/manifestar-interesse`;
|
|
acrescentar `/{slug}` selecciona uma oportunidade publicada. As rotas podem ser
|
|
abertas directamente ou recarregadas. A navegação usa o histórico do Inertia.
|
|
O servidor devolve 404 para oportunidades indisponíveis e sectores inactivos.
|
|
O teste `PublicPortalNavigationTest` cobre estes contratos (52 verificações).
|
|
|
|
Verificação no Edge concluída em 25/09/2026: abertura pela ficha, recarregamento,
|
|
formulário contextual, Voltar/Avançar, ligação de sector e regresso ao início.
|
|
As verificações no browser não gravaram pedidos.
|
|
|
|
Foi corrigida uma falha no cache persistente: colecções PHP podiam regressar como
|
|
objectos incompletos, causando uma página em branco. O cache `portal_home_v2_*`
|
|
guarda apenas arrays e valores simples, e é invalidado nas alterações do catálogo.
|
|
O teste de regressão verifica a serialização com classes desactivadas, a segunda
|
|
leitura e a invalidação. Os testes de navegação/cache e gestão passaram em conjunto
|
|
(9 testes, 180 verificações).
|
|
|
|
A página pública `PortalInvestidor` consulta `/api/v1/home` para os sectores,
|
|
estatísticas e destaques. O catálogo usa `/api/v1/opportunities`, com pesquisa,
|
|
filtros e paginação no servidor. A ficha consulta a oportunidade pelo slug.
|
|
|
|
O formulário envia `POST /api/v1/interest-requests`, incluindo `fullName`,
|
|
consentimento e a referência da oportunidade seleccionada. A confirmação só
|
|
aparece quando a API devolve sucesso e uma referência. Erros de validação são
|
|
apresentados junto dos campos; falhas de rede e limites de pedidos preservam os
|
|
dados preenchidos. Envios simultâneos são bloqueados durante o processamento.
|
|
|
|
## Verificação
|
|
|
|
Executar os 12 testes do cliente HTTP e dos contratos com Node 24:
|
|
|
|
```powershell
|
|
node --test tests/frontend/portal-api.test.mjs
|
|
npm run types:check
|
|
npm run build
|
|
```
|
|
|
|
Em 24/09/2026, passaram os testes acima e a verificação de lint dos ficheiros
|
|
alterados. Foi também verificada a navegação em Edge: início, catálogo, pesquisa
|
|
sem distinção de maiúsculas, filtros e ficha consultaram a API local real.
|
|
O formulário foi verificado com respostas simuladas 422, 429 e 201, incluindo
|
|
retenção de dados, referência devolvida pelo servidor e prevenção de envio
|
|
duplicado. Nenhum pedido fictício foi persistido nesses testes de navegador.
|
|
O formulário foi inspeccionado num ecrã de 390 px, sem transbordamento horizontal.
|