From b5623525e220802722f29d43cacc932040311865 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 4 Mar 2024 12:10:31 +0800 Subject: [PATCH 1/2] wip Signed-off-by: Mior Muhammad Zaki --- composer.json | 2 +- tests/AuthBackend/AuthenticatesUsersTest.php | 5 ++++- tests/AuthBackend/RegistersUsersTest.php | 15 ++++----------- 3 files changed, 9 insertions(+), 13 deletions(-) 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..6fc9aa8 100644 --- a/tests/AuthBackend/AuthenticatesUsersTest.php +++ b/tests/AuthBackend/AuthenticatesUsersTest.php @@ -4,19 +4,22 @@ use Illuminate\Auth\Events\Attempting; 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 { 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() From f756d431065acfd22bb008cad538c5808bb02b30 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 4 Mar 2024 12:14:37 +0800 Subject: [PATCH 2/2] wip Signed-off-by: Mior Muhammad Zaki --- tests/AuthBackend/AuthenticatesUsersTest.php | 31 +++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/tests/AuthBackend/AuthenticatesUsersTest.php b/tests/AuthBackend/AuthenticatesUsersTest.php index 6fc9aa8..4196559 100644 --- a/tests/AuthBackend/AuthenticatesUsersTest.php +++ b/tests/AuthBackend/AuthenticatesUsersTest.php @@ -3,6 +3,7 @@ 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; @@ -28,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() { @@ -61,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() {