mdn-backend / tests /Unit /RequirePortalTest.php
internationalscholarsprogram's picture
feat(backend): replace backend with peter branch + Emergency Care integration
6773345
Raw
History Blame Contribute Delete
1.77 kB
<?php
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());
}
}