I have a problem. When I try to run my dusk test it outputs this error:
1) Tests\Browser\NewPostTest::test_new_post
Error: Call to a member function click() on array
D:\xampp\htdocs\laravel_blog\tests\Browser\NewPostTest.php:32
D:\xampp\htdocs\laravel_blog\vendor\laravel\dusk\src\Concerns\ProvidesBrowser.php:67
D:\xampp\htdocs\laravel_blog\tests\Browser\NewPostTest.php:34
My testing method looks like this:
public function test_new_post()
{
$this->browse(function (Browser $browser) {
$faker = Faker::create();
$title = $faker->sentence();
$slug = str_replace(' ', '-', $title);
$browser->loginAs(User::find(2))
->visit('/posts/create')
->assertSee('Create New Post')
->type('title', $title)
->type('slug', $slug)
->type('body', $faker->paragraphs(5, true))
->select('category_id')
->script('jQuery(".select2").val(["1","2"]).trigger("change");')
->click('input[type=submit]#submit')
->assertPathIs('/posts');
});
}
As you see I'm using select2 for my tags . Can anyone please tell me what I'm doing wrong?
You can't use chaining after script()
because it returns an array instead of $this
:
$browser->[...]
->script('jQuery(".select2").val(["1","2"]).trigger("change");')
$browser->click('input[type=submit]#submit')
->assertPathIs('/posts');