diff --git a/src/Entity/User.php b/src/Entity/User.php index a6dcbbb7a056d216475c2232caa494b22da7270c..16a7bec5c2d6551c731aa6706994b983d07f1077 100644 --- a/src/Entity/User.php +++ b/src/Entity/User.php @@ -8,6 +8,7 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Security\Core\User\LegacyPasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\UserInterface; +use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Entity(repositoryClass=UserRepository::class) @@ -25,6 +26,7 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface /** * @ORM\Column(type="string", length=255) + * @Assert\Email(message = "The email {{ value }} is not a valid email.") */ private $email; diff --git a/tests/functional/RegistrationControllerTest.php b/tests/functional/RegistrationControllerTest.php index 9cb13bb7479d49a20226d1fef08c02f019265424..a3cf7cc1edb2d6da54e3626ed2ef891fdbdf9367 100644 --- a/tests/functional/RegistrationControllerTest.php +++ b/tests/functional/RegistrationControllerTest.php @@ -18,7 +18,6 @@ class RegistrationControllerTest extends WebTestCase $this->registerUser($userEmail, $client); - $this->assertUserIsRedirectedToTheEmailNotificationPage($client); } @@ -101,6 +100,17 @@ class RegistrationControllerTest extends WebTestCase $this->assertResponseRedirects('/my_capsules', 302); } + public function testSubmittingTheRegisterFormWithAnInvalidEmailAddressShouldDisplayAFeedbackError(): void + { + $userEmail = 'invalidEmailAddress'; + $client = static::createClient(); + + $crawler = $this->registerUser($userEmail, $client); + $html = $crawler->outerHtml(); + + $this->assertStringContainsString("is not a valid email", $html); + } + /** * @param string $userEmail The registered user email * @return RawMessage The email message sent to the user @@ -136,7 +146,7 @@ class RegistrationControllerTest extends WebTestCase $this->assertResponseIsSuccessful('/register_mail_sent'); } - private function registerUser(string $userEmail, KernelBrowser &$client): void + private function registerUser(string $userEmail, KernelBrowser &$client): ?Crawler { $crawler = $client->request('GET', '/register'); @@ -147,7 +157,6 @@ class RegistrationControllerTest extends WebTestCase $submit = $crawler->selectButton('Register'); $form = $submit->form(); - $form['registration_form[firstName]'] = 'new User FirstName'; $form['registration_form[lastName]'] = 'new User LastName'; $form['registration_form[email]'] = $userEmail; @@ -155,7 +164,7 @@ class RegistrationControllerTest extends WebTestCase $form['registration_form[plainPassword][second]'] = 'password'; $form['registration_form[agreeTerms]'] = 1; - $client->submit($form); + return $client->submit($form); } private function clickOnEmailMessageLink(RawMessage $emailMessage, KernelBrowser $client): void