diff --git a/composer.json b/composer.json index d54081d..6c5bd02 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ "illuminate/validation": "^9.21|^10.0|^11.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0", + "orchestra/testbench": "^7.35|^8.15|^9.0", "phpunit/phpunit": "^9.3|^10.4|^11.0" }, "autoload": { diff --git a/tests/AuthBackend/AuthenticatesUsersTest.php b/tests/AuthBackend/AuthenticatesUsersTest.php index 06860e6..4196559 100644 --- a/tests/AuthBackend/AuthenticatesUsersTest.php +++ b/tests/AuthBackend/AuthenticatesUsersTest.php @@ -3,20 +3,24 @@ namespace Laravel\Ui\Tests\AuthBackend; use Illuminate\Auth\Events\Attempting; +use Illuminate\Auth\Events\Logout; use Illuminate\Foundation\Auth\AuthenticatesUsers; +use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Http\Request; use Illuminate\Routing\Pipeline; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Event; use Illuminate\Testing\TestResponse; use Illuminate\Validation\ValidationException; +use Orchestra\Testbench\Attributes\WithMigration; use Orchestra\Testbench\Factories\UserFactory; use Orchestra\Testbench\TestCase; use PHPUnit\Framework\Attributes\Test; +#[WithMigration] class AuthenticatesUsersTest extends TestCase { - use AuthenticatesUsers; + use AuthenticatesUsers, RefreshDatabase; protected function tearDown(): void { @@ -25,16 +29,6 @@ protected function tearDown(): void parent::tearDown(); } - /** - * Define database migrations. - * - * @return void - */ - protected function defineDatabaseMigrations() - { - $this->loadLaravelMigrations(); - } - #[Test] public function it_can_authenticate_a_user() { @@ -58,6 +52,26 @@ public function it_can_authenticate_a_user() }); } + #[Test] + public function it_can_deauthenticate_a_user() + { + Event::fake(); + + $user = UserFactory::new()->create(); + + $this->actingAs($user); + + $request = Request::create('/logout', 'POST', [], [], [], [ + 'HTTP_ACCEPT' => 'application/json', + ]); + + $response = $this->handleRequestUsing( + $request, fn ($request) => $this->logout($request) + )->assertStatus(204); + + Event::assertDispatched(fn (Logout $event) => $user->is($event->user)); + } + #[Test] public function it_can_authenticate_a_user_with_remember_as_false() { diff --git a/tests/AuthBackend/RegistersUsersTest.php b/tests/AuthBackend/RegistersUsersTest.php index 3f6ef0b..22d490b 100644 --- a/tests/AuthBackend/RegistersUsersTest.php +++ b/tests/AuthBackend/RegistersUsersTest.php @@ -4,6 +4,7 @@ use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Foundation\Auth\User; +use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Http\Request; use Illuminate\Routing\Pipeline; use Illuminate\Support\Facades\Auth; @@ -11,23 +12,15 @@ use Illuminate\Support\Facades\Validator; use Illuminate\Testing\TestResponse; use Illuminate\Validation\ValidationException; +use Orchestra\Testbench\Attributes\WithMigration; use Orchestra\Testbench\Factories\UserFactory; use Orchestra\Testbench\TestCase; use PHPUnit\Framework\Attributes\Test; +#[WithMigration] class RegistersUsersTest extends TestCase { - use RegistersUsers; - - /** - * Define database migrations. - * - * @return void - */ - protected function defineDatabaseMigrations() - { - $this->loadLaravelMigrations(); - } + use RegistersUsers, RefreshDatabase; #[Test] public function it_can_register_a_user()