2
votes

I wish to override \Laravel\Dusk\Browser methods and extend it with my own, plus a few enhancements. Here is what I did so far but it gives me this error:

TypeError: Argument 1 passed to Tests\Browser\SequentialAppTest::Tests\Browser{closure}() must be an instance of Tests\MyBrowser, instance of Laravel\Dusk\Browser given,
called in /var/www/gtest/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php on line 67

/var/www/gtest/tests/Browser/SequentialAppTest.php:135 /var/www/gtest/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:67 /var/www/gtest/tests/Browser/SequentialAppTest.php:157

file: tests/MyBrowser.php

<?php

namespace Tests;

class MyBrowser extends \Laravel\Dusk\Browser 
{

}

file: tests/Browser/SequentialAppTest.php namespace Tests\Browser;

use Tests\DuskTestCase;
use Tests\MyBrowser as Browser;

...

class SequentialAppTest extends DuskTestCase 
{
 ....
}
1

1 Answers

4
votes

Override newBrowser() in your test or in DuskTestCase:

use Tests\DuskTestCase;
use Tests\MyBrowser as Browser;

class SequentialAppTest extends DuskTestCase 
{
    protected function newBrowser($driver)
    {
        return new Browser($driver);
    }
}