fix parent, teacher and admin pages

This commit is contained in:
root
2026-04-25 00:00:23 -04:00
parent 4cd98f1d30
commit eafe4eb134
30 changed files with 1566 additions and 105 deletions
@@ -2,6 +2,7 @@
namespace Tests\Unit;
use App\Models\User;
use App\Services\Auth\ApiLoginSecurityService;
use PHPUnit\Framework\TestCase;
@@ -20,4 +21,58 @@ class ApiLoginSecurityServiceTest extends TestCase
$this->assertStringContainsString('"Teacher":true', $payload);
$this->assertStringContainsString('"Admin":true', $payload);
}
public function test_build_login_response_includes_teacher_class_context(): void
{
$service = new ApiLoginSecurityService();
$user = $this->getMockBuilder(User::class)
->onlyMethods(['roleNamesLikeCodeIgniter', 'teacherSessionContext'])
->getMock();
$user->id = 99;
$user->firstname = 'Amina';
$user->lastname = 'Teacher';
$user->method('roleNamesLikeCodeIgniter')->willReturn(['Teacher']);
$user->method('teacherSessionContext')->willReturn([
'class_section_id' => 42,
'class_section_name' => 'Grade 5 - A',
]);
$payload = $service->buildLoginResponse($user, 'jwt-token');
$this->assertTrue($payload['status']);
$this->assertSame('jwt-token', $payload['token']);
$this->assertSame(99, $payload['user']['id']);
$this->assertSame('Amina Teacher', $payload['user']['name']);
$this->assertSame(42, $payload['user']['class_section_id']);
$this->assertSame('Grade 5 - A', $payload['user']['class_section_name']);
$this->assertTrue($payload['user']['roles']->Teacher);
}
public function test_build_login_response_includes_teacher_assistant_class_context(): void
{
$service = new ApiLoginSecurityService();
$user = $this->getMockBuilder(User::class)
->onlyMethods(['roleNamesLikeCodeIgniter', 'teacherSessionContext'])
->getMock();
$user->id = 100;
$user->firstname = 'Samir';
$user->lastname = 'TA';
$user->method('roleNamesLikeCodeIgniter')->willReturn(['Teacher_Assistant']);
$user->method('teacherSessionContext')->willReturn([
'class_section_id' => 17,
'class_section_name' => 'Grade 3 - B',
]);
$payload = $service->buildLoginResponse($user, 'jwt-token');
$this->assertSame(17, $payload['user']['class_section_id']);
$this->assertSame('Grade 3 - B', $payload['user']['class_section_name']);
$this->assertTrue($payload['user']['roles']->Teacher_Assistant);
}
}