Самый элегантный способ связать обещания / наблюдаемые в функциональных тестах - PullRequest
0 голосов
/ 22 января 2019

Вот пример существующего теста в проекте, над которым я работаю:

AppPage.lastnameInput().clear().then(function () {
  AppPage.lastnameInput().sendKeys(lastname).then(function () {
    AppPage.firstnameInput().clear().then(function () {
      AppPage.firstnameInput().sendKeys(firstname).then(function () {
        AppPage.ibanInput().clear().then(function () {
          AppPage.ibanInput().sendKeys(IBAN).then(function () {
            $('body').click().then(function () {
              callback();
            });
          });
        });
      });
    });
  });
});

Мне кажется, что это можно сгладить.Что-то вроде .

foo(
  AppPage.lastnameInput().clear(),
  AppPage.lastnameInput().sendKeys(lastname),
  AppPage.firstnameInput().clear(),
  AppPage.firstnameInput().sendKeys(firstname),
  AppPage.ibanInput().clear(),
  AppPage.ibanInput().sendKeys(IBAN),
  $('body').click(),
).then(() => callback())

Я пытался forkJoin(), но, похоже, он не ждет завершения первой Наблюдаемой перед выполнением следующей.

Я мог бы реализовать такую ​​функцию сам, но, похоже,довольно общий характер, поэтому мне интересно, существует ли более стандартная функция.

1 Ответ

0 голосов
/ 22 января 2019

Вы можете использовать функцию concat() для последовательного выполнения нескольких наблюдаемых (скорее параллельно, как работает forkJoin()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...