Как дождаться выполнения углового в TestCafe? - PullRequest
1 голос
/ 17 апреля 2019

Я хочу дождаться углового перехода в стабильное состояние после некоторых действий в приложении.Я обнаружил, что angular имеет window.getAllAngularTestabilities() и функцию isStable ()

Я привязан к использованию его с помощью клиентской функции TestCafe, но TestCafe не распознает это свойство.

Есть ли у вас какие-либо идеи, какбороться с этим?

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Код ClientFunction может быть выполнен перед всеми другими сценариями на странице. Вероятно, в Angular не хватает времени для завершения инициализации в этом случае. Попробуйте использовать следующий код для своей страницы:

const delay = ms => new Promise(r => setTimeout(r, ms));

const isAngularStable = ClientFunction(() => {
   if(!window.getAllAngularTestabilities)
       return false;

   return window.getAllAngularTestabilities().every(x => x.isStable());
});

const waitUntilAngularIsStable = async () => {
   while(!await isAngularStable())
       await delay(500); 
};

test('Test', async t => {
   await waitUntilAngularIsStable();
   // ...
});


1 голос
/ 17 апреля 2019

Думаю, вы можете проверить репозиторий https://github.com/DevExpress/testcafe-angular-selectors. Он имеет встроенные механизмы для ожидания угловых

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