38 lines
962 B
PHP
38 lines
962 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Tests\Browser\Concerns;
|
||
|
|
|
||
|
|
use App\Models\User;
|
||
|
|
use Laravel\Dusk\Browser;
|
||
|
|
|
||
|
|
trait AuthenticatesUsers
|
||
|
|
{
|
||
|
|
private function createTestUser(string $email): User
|
||
|
|
{
|
||
|
|
return User::factory()->create([
|
||
|
|
'email' => $email,
|
||
|
|
'password' => bcrypt('password'),
|
||
|
|
'two_factor_secret' => null,
|
||
|
|
'two_factor_recovery_codes' => null,
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
private function loginUser(Browser $browser, User $user): void
|
||
|
|
{
|
||
|
|
$browser->visit('/login')
|
||
|
|
->type('email', $user->email)
|
||
|
|
->type('password', 'password')
|
||
|
|
->press('Log in')
|
||
|
|
->waitForLocation('/dashboard');
|
||
|
|
}
|
||
|
|
|
||
|
|
private function assertWithDebugPause(Browser $browser, callable $assertions, int $pauseMs = 10000): void
|
||
|
|
{
|
||
|
|
try {
|
||
|
|
$assertions($browser);
|
||
|
|
} catch (\Exception $e) {
|
||
|
|
$browser->pause($pauseMs);
|
||
|
|
throw $e;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|