Vérifier les validations synchrones et asynchrones des formulaires (Reactive Forms) et simuler la navigation avec provideRouter ou RouterTestingHarness.
Pas besoin d'interagir forcément avec le DOM : testez directement l'objet form.valid, form.errors, et vérifiez que les messages d'erreurs n'apparaissent que si le champ est touched ou dirty.
Depuis Angular 15+, RouterTestingHarness.create() simplifie grandement les tests de navigation en initialisant le routeur et en vérifiant l'URL courante via harness.navigateByUrl().
import { provideRouter } from '@angular/router';
import { RouterTestingHarness } from '@angular/router/testing';
describe('Navigation Globale', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
provideRouter([
{ path: 'dashboard', component: DashboardComponent },
{ path: 'login', component: LoginComponent }
])
]
});
});
it('devrait naviguer vers /dashboard et charger le composant', async () => {
const harness = await RouterTestingHarness.create();
const instance = await harness.navigateByUrl('/dashboard', DashboardComponent);
expect(instance).toBeInstanceOf(DashboardComponent);
});
});