<?php
namespace App\Tests\Api\User;
use App\Entity\User;
use App\Factory\UserFactory;
use App\Tests\Support\ApiTester;
use Codeception\Util\HttpCode;
class UserGetMeCest
{
protected static function expectedProperties(): array
{
return [
'id' => 'integer',
'login' => 'string',
'firstname' => 'string',
'lastname' => 'string',
'email' => 'string:email',
];
}
public function anonymousMeIsUnauthorized(ApiTester $I): void
{
UserFactory::createOne();
$I->sendGet('/api/me');
$I->seeResponseCodeIs(HttpCode::UNAUTHORIZED);
}
public function authenticatedUserOnMeGetData(ApiTester $I): void
{
$user = UserFactory::createOne()->_real();
UserFactory::createOne();
$I->amLoggedInAs($user);
$I->sendGet('/api/me');
$I->seeResponseCodeIsSuccessful();
$I->seeResponseIsJson();
$I->seeResponseIsAnEntity(User::class, '/api/me');
$I->seeResponseIsAnItem(self::expectedProperties(), ['login' => $user->getLogin()]);
}
}