tuttti / laravel-operation-test-extension
dev-master
2020-05-13 03:42 UTC
Requires
- illuminate/support: ^7.10
- laravel/dusk: ^6.1
- monolog/monolog: ^2.0
- vlucas/phpdotenv: ^4.1
Requires (Dev)
- phpunit/phpunit: ^9.1
- psy/psysh: @stable
This package is auto-updated.
Last update: 2025-04-08 23:21:02 UTC
README
Install
composer require tuttti/laravel-operation-test-extension
SetUp
- 1.Add the ServiceProvider in
config/app.php
'providers' => [ /* * Package Service Providers... */ Tuttti\LaraOTE\LaravelOperationTestExtensionServiceProvider::class, ]
- 2.To publish the config, run the vendor publish command:
php artisan vendor:publish --provider="Tuttti\LaraOTE\LaravelOperationTestExtensionServiceProvider"
Usage
- 1.Define interfaces of your page operations.
./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; }
- 2.Implement interfaces.
./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('aaa@aa.bb', 'pass'));