Spaces:
Runtime error
Runtime error
| namespace Tests\Unit; | |
| use App\Http\Middleware\RequirePortal; | |
| use Illuminate\Http\Request; | |
| use Tests\TestCase; | |
| class RequirePortalTest extends TestCase | |
| { | |
| public function test_super_admin_can_enter_admin_portal_without_admin_user_type(): void | |
| { | |
| $request = Request::create('/api/v1/admin/ping'); | |
| $request->attributes->set('actor_user', (object) [ | |
| 'user_type' => 'EXTERNAL', | |
| 'portal_status' => 'ACTIVE', | |
| ]); | |
| $request->attributes->set('actor_roles', ['SUPER_ADMIN']); | |
| $response = (new RequirePortal())->handle($request, fn () => response()->json(['ok' => true]), 'admin'); | |
| $this->assertSame(200, $response->getStatusCode()); | |
| } | |
| public function test_active_client_can_enter_client_portal(): void | |
| { | |
| $request = Request::create('/api/v1/memberships/me'); | |
| $request->attributes->set('actor_user', (object) [ | |
| 'user_type' => 'CLIENT', | |
| 'portal_status' => 'ACTIVE', | |
| ]); | |
| $request->attributes->set('actor_roles', ['CLIENT']); | |
| $response = (new RequirePortal())->handle($request, fn () => response()->json(['ok' => true]), 'client'); | |
| $this->assertSame(200, $response->getStatusCode()); | |
| } | |
| public function test_suspended_portal_user_is_rejected(): void | |
| { | |
| $request = Request::create('/api/v1/admin/ping'); | |
| $request->attributes->set('actor_user', (object) [ | |
| 'user_type' => 'ADMIN', | |
| 'portal_status' => 'SUSPENDED', | |
| ]); | |
| $request->attributes->set('actor_roles', []); | |
| $response = (new RequirePortal())->handle($request, fn () => response()->json(['ok' => true]), 'admin'); | |
| $this->assertSame(403, $response->getStatusCode()); | |
| } | |
| } | |