Add HomeController coverage: wrong orgaSlug redirect, contact 404, contact success with email

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-20 21:55:07 +01:00
parent e8e56e226a
commit 3ee1bffc2a

View File

@@ -300,4 +300,90 @@ class HomeControllerTest extends WebTestCase
self::assertResponseRedirects();
}
public function testEventDetailRedirectsOnWrongOrgaSlug(): void
{
$client = static::createClient();
$em = static::getContainer()->get(EntityManagerInterface::class);
$user = new User();
$user->setEmail('test-orga-slug2-'.uniqid().'@example.com');
$user->setFirstName('Wrong');
$user->setLastName('Orga');
$user->setPassword('hashed');
$user->setRoles(['ROLE_ORGANIZER']);
$user->setIsApproved(true);
$user->setIsVerified(true);
$user->setCompanyName('Real Asso');
$em->persist($user);
$event = new \App\Entity\Event();
$event->setAccount($user);
$event->setTitle('Orga Slug Test');
$event->setStartAt(new \DateTimeImmutable('2026-08-01 10:00'));
$event->setEndAt(new \DateTimeImmutable('2026-08-01 18:00'));
$event->setAddress('1 rue');
$event->setZipcode('75001');
$event->setCity('Paris');
$event->setIsOnline(true);
$em->persist($event);
$em->flush();
$client->request('GET', '/evenement/wrong-slug/'.$event->getId().'-'.$event->getSlug());
self::assertResponseRedirects();
}
public function testEventContactNotFoundReturns404(): void
{
$client = static::createClient();
$client->request('POST', '/evenement/999999/contact', [
'name' => 'Test',
'firstname' => 'Test',
'email' => 'test@example.com',
'message' => 'Hello',
]);
self::assertResponseStatusCodeSame(404);
}
public function testEventContactSuccess(): void
{
$client = static::createClient();
$em = static::getContainer()->get(EntityManagerInterface::class);
$mailer = $this->createMock(\App\Service\MailerService::class);
$mailer->expects(self::once())->method('sendEmail');
static::getContainer()->set(\App\Service\MailerService::class, $mailer);
$user = new User();
$user->setEmail('test-contact-success-'.uniqid().'@example.com');
$user->setFirstName('Contact');
$user->setLastName('Success');
$user->setPassword('hashed');
$user->setRoles(['ROLE_ORGANIZER']);
$user->setIsApproved(true);
$user->setIsVerified(true);
$em->persist($user);
$event = new \App\Entity\Event();
$event->setAccount($user);
$event->setTitle('Contact Success Event');
$event->setStartAt(new \DateTimeImmutable('2026-08-01 10:00'));
$event->setEndAt(new \DateTimeImmutable('2026-08-01 18:00'));
$event->setAddress('1 rue');
$event->setZipcode('75001');
$event->setCity('Paris');
$event->setIsOnline(true);
$em->persist($event);
$em->flush();
$client->request('POST', '/evenement/'.$event->getId().'/contact', [
'name' => 'Dupont',
'firstname' => 'Jean',
'email' => 'jean@example.com',
'message' => 'Question sur votre evenement',
]);
self::assertResponseRedirects();
}
}