Files
ppeasy_vg12/tests/Unit/Http/Middleware/CheckIfBannedTest.php
T
2026-10-09 08:21:06 +02:00

45 lines
1.1 KiB
PHP

<?php
use App\Http\Middleware\CheckIfBanned;
use App\Models\User;
use App\Support\Enum\UserStatus;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Http\Request;
use Symfony\Component\HttpKernel\Exception\HttpException;
uses(RefreshDatabase::class);
beforeEach(function () {
$this->artisan('db:seed');
});
test('guest passes through', function () {
$request = Request::create('/');
$response = (new CheckIfBanned)->handle($request, fn () => 'ok');
$this->assertSame('ok', $response);
});
test('active user passes through', function () {
$user = User::factory()->create(['status' => UserStatus::ACTIVE]);
$request = Request::create('/');
$request->setUserResolver(fn () => $user);
$response = (new CheckIfBanned)->handle($request, fn () => 'ok');
$this->assertSame('ok', $response);
});
test('banned user is blocked', function () {
$user = User::factory()->create(['status' => UserStatus::BANNED]);
$request = Request::create('/');
$request->setUserResolver(fn () => $user);
$this->expectException(HttpException::class);
(new CheckIfBanned)->handle($request, fn () => 'ok');
});