api('GET', 'clients'); $this->assertLegacyAuthError($res, 401, 'Missing Bearer token'); } public function testAdminSeesAllClients(): void { $this->loginAs(DatabaseFixture::ADMIN_USERNAME); $res = $this->api('GET', 'clients'); $this->assertOk($res); $codes = array_column($res['body']['data']['clients'], 'clientCode'); $this->assertContains(DatabaseFixture::CLIENT_COACH1, $codes); $this->assertContains(DatabaseFixture::CLIENT_COACH2, $codes); } public function testSupervisorSeesOnlyTheirCoachesClients(): void { $this->loginAs(DatabaseFixture::SUPERVISOR1_USERNAME); $res = $this->api('GET', 'clients'); $this->assertOk($res); $codes = array_column($res['body']['data']['clients'], 'clientCode'); $this->assertContains(DatabaseFixture::CLIENT_COACH1, $codes); $this->assertContains(DatabaseFixture::CLIENT_COACH1B, $codes); $this->assertNotContains(DatabaseFixture::CLIENT_COACH2, $codes); } public function testSupervisorCannotAssignClientToOtherSupervisorsCoach(): void { $this->loginAs(DatabaseFixture::SUPERVISOR1_USERNAME); $res = $this->api('POST', 'clients', [ 'clientCode' => 'CLIENT-NEW', 'coachID' => DatabaseFixture::COACH2_ID, ]); $this->assertError($res, 'NOT_FOUND'); } }