I test del frontend sono suddivisi in:
- Unit / Component / Service test: eseguiti con Karma + Jasmine (
ng test) - Lint / typecheck (consigliato): per qualità del codice e individuazione rapida di regressioni
- E2E (opzionale): se presenti (Cypress / Playwright) per la validazione dei flussi end-to-end
Nota
I test Angular possono essere eseguiti in modalità headless, quindi sono adatti sia a GitHub Actions sia all’esecuzione locale.
File
dashboards/dashboard.routing.spec.tsrouting-module/routing-module.module.spec.ts
Osservazioni
I test sulle rotte sono limitati.
Non vengono verificate:
- configurazione completa delle rotte
- guard (
AuthGuard,LoginActivate,NgxPermissionsGuard) - rotte lazy-loaded
- rotte con parametri
- fallback / not-found
Totale 59 component test, distribuiti su:
- Componenti funzionali (anagrafica, pagamenti, quadri, dashboard, ecc.)
- Componenti shared (layout, sidebar, navbar, dialog)
- Home e not-found
Esempi
app.component.spec.tshome/home.component.spec.tsnavbar/navbar.component.spec.tscomponents/**/**.component.spec.tsshared/**/**.component.spec.ts
La maggior parte dei test verifica correttamente la creazione del componente
Totale 44 service test (copertura molto alta).
Esempi
anagrafica.service.spec.tspermission.service.spec.tsrole.service.spec.tssession-storage.service.spec.tspagamento.service.spec.tsstoryProcess.service.spec.tsquadro-riepilogativo.service.spec.ts
Area meglio coperta del progetto.
core/core.module.spec.ts
- Node.js (versione allineata alla pipeline del progetto)
- Dipendenze installate (
npm cioyarn install --frozen-lockfile) - Chrome / Chromium disponibile (generalmente già presente sugli runner GitHub)
cd unicontract-frontend
npm ci
npx ng test --watch=false --browsers=ChromeHeadlesscd unicontract-frontend
npm ci
npx ng test --watch=false --browsers=ChromeHeadless --code-coverageOutput atteso (default Angular)
coverage/<nome-progetto>/index.htmlcoverage/<nome-progetto>/lcov.info
cd unicontract-frontend
npm cinpx ng testnpx ng test --watch=false --browsers=ChromeHeadlessnpx ng test --watch=false --browsers=ChromeHeadless --code-coveragePer ottenere una pipeline frontend in GitHub Actions, lo schema tipico è:
- Setup Node.js
- Installazione dipendenze frontend
- Esecuzione test frontend (
ng testheadless) - (Opzionale) pubblicazione artifact di coverage (frontend)
Vedi .github/workflows/angular-tests.yml per i dettagli.
cd unicontract-frontend
npm ci
npx ng test --watch=false --browsers=ChromeHeadless --code-coverage