Обработчик родных диалогов TestCafé время от времени не работает - PullRequest
3 голосов
/ 31 мая 2019

У меня есть тест, в котором я пытаюсь удалить файл. Появляется собственный диалог, и тест проверяет, содержит ли текст в диалоговом окне ожидаемую строку. Спорадически тест терпит неудачу, по-видимому, без причины, и я не могу его отладить, потому что я не могу видеть, появляется ли диалоговое окно или нет, так как TestCafé обрабатывает его.

test('Verify that an account owner sees a warning when deleting the winning media in a Completed A/B test', async (t) => {
   const projectTitle = "advancedaccount's First Project";
   const completedMediaName = 'Cmpltd Control'; // winning media

   await t
     .useRole(advancedAccount)
     .click(projectListPage.projectLink.withAttribute('title', projectTitle))
     .click(projectPage.mediaLink.withText(completedMediaName))
     .setNativeDialogHandler(() => false)
     .hover(mediaPage.videoActionsDropdown)
     .click(mediaPage.actions.delete)
     .expect(getLocation()).contains('medias');

  const history = await t.getNativeDialogHistory();

  await t
     .expect(history[0].text).contains('This media is also the winner of an A/B test');
});

Диагностика неисправностей:

1) TypeError: Cannot read property 'text' of undefined

    54 |    .expect(getLocation()).contains('medias');
    55 |
    56 |  const history = await t.getNativeDialogHistory();
    57 |
    58 |  await t
  > 59 |    .expect(history[0].text).contains('This media is also the winner of an A/B test');
    60 |});
    61 |

Есть идеи, что может пойти не так или как я могу попытаться разобраться в этом?

1 Ответ

3 голосов
/ 03 июня 2019

Я вижу две возможные причины того, что массив истории пуст:

  1. Есть ошибка со стороны testcafe.
  2. Собственное диалоговое окно не пытается появиться из-за проблемы на стороне веб-приложения.

Чтобы определить истинную причину проблемы, нам нужна ссылка на ваше веб-приложение или простой проект, в котором мы сможем воспроизвести это поведение.

...