Установка canActivate в true при тестировании с фиктивными данными с помощью Protractor
У меня есть тест Protractor E2E, запущенный с переменной AuthGuard на canActivate в Маршрутах для каждого компонента.
Это происходит при вызове любого компонента, который проверяет сервер идентификации, если у вас есть действительный токен, иначе он попытается получить его.
Теперь я хочу запустить свои тесты с фиктивными данными (используя node-mock-server), но здесь я решаю проблемы. Мне нужно, чтобы canActivate в маршрутах для Authguard имел значение true по умолчанию, иначе он попытается получить токен (который он не может получить) и заблокирует всю навигацию.
Можно ли смоделировать canActivate или AuthGuard (по умолчанию true) в beforeAll()
?
Маршруты:
const routes: Routes = [
{
path: 'a',
component: AComponent,
canActivate: [AuthGuard],
children: [
{
path: 'b',
component: BComponent,
canActivate: [AuthGuard],
children: [{
path: 'c/:c_nr',
component: CComponent,
canActivate: [AuthGuard]
}
]
}
]
}
];
[AuthGuard]:
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private oauthService: OAuthService, ) { }
canActivate() {
if (this.oauthService.hasValidAccessToken()) {
return true;
}
this.oauthService.initImplicitFlow();
}
}
Надеюсь, у кого-то есть ответ для меня.