123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- namespace Tests\Feature\Http\Middlewares;
- use App\Http\Middleware\AdminOnly;
- use App\Models\User;
- use Illuminate\Auth\Access\AuthorizationException;
- use Illuminate\Http\Request;
- use PHPUnit\Framework\Attributes\Test;
- use Tests\FeatureTestCase;
- class AdminOnlyMiddlewareTest extends FeatureTestCase
- {
- #[Test]
- public function test_users_are_rejected()
- {
- $this->expectException(AuthorizationException::class);
- /**
- * @var \App\Models\User|\Illuminate\Contracts\Auth\Authenticatable
- */
- $user = User::factory()->create();
- $this->actingAs($user);
- $request = Request::create('/admin', 'GET');
- $middleware = new AdminOnly;
- $response = $middleware->handle($request, function () {
- });
- }
- #[Test]
- public function test_admins_pass()
- {
- /**
- * @var \App\Models\User|\Illuminate\Contracts\Auth\Authenticatable
- */
- $admin = User::factory()->administrator()->create();
- $this->actingAs($admin);
- $request = Request::create('/admin', 'GET');
- $middleware = new AdminOnly;
- $response = $middleware->handle($request, function () {
- });
- $this->assertNull($response);
- }
- }
|