Downloads
Stars
Version
composer require tuttti/laravel-operation-test-extension
config/app.php
'providers' => [
/*
* Package Service Providers...
*/
Tuttti\LaraOTE\LaravelOperationTestExtensionServiceProvider::class,
]
php artisan vendor:publish --provider="Tuttti\LaraOTE\LaravelOperationTestExtensionServiceProvider"
./src/LaraOTESample/PageOperations/Contracts/LoginPageOperationsInterface.php
namespace Tuttti\LaraOTESample\PageOperations\Contracts;
use Laravel\Dusk\Browser;
use Tuttti\LaraOTE\PageOperations\Contracts\PageOperationsInterface;
use Tuttti\LaraOTE\UiTestModels\Credintials;
interface LoginPageOperationsInterface extends PageOperationsInterface
{
public function showPage(Browser $browser):void;
public function login(Browser $browser, Credintials $credintials):void;
}
./src/LaraOTESample/PageOperations/LoginPageOperations.php
namespace Tuttti\LaraOTESample\PageOperations;
use Laravel\Dusk\Browser;
use Tuttti\LaraOTESample\PageOperations\Contracts\LoginPageOperationsInterface;
use Tuttti\LaraOTESample\UiTestModels\Credintials;
use Tuttti\LaraOTE\PageOperations\Factory\PageOperationsFactory;
class LoginPageOperations implements LoginPageOperationsInterface
{
public function showPage(Browser $browser)
{
$browser->visit('/login');
}
public function login(Browser $browser, Credintials $credintials)
{
$browser->type('login_id', $credintials["email"])
->type('password', $credintials["password"])
->press('login-button')
;
}
}
3.Register interfaces and implementations to PageOperationsFactory
.
4.Use it in your dusk-base browser test.
$operations = PageOperationsFactory::make(LoginPageOperationsInterface::class);
$operations->showPage($browser);
$operations->login($browser, new Credintials('[email protected]', 'pass'));