Угловой + Жасмин тест Http перенаправление обработки - PullRequest
0 голосов
/ 26 ноября 2018

Я создаю приложение, которое обрабатывает сеансы с помощью токена, срок действия которого может истечь в бэкэнде (через x часов).Перехватчик запросов добавляет этот токен к каждому запросу перед его отправкой.Это отлично работает.

Когда сеанс истекает, мой бэкэнд отправляет перенаправление провайдеру идентификации oauth, который также отлично работает при запросах страниц.Если сеанс истекает, когда пользователь открывает страницу (например, не закрывает браузер в течение ночи), мне нужно обрабатывать это по-разному.

Каждый раз, когда окно фокусируется, я вызываю обработчик, который вызывает специальную проверку«конечная точка, которая возвращает истину, если пользователь вошел в систему, и ведет себя как« нормальная », если пользователь не вошел в систему (перенаправление на провайдера идентификации).Мне нужно "поймать" ответы! = True и открыть всплывающее окно.

это вызывает проблему:

Сначала я просто попытался проверить, является ли ответредирект (статус === 302).Это не работает, потому что браузер прозрачно обрабатывает перенаправления - мое приложение никогда не узнает, привело ли перенаправление к ответу и получило ли оно его количество.

Поэтому моя вторая попытка - проверить, приходит ли ответ от моей личности.провайдер, проверив, содержит ли uri соответствующий адрес.

this.http.get('check/', {headers: noCacheHeaders, observe: 'response'}).subscribe(
          res => {
              //R.test returns true if the regex matches, false otherwise
              if (R.test(/identity\.domain\.org\, res.url)) {
                  displaySessionTimeoutPopUp();
              }
          });

Теоретически это должно работать - если свойство response.url обновляется при перенаправлениях, которые я хотел протестировать с помощью теста jasmine с HttpTestingModule.

HttpTestingModule вообще не следует перенаправлениям, и ответ 302 приводит к вызову обработчика ошибок (который я не регистрирую в моем вызове subsribe-call, поскольку в «реальном мире» 302 никогда не попадет в обработчик).

Итак, два моих вопроса:

  • обновляют ли перенаправления свойство URL-адреса угловых ответов?
  • Как проверить логику, которая зависит от браузера, прозрачно следит за перенаправлениями?
...