Auditoria E2E — Baseline iaw-platform
Data: 2026-04-15
1. Spec Files
Total: 70 ficheiros .spec.ts
Distribuídos por 29 suites numeradas (excluindo fixtures/, helpers/, scripts/).
2. Suites (29 suites activas)
| Suite | Nome | Domínio |
|---|---|---|
| 00-auth-login | login-flow-admin, login-flow-client | Auth básica |
| 00-auth | auth-flow, auth-forgot-password, auth-navigation, auth-register-validation, public-pages | Auth completa + páginas públicas |
| 10-pricing-checkout | checkout-flow, legal-pages, pricing-flow | Pricing + checkout |
| 20-portal | portal-flow, portal-invoices-detail, portal-payments, portal-profile-edit, portal-quotes, portal-rgpd-export, portal-suggestions, portal-tickets, portal-affiliate | Portal cliente |
| 30-admin | admin-flow, admin-clients-crud, admin-billing-detail, admin-email-audit, admin-fiscal-detail, admin-guide, admin-products-tickets, admin-promotions, admin-quotes-infra-suggestions, admin-reports-settings, admin-stripe-page, admin-team | Admin completo |
| 40-stripe | stripe-checkout-flow, stripe-connect-dashboard, stripe-connect-onboarding, stripe-error-cases, stripe-responsive | Stripe Connect |
| 50-subscription | subscription-management, subscription-responsive | Subscriptions |
| 60-full-flows | admin-complete-flow, connect-onboarding-flow, full-payment-failure, full-purchase-flow, full-refund-flow, portal-complete-flow, subscription-lifecycle-flow, subscription-reactivation-flow | Fluxos completos E2E |
| 70-ux-components | cookie-banner, currency-switcher, language-switcher, onboarding-tour | UX components |
| 80-checkout-complete | checkout-complete | Checkout detalhado |
| 85-data-integrity | data-integrity | Integridade de dados |
| 86-admin-services-lifecycle | admin-services-lifecycle | Lifecycle serviços admin |
| 87-subscription-lifecycle | subscription-lifecycle | Lifecycle subscriptions |
| 88-admin-dashboard-deep | dashboard-deep | Dashboard admin profundo |
| 89-portal-invoices-deep | invoices-deep | Facturas portal profundo |
| 90-resilience | resilience | Resiliência (erros, timeouts) |
| 91-error-handling | error-handling | Tratamento de erros |
| 92-accessibility | accessibility | Acessibilidade (axe) |
| 93-visual-integrity | visual-integrity | Integridade visual |
| 94-currency-cross-page | currency-cross-page | Moeda cross-page |
| 95-visual-regression | visual-regression | Regressão visual |
| 96-admin-churn | admin-churn | Churn ML + alertas |
| 97-admin-pricing | admin-pricing | Pricing admin |
| 98-admin-retention | admin-retention | Retenção admin |
| 99-portal-chat | portal-chat | Chat portal |
| 100-onboarding-assistant | onboarding-assistant | Assistente onboarding |
| 101-admin-predictive | admin-predictive | Admin preditivo |
| 102-docs-guide | docs-guide | Guia documentação |
| 103-customer-journey | customer-journey | Jornada do cliente |
3. Cobertura Funcional
As 70 specs cobrem os seguintes domínios:
| Domínio | Specs | Notas |
|---|---|---|
| Autenticação | auth-flow, login-flow-admin, login-flow-client, auth-navigation, auth-forgot-password, auth-register-validation | Admin + cliente, recuperação password |
| Site Público | public-pages, pricing-flow, legal-pages | Landing, pricing, termos |
| Checkout | checkout-flow, checkout-complete, full-purchase-flow, full-payment-failure, full-refund-flow | Fluxo completo pagamento |
| Portal Cliente | portal-flow, portal-invoices-detail, portal-payments, portal-profile-edit, portal-quotes, portal-tickets, portal-affiliate, portal-rgpd-export, portal-suggestions, portal-complete-flow, invoices-deep | Autoatendimento completo |
| Admin | admin-flow, admin-clients-crud, admin-billing-detail, admin-email-audit, admin-fiscal-detail, admin-promotions, admin-reports-settings, admin-stripe-page, admin-team, admin-guide, admin-products-tickets, admin-quotes-infra-suggestions, admin-complete-flow, dashboard-deep | Gestão completa |
| Stripe Connect | stripe-checkout-flow, stripe-connect-dashboard, stripe-connect-onboarding, stripe-error-cases, stripe-responsive, connect-onboarding-flow | KYC, dashboard, errors |
| Subscriptions | subscription-management, subscription-responsive, subscription-lifecycle, subscription-lifecycle-flow, subscription-reactivation-flow | Lifecycle completo |
| UX Components | cookie-banner, currency-switcher, language-switcher, onboarding-tour | i18n, moeda, cookies, tour |
| Qualidade | accessibility, visual-integrity, visual-regression, resilience, error-handling | Axe, visual, resiliência |
| Dados | data-integrity, currency-cross-page | Integridade, moeda consistente |
| ML/IA | admin-churn, admin-pricing, admin-retention, admin-predictive, onboarding-assistant | Funcionalidades preditivas |
| Docs | docs-guide, customer-journey | Guia utilizador |
Total estimado de test cases: ~427 (contagem grep de test( em todos os specs)
4. Screenshots Gerados
Total: 2.522 ficheiros .png em frontend/public/docs-assets/
Screenshots capturados automaticamente via takeStepScreenshot() com fullPage: true.
5. Sidecar JSON Metadata
Total: 105 ficheiros .json em frontend/public/docs-assets/
Metadata com contexto de negócio, accessibility info, e dados de marketing (formato 40+ colunas).
6. Vídeos Capturados
Total: 92 ficheiros (.mp4 ou .webm) em frontend/
Vídeos tutorial gerados por FFmpeg a partir de screenshots (0.5fps = 2s por screenshot), H.264.
7. Viewport Matrix
29 configs analisados:
| Categoria | Suites | Viewports | Detalhe |
|---|---|---|---|
| 3 viewports (mobile+tablet+desktop) | 19 | mobile (390×844) + tablet (810×1080) + desktop (1280×900) | Suites 00, 10, 20, 30, 40, 50, 60, 70, 80, 95, 96, 97, 98, 99, 100, 101, 102, 103 |
| Desktop only | 10 | desktop (1280×900) apenas | Suites 85–94 |
Suites com matriz completa: 19/29 (66%)
Gap: suites 85–94 (data-integrity, services-lifecycle, subscription-lifecycle, dashboard-deep, invoices-deep, resilience, error-handling, accessibility, visual-integrity, currency-cross-page) — desktop only.
8. Locale Testing
Todas as 70 specs referenciam i18n de alguma forma (grep por language\|locale\|i18n\|switcher retorna 70 ficheiros).
| Spec | Cobertura de idiomas |
|---|---|
language-switcher.spec.ts | 6 idiomas explícitos: pt, en, fr, es, it, de via LANG_CODES. Testa switch, persistência localStorage (iaw_language), reload |
checkout-complete.spec.ts | Referência a pt-PT com Intl.NumberFormat para formatação de preços |
| Demais specs | Testam UI na língua default (PT), sem múltiplas passagens por idioma |
Observação: Não existe ainda um mecanismo de passagem automática por 6 idiomas em todas as suites (apenas o language-switcher testa o mecanismo de troca; validação de strings traduzidas nos outros specs é implícita via UI).
9. Pipeline CI — Jobs E2E
Total de jobs E2E no .gitlab-ci.yml: 80 (excluindo prepare:e2e)
| Ambiente | Jobs | allow_failure | Bloqueia promoção? |
|---|---|---|---|
| dev | 26 | true (template .e2e_platform_dev) | Não — informativo (§17) |
| uat | 26 | false | Sim — BLOQUEANTE |
| staging | 26 | false | Sim — BLOQUEANTE |
| scheduled | 2 | N/A | Alertas |
| prod | 0 | — | dry-run via scheduled |
Templates usados:
.e2e_platform— base: tagsplatform-ci, retry max 1, artifacts 7 dias.e2e_platform_dev— extends.e2e_platform+allow_failure: true
10. Alertas / Gaps Detectados
| # | Severidade | Descrição |
|---|---|---|
| 1 | P2 | 10 suites (85–94) têm apenas viewport desktop — falta mobile+tablet |
| 2 | P2 | 25 ocorrências de test.skip em 5 ficheiros: admin-team, invoices-deep, language-switcher, onboarding-tour, subscription-lifecycle |
| 3 | P3 | Locale testing multi-idioma explícito apenas em language-switcher.spec.ts — restantes specs não percorrem os 6 idiomas |
| 4 | P3 | Prod sem jobs E2E dedicados — apenas via e2e:scheduled:prod (2 jobs, canary) |
| 5 | INFO | Dev E2E allow_failure: true conforme §17 — correcto por design |
Resumo Executivo
Spec files: 70
Suites activas: 29
Test cases (~): 427
Screenshots PNG: 2.522
Metadata JSON: 105
Vídeos: 92
Viewport full (3x): 19/29 suites (66%)
Locale testing: 1 spec explícito (language-switcher) + implícito nos demais
CI jobs E2E: 80 total (26 dev + 26 uat + 26 staging + 2 scheduled)
allow_failure true: dev apenas (por design §17)
test.skip: 25 ocorrências em 5 specs (P2 — investigar)