dont cast email to string, use new value method

This commit is contained in:
Yisroel Baum 2026-04-26 10:19:38 +03:00
parent 099883a13d
commit a65c9259fa
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
7 changed files with 12 additions and 7 deletions

View file

@ -126,7 +126,7 @@ class AuthController
$response->getBody()->write(json_encode([
'user' => [
'id' => $user->getId(),
'email' => (string) $user->getEmail(),
'email' => $user->getEmail()->value(),
'isAdmin' => $user->isAdmin(),
],
]));

View file

@ -21,7 +21,7 @@ class JsonUserRepository implements UserRepository
$users[] = [
'id' => $id,
'email' => (string) $dto->email,
'email' => $dto->email->value(),
'passwordHash' => $dto->passwordHash,
'isAdmin' => $dto->isAdmin,
];
@ -53,7 +53,7 @@ class JsonUserRepository implements UserRepository
$users = $this->readUsers();
foreach ($users as $data) {
if ($data['email'] === (string) $email) {
if ($data['email'] === $email->value()) {
return $this->hydrate($data);
}
}

View file

@ -11,6 +11,11 @@ class EmailAddress
$this->normalized = $email;
}
public function value(): string
{
return $this->normalized;
}
public function __toString(): string
{
return $this->normalized;

View file

@ -39,7 +39,7 @@ class FakeUserRepository implements UserRepository
$user = array_find(
$this->existingUsers,
function (User $user) use ($email) {
return (string) $user->getEmail() === (string) $email;
return $user->getEmail()->value() === $email->value();
}
);
if ($user === null) {

View file

@ -144,7 +144,7 @@ class AuthMiddlewareTest extends TestCase
$this->assertInstanceOf(User::class, $attached);
$this->assertEquals(
'test@test.com',
(string) $attached->getEmail()
$attached->getEmail()->value()
);
}

View file

@ -21,7 +21,7 @@ class FakeUserRepositoryTest extends TestCase
$user = $userRepo->findByEmail(new EmailAddress('test@test.com'));
$this->assertInstanceOf(User::class, $user);
$this->assertEquals('test@test.com', (string) $user->getEmail());
$this->assertEquals('test@test.com', $user->getEmail()->value());
}
public function test_find_by_email_returns_null_when_not_found(): void

View file

@ -45,7 +45,7 @@ class AuthenticateUserTest extends TestCase
));
$this->assertInstanceOf(User::class, $user);
$this->assertEquals('test@test.com', (string) $user->getEmail());
$this->assertEquals('test@test.com', $user->getEmail()->value());
}
public function test_throws_bad_request_when_email_null(): void