Las pruebas a canActivate nos permitira ver como se ingresa a la ruta
Para poder hacer eso es necesario crear un archivo que simule fake Routes y fake states en nuestra carpeta testing
snapshot.ts
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
export function fakeRouterStateSnapshot(options: Partial<RouterStateSnapshot>) {
 return options as RouterStateSnapshot;
}
export function fakeActivatedStateSnapshot(options: Partial<ActivatedRouteSnapshot>) {
 return options as ActivatedRouteSnapshot;
}
para luego cargar esto en nuestro archivo de pruebas de guardianes
auth.guard.spec.ts
import { fakeActivatedStateSnapshot, fakeRouterStateSnapshot, mockObservable } from './../../testing';
import { generateOneUser } from '../models/user.mock';
it('should return true with session', (doneFn) => {
  const activatedRoute = fakeActivatedStateSnapshot({});
  const routerState = fakeRouterStateSnapshot({});
  const userMock = generateOneUser();
  authService.getUser.and.returnValue(mockObservable(userMock));
  guard.canActivate(activatedRoute, routerState)
  .subscribe(rta => {
   expect (rta).toBeTruthy();
   doneFn();
  });
 });
 it('should return true without session', (doneFn) => {
  const activatedRoute = fakeActivatedStateSnapshot({});
  const routerState = fakeRouterStateSnapshot({});
  authService.getUser.and.returnValue(mockObservable(null));
  guard.canActivate(activatedRoute, routerState)
  .subscribe(rta => {
   expect (rta).toBeFalse();
   expect (router.navigate).toHaveBeenCalledWith(['/home']);
   doneFn();
  });
 });
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?