Установка 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();
    }
}

Надеюсь, у кого-то есть ответ для меня.

0 ответов

Другие вопросы по тегам