PQR
@PQR

Laravel Dusk: как проверить блокировку кнопки после отправки формы?

Вопрос по Laravel Dusk. Читал документацию, гуглил, искал на StackOverflow, пока не смог найти решение, возможно вы сталкивались.

Есть форма, есть кнопка Submit. Я написал небольшой JavaScript, который при клике блокирует кнопку Submit, чтобы пользователь два раза не нажал случайно. Форма отправляется обычным post запросом, страница перезагружается, пользователь получает какой-то результат.

Хочу написать тест, что при клике на кнопку она действительно блокируется. Работа для Laravel Dusk?
Пишу тест:
$this->browse(function (Browser $browser) {
    $browser->visit('/')
        ->click('@my-button')
        ->assertButtonDisabled('@my-button');
}

(@my-button - это такой хитрый синтаксис селекторов в Dusk - тут всё верно, ошибка точно не в этом https://laravel.com/docs/6.0/dusk#dusk-selectors )

Тест падает с ошибкой “Expected button [@my-button] to be disabled, but it wasn’t.“.

На скриншоте вижу ту страницу, куда браузер попадает после отправки формы, т.е. Dusk не успевает проверить, что кнопка была заблокирована на исходной странице.

Для чистоты эксперимента внутри тега form написал <form onsubmit="return false"> чтобы браузер никуда не переходил, запускаю тест - проходит! Потому что браузер не осуществил переход и Dusk успешно проверил, что на исходной странице кнопка заблокирована.

Вопрос: как переписать тест, чтобы успеть поймать состояние заблокированности кнопки перед переходом браузера на другую страницу?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы