В настоящее время я тестирую сквозную функциональность для проекта Angular 2+ с использованием Protractor.
Моя проблема возникает, когда пользователь должен войти в систему с внешним провайдером. В приложении есть кнопка, которая перенаправляет пользователя на внешний вход, и, если пользователь успешно вошел в систему, провайдер возвращает пользователя в приложение с токеном и angular обрабатывает сеанс.
Пример:
- Пользователь в http://example.com нажимает кнопку «Войти».
- Приложение перенаправляет пользователя на http://authproviderexample.com/login.
- Пользователь должен войти в систему с именем пользователя и паролем.
- Если все верно, поставщик аутентификации перенаправляет пользователя в приложение с токеном сеанса http://example.com/login?token=ABCDEFG123456789
- Приложение обрабатывает токен, чтобы пользователь вошел в систему.
Я хочу пропустить этот внешний вход в систему и «смоделировать» его, чтобы я мог проверить, перенаправляет ли мое приложение внешний и правильно ли обрабатывает токен. , Таким образом, мои тесты приложений не зависят от внешнего провайдера входа в систему.
В некотором смысле я хочу перехватить навигацию, чтобы я мог сказать Angular: если пользователь перенаправлен на "http://authproviderexample.com/login"вместо этого перенаправьте его на" http://example.com/login?token=ABCDEFG123456789 ". Я буду хранить постоянный токен, чтобы я мог войти, не лежа во внешнем сервисе.