Я заметил, что у меня есть для использования navigateTo
для тестов, в которых используется уже аутентифицированный пользователь.Если я определяю их с помощью .page
, это просто возвращает меня к экрану входа в систему, потому что кажется, что он не может видеть роль / состояние.
Я предполагаю, что это предназначено, но документация не так ясна,но это предположение, которое я сделал, может повлиять на мой реальный вопрос.
Я также считаю, что любая beforeEach
логика запускается до метода navigateTo, который нарушает логику, необходимую нам для "waitForAngularJS"".
У меня есть метод waitForAngularJS
, который я адаптировал из официального waitForAngular
.Он отлично работает, когда используется без аутентификации (когда я могу использовать .page...
), но не запускается на странице «переход к», когда я использую аутентификацию.
fixture `demo1`
.beforeEach(async () => {
await waitForAngularJS();
});
test('modal title', async t => {
await t
.useRole(regularUser)
.navigateTo('http://127.0.0.1/some/page')
// .. the "wait for angular" needs to run here, but can't
.expect(Selector('.modal-title').innerText).eql('My Modal');
});
Установка .wait(1000)
в этом месте решает мою проблему.Когда я использую .debug()
, я могу сказать, что логика waitForAngular не была запущена на новой странице.
Редактировать: Согласно форумам , порядок логики правильный:
открывает страницу прибора;выполняет функцию beforeEach;выполняет команду useRole: переходит на страницу инициализации роли (первый аргумент команды useRole), выполняет функцию инициализации и переходит на ранее открытую страницу в качестве зарегистрированного пользователя;возобновляет тест.