Я начинаю тестировать свои объекты с помощью Laravel Dusk, я использую Homestead в качестве среды разработки, я установил все, что требуется для запуска Dusk, даже Google Chrome. Все работает без сбоев, кроме всего, что требует JavaScript для запуска.
public function testExample()
{
$this->browse(function (Browser $browser) {
$browser->visit('/login')
->type('username', 'admin')
->type('password', 'password')
->press('Login')
->assertPathIs('/home')
->visit('/path/test')
->assertPathIs('/path/test')
->select('field1', '1')
->assertSelected('field1', '1')
->select('field2', '1')
->assertSelected('field2', '1')
->select('field3', '1')
->script('$(".component").show(); $(".field4").show();'); //Forcing script to show a component
$browser->assertSee('Text:')
->select('field4', '1')
->assertSelected('field4', '1')
->type('field5', 'Test Dusk')
->type('field6', 'Dusk')
->type('field7', 'www.laravel.com')
->select('field8', '2')
->click('#btn-save')
->waitFor('.modaldialog')
->assertSee('Save');
});
}
Сценарий, который я принудил, зависит от field1, при выборе он должен выполнить JS, чтобы показать новый компонент и один новый селектор Единственный способ запустить JS - с помощью функции сценария. Конец теста - это диалог JavaScript для подтверждения формы и отправки запроса на публикацию. Я везде ищу ответы, но ничего не нашел. Есть идеи, что я могу сделать?