From 433824316c52626f7f3ea482efdd06525d87affd Mon Sep 17 00:00:00 2001 From: numew Date: Tue, 26 Mar 2024 11:53:27 +0100 Subject: [PATCH 1/4] lock page for archived #2378 --- src/Controller/FrontSignalementController.php | 125 +++++++++--------- src/Repository/SignalementRepository.php | 2 + 2 files changed, 64 insertions(+), 63 deletions(-) diff --git a/src/Controller/FrontSignalementController.php b/src/Controller/FrontSignalementController.php index 4ff93940f..b16dd49c2 100755 --- a/src/Controller/FrontSignalementController.php +++ b/src/Controller/FrontSignalementController.php @@ -458,16 +458,14 @@ public function suiviProcedure( ); } } - - return $this->render('front/suivi_signalement.html.twig', [ - 'signalement' => $signalement, - 'email' => $fromEmail, - 'type' => $type, - 'suiviAuto' => $suiviAuto, - ]); } - return $this->redirectToRoute('front_suivi_signalement'); + return $this->render('front/suivi_signalement.html.twig', [ + 'signalement' => $signalement, + 'email' => $fromEmail, + 'type' => $type, + 'suiviAuto' => $suiviAuto, + ]); } $this->addFlash('error', 'Le lien utilisé est invalide, vérifiez votre saisie.'); @@ -558,68 +556,69 @@ public function postUserResponse( SuiviFactory $suiviFactory, SignalementFileProcessor $signalementFileProcessor, ): RedirectResponse { - if ($signalement = $signalementRepository->findOneByCodeForPublic($code)) { - if ($this->isCsrfTokenValid('signalement_front_response_'.$signalement->getUuid(), $request->get('_token'))) { - $email = $request->get('signalement_front_response')['email']; - $user = $userRepository->findOneBy(['email' => $email]); - $suivi = $suiviFactory->createInstanceFrom( - user: $user, - signalement: $signalement, - params: ['type' => Suivi::TYPE_USAGER], - isPublic: true, - ); + $signalement = $signalementRepository->findOneByCodeForPublic($code); + if (!$signalement) { + $this->addFlash('error', 'Le lien utilisé est expiré ou invalide, vérifiez votre saisie.'); - $description = htmlspecialchars( - nl2br($request->get('signalement_front_response')['content']), - \ENT_QUOTES, - 'UTF-8' - ); + return $this->redirectToRoute('home'); + } + if (!$this->isCsrfTokenValid('signalement_front_response_'.$signalement->getUuid(), $request->get('_token'))) { + $this->addFlash('error', 'Token CSRF invalide'); - $fileList = $descriptionList = []; - if ($data = $request->get('signalement')) { - if (isset($data['files'])) { - $dataFiles = $data['files']; - foreach ($dataFiles as $inputName => $files) { - list($files, $descriptions) = $signalementFileProcessor->process( - $dataFiles, - $inputName, - DocumentType::AUTRE - ); - $fileList = [...$fileList, ...$files]; - $descriptionList = [...$descriptionList, ...$descriptions]; - } - unset($data['files']); - } - if (!empty($descriptionList)) { - $description .= '
Ajout de pièces au signalement'; - $signalementFileProcessor->addFilesToSignalement($fileList, $signalement, $user); - } + return $this->redirectToRoute('front_suivi_signalement', ['code' => $signalement->getCodeSuivi()]); + } + if (Signalement::STATUS_CLOSED === $signalement->getStatut()) { + return $this->redirectToRoute('front_suivi_signalement', ['code' => $signalement->getCodeSuivi()]); + } + + $email = $request->get('signalement_front_response')['email']; + $user = $userRepository->findOneBy(['email' => $email]); + $suivi = $suiviFactory->createInstanceFrom( + user: $user, + signalement: $signalement, + params: ['type' => Suivi::TYPE_USAGER], + isPublic: true, + ); + + $description = htmlspecialchars( + nl2br($request->get('signalement_front_response')['content']), + \ENT_QUOTES, + 'UTF-8' + ); + + $fileList = $descriptionList = []; + if ($data = $request->get('signalement')) { + if (isset($data['files'])) { + $dataFiles = $data['files']; + foreach ($dataFiles as $inputName => $files) { + list($files, $descriptions) = $signalementFileProcessor->process( + $dataFiles, + $inputName, + DocumentType::AUTRE + ); + $fileList = [...$fileList, ...$files]; + $descriptionList = [...$descriptionList, ...$descriptions]; } + unset($data['files']); + } + if (!empty($descriptionList)) { + $description .= '
Ajout de pièces au signalement'; + $signalementFileProcessor->addFilesToSignalement($fileList, $signalement, $user); + } + } - $suivi->setDescription($description); - $entityManager->persist($suivi); - $entityManager->flush(); - $this->addFlash('success', <<setDescription($description); + $entityManager->persist($suivi); + $entityManager->flush(); + $this->addFlash('success', <<addFlash('error', 'Token CSRF invalide'); - } - } else { - $this->addFlash('error', 'Le lien utilisé est expiré ou invalide, vérifiez votre saisie.'); - - return $this->redirectToRoute('home'); - } - if (!empty($email)) { - return $this->redirectToRoute( - 'front_suivi_signalement', - ['code' => $signalement->getCodeSuivi(), 'from' => $email] - ); - } - - return $this->redirectToRoute('front_suivi_signalement', ['code' => $signalement->getCodeSuivi()]); + return $this->redirectToRoute( + 'front_suivi_signalement', + ['code' => $signalement->getCodeSuivi(), 'from' => $email] + ); } } diff --git a/src/Repository/SignalementRepository.php b/src/Repository/SignalementRepository.php index f14474597..fc6d20e15 100755 --- a/src/Repository/SignalementRepository.php +++ b/src/Repository/SignalementRepository.php @@ -517,6 +517,8 @@ public function findOneByCodeForPublic($code): ?Signalement return $this->createQueryBuilder('s') ->andWhere('s.codeSuivi = :code') ->setParameter('code', $code) + ->andWhere('s.statut != :status') + ->setParameter('status', Signalement::STATUS_ARCHIVED) ->leftJoin('s.suivis', 'suivis', Join::WITH, 'suivis.isPublic = 1') ->addSelect('suivis') ->getQuery() From c92e7b575cb13a9f3a6c82c78438b178dcf8b4f2 Mon Sep 17 00:00:00 2001 From: numew Date: Fri, 29 Mar 2024 14:25:44 +0100 Subject: [PATCH 2/4] refacto and control status signalement #2378 --- src/Controller/FrontSignalementController.php | 192 +++++++++--------- templates/front/suivi_signalement.html.twig | 58 +++--- 2 files changed, 134 insertions(+), 116 deletions(-) diff --git a/src/Controller/FrontSignalementController.php b/src/Controller/FrontSignalementController.php index b16dd49c2..f48b37cbf 100755 --- a/src/Controller/FrontSignalementController.php +++ b/src/Controller/FrontSignalementController.php @@ -411,65 +411,117 @@ public function suiviProcedure( Request $request, UserManager $userManager, SuiviManager $suiviManager, + EntityManagerInterface $entityManager, + SuiviFactory $suiviFactory ) { - if ($signalement = $signalementRepository->findOneByCodeForPublic($code)) { - $requestEmail = $request->get('from'); - $fromEmail = \is_array($requestEmail) ? array_pop($requestEmail) : $requestEmail; - $suiviAuto = $request->get('suiviAuto'); + $signalement = $signalementRepository->findOneByCodeForPublic($code); + if (!$signalement) { + $this->addFlash('error', 'Le lien utilisé est expiré ou invalide.'); - /** @var User $userOccupant */ - $userOccupant = $userManager->createUsagerFromSignalement($signalement, UserManager::OCCUPANT); - /** @var User $userDeclarant */ - $userDeclarant = $userManager->createUsagerFromSignalement($signalement, UserManager::DECLARANT); - $type = null; - $user = null; - if ($userOccupant && $fromEmail === $userOccupant->getEmail()) { - $type = UserManager::OCCUPANT; - $user = $userOccupant; - } elseif ($userDeclarant && $fromEmail === $userDeclarant->getEmail()) { - $type = UserManager::DECLARANT; - $user = $userDeclarant; - } - if ($user && $suiviAuto) { - if ($signalement->getIsUsagerAbandonProcedure()) { - $this->addFlash('error', 'Les services ont déjà été informés de votre volonté d\'arrêter la procédure. + return $this->redirectToRoute('home'); + } + $requestEmail = $request->get('from'); + $fromEmail = \is_array($requestEmail) ? array_pop($requestEmail) : $requestEmail; + $suiviAuto = $request->get('suiviAuto'); + + /** @var User $userOccupant */ + $userOccupant = $userManager->createUsagerFromSignalement($signalement, UserManager::OCCUPANT); + /** @var User $userDeclarant */ + $userDeclarant = $userManager->createUsagerFromSignalement($signalement, UserManager::DECLARANT); + $type = null; + $user = null; + if ($userOccupant && $fromEmail === $userOccupant->getEmail()) { + $type = UserManager::OCCUPANT; + $user = $userOccupant; + } elseif ($userDeclarant && $fromEmail === $userDeclarant->getEmail()) { + $type = UserManager::DECLARANT; + $user = $userDeclarant; + } + + if (!$user + || !\in_array($suiviAuto, [Suivi::POURSUIVRE_PROCEDURE, Suivi::ARRET_PROCEDURE]) + || \in_array($signalement->getStatut(), [Signalement::STATUS_CLOSED, Signalement::STATUS_REFUSED])) { + $this->addFlash('error', 'Le lien utilisé est invalide.'); + + return $this->redirectToRoute( + 'front_suivi_signalement', + ['code' => $signalement->getCodeSuivi(), 'from' => $fromEmail] + ); + } + + if ($signalement->getIsUsagerAbandonProcedure()) { + $this->addFlash('error', 'Les services ont déjà été informés de votre volonté d\'arrêter la procédure. Si vous le souhaitez, vous pouvez préciser la raison de l\'arrêt de procédure en envoyant un message via le formulaire ci-dessous.'); - return $this->redirectToRoute( - 'front_suivi_signalement', - ['code' => $signalement->getCodeSuivi(), 'from' => $fromEmail] - ); - } + return $this->redirectToRoute( + 'front_suivi_signalement', + ['code' => $signalement->getCodeSuivi(), 'from' => $fromEmail] + ); + } - if (Suivi::POURSUIVRE_PROCEDURE === $suiviAuto) { - $description = $user->getNomComplet().' ('.$type.') a indiqué vouloir poursuivre la procédure.'; - $suiviPoursuivreProcedure = $suiviManager->findOneBy([ - 'description' => $description, - 'signalement' => $signalement, - ]); - if (null !== $suiviPoursuivreProcedure) { - $this->addFlash('error', 'Les services ont déjà été informés de votre volonté de continuer la procédure. + if (Suivi::POURSUIVRE_PROCEDURE === $suiviAuto) { + $description = $user->getNomComplet().' ('.$type.') a indiqué vouloir poursuivre la procédure.'; + $suiviPoursuivreProcedure = $suiviManager->findOneBy([ + 'description' => $description, + 'signalement' => $signalement, + ]); + if (null !== $suiviPoursuivreProcedure) { + $this->addFlash('error', 'Les services ont déjà été informés de votre volonté de continuer la procédure. Si vous le souhaitez, vous pouvez envoyer un message via le formulaire ci-dessous.'); - return $this->redirectToRoute( - 'front_suivi_signalement', - ['code' => $signalement->getCodeSuivi(), 'from' => $fromEmail] - ); - } - } + return $this->redirectToRoute( + 'front_suivi_signalement', + ['code' => $signalement->getCodeSuivi(), 'from' => $fromEmail] + ); } + } - return $this->render('front/suivi_signalement.html.twig', [ - 'signalement' => $signalement, - 'email' => $fromEmail, - 'type' => $type, - 'suiviAuto' => $suiviAuto, - ]); + $token = $request->get('_token'); + $tokenValid = $this->isCsrfTokenValid('suivi_procedure', $token); + if ($token && !$tokenValid) { + $this->addFlash('error', 'Token CSRF invalide, merci de réessayer.'); + } + if ($token && $tokenValid) { + if (Suivi::ARRET_PROCEDURE === $suiviAuto) { + $description = $user->getNomComplet().' ('.$type.') a demandé l\'arrêt de la procédure.'; + $signalement->setIsUsagerAbandonProcedure(true); + $entityManager->persist($signalement); + $this->addFlash('success', "Les services ont été informés de votre volonté d'arrêter la procédure. + Si vous le souhaitez, vous pouvez préciser la raison de l'arrêt de procédure + en envoyant un message via le formulaire ci-dessous."); + } else { + $description = $user->getNomComplet().' ('.$type.') a indiqué vouloir poursuivre la procédure.'; + $this->addFlash('success', "Les services ont été informés de votre volonté de poursuivre la procédure. + N'hésitez pas à mettre à jour votre situation en envoyant un message via le formulaire ci-dessous."); + } + + $params = [ + 'type' => SUIVI::TYPE_USAGER, + 'description' => $description, + ]; + + $suivi = $suiviFactory->createInstanceFrom( + $user, + $signalement, + $params, + true + ); + $entityManager->persist($suivi); + $entityManager->flush(); + + return $this->redirectToRoute( + 'front_suivi_signalement', + ['code' => $signalement->getCodeSuivi(), 'from' => $fromEmail] + ); } - $this->addFlash('error', 'Le lien utilisé est invalide, vérifiez votre saisie.'); - return $this->redirectToRoute('front_signalement'); + return $this->render('front/suivi_signalement.html.twig', [ + 'signalement' => $signalement, + 'email' => $fromEmail, + 'type' => $type, + 'suiviAuto' => $suiviAuto, + ]); } #[Route('/suivre-mon-signalement/{code}', name: 'front_suivi_signalement', methods: 'GET')] @@ -477,64 +529,23 @@ public function suiviSignalement( string $code, SignalementRepository $signalementRepository, Request $request, - UserManager $userManager, - EntityManagerInterface $entityManager, - SuiviFactory $suiviFactory, + UserManager $userManager ) { if ($signalement = $signalementRepository->findOneByCodeForPublic($code)) { $requestEmail = $request->get('from'); $fromEmail = \is_array($requestEmail) ? array_pop($requestEmail) : $requestEmail; - $suiviAuto = $request->get('suiviAuto'); /** @var User $userOccupant */ $userOccupant = $userManager->createUsagerFromSignalement($signalement, UserManager::OCCUPANT); /** @var User $userDeclarant */ $userDeclarant = $userManager->createUsagerFromSignalement($signalement, UserManager::DECLARANT); $type = null; - $user = null; if ($userOccupant && $fromEmail === $userOccupant->getEmail()) { $type = UserManager::OCCUPANT; - $user = $userOccupant; } elseif ($userDeclarant && $fromEmail === $userDeclarant->getEmail()) { $type = UserManager::DECLARANT; - $user = $userDeclarant; } - if ($user && $suiviAuto) { - $description = ''; - if (Suivi::ARRET_PROCEDURE === $suiviAuto) { - $description = $user->getNomComplet().' ('.$type.') a demandé l\'arrêt de la procédure.'; - $signalement->setIsUsagerAbandonProcedure(true); - $entityManager->persist($signalement); - } - if (Suivi::POURSUIVRE_PROCEDURE === $suiviAuto) { - $description = $user->getNomComplet().' ('.$type.') a indiqué vouloir poursuivre la procédure.'; - } - $params = [ - 'type' => SUIVI::TYPE_USAGER, - 'description' => $description, - ]; - - $suivi = $suiviFactory->createInstanceFrom( - $user, - $signalement, - $params, - true - ); - $entityManager->persist($suivi); - $entityManager->flush(); - if (Suivi::ARRET_PROCEDURE === $suiviAuto) { - $this->addFlash('success', "Les services ont été informés de votre volonté d'arrêter la procédure. - Si vous le souhaitez, vous pouvez préciser la raison de l'arrêt de procédure - en envoyant un message via le formulaire ci-dessous."); - } - if (Suivi::POURSUIVRE_PROCEDURE === $suiviAuto) { - $this->addFlash('success', "Les services ont été informés de votre volonté de poursuivre la procédure. - N'hésitez pas à mettre à jour votre situation en envoyant un message via le formulaire ci-dessous."); - } - } - - // TODO: Verif info perso pour plus de sécu return $this->render('front/suivi_signalement.html.twig', [ 'signalement' => $signalement, 'email' => $fromEmail, @@ -567,10 +578,9 @@ public function postUserResponse( return $this->redirectToRoute('front_suivi_signalement', ['code' => $signalement->getCodeSuivi()]); } - if (Signalement::STATUS_CLOSED === $signalement->getStatut()) { + if (\in_array($signalement->getStatut(), [Signalement::STATUS_CLOSED, Signalement::STATUS_REFUSED])) { return $this->redirectToRoute('front_suivi_signalement', ['code' => $signalement->getCodeSuivi()]); } - $email = $request->get('signalement_front_response')['email']; $user = $userRepository->findOneBy(['email' => $email]); $suivi = $suiviFactory->createInstanceFrom( diff --git a/templates/front/suivi_signalement.html.twig b/templates/front/suivi_signalement.html.twig index 60808e2a2..fcaa80361 100755 --- a/templates/front/suivi_signalement.html.twig +++ b/templates/front/suivi_signalement.html.twig @@ -24,35 +24,43 @@
- - {% if suiviAuto is defined and suiviAuto is not empty %} -
-
-
-
- {% if suiviAuto is same as constant('App\\Entity\\Suivi::ARRET_PROCEDURE') %} - Vous souhaitez arrêter la procédure ?
- {% endif %} - {% if suiviAuto is same as constant('App\\Entity\\Suivi::POURSUIVRE_PROCEDURE') %} - Vous souhaitez poursuivre la procédure ?
- {% endif %} - Nous allons informer les services de votre réponse.
- Attention votre choix pourra avoir un impact sur la poursuite de votre dossier.
-
-
-
-
- Annuler + {% if signalement.statut is same as constant('App\\Entity\\Signalement::STATUS_REFUSED') %} + + {% elseif signalement.statut is same as constant('App\\Entity\\Signalement::STATUS_CLOSED') %} + + {% else %} + {% if suiviAuto is defined and suiviAuto is not empty %} +
+
+
+
+ {% if suiviAuto is same as constant('App\\Entity\\Suivi::ARRET_PROCEDURE') %} + Vous souhaitez arrêter la procédure ?
+ {% endif %} + {% if suiviAuto is same as constant('App\\Entity\\Suivi::POURSUIVRE_PROCEDURE') %} + Vous souhaitez poursuivre la procédure ?
+ {% endif %} + Nous allons informer les services de votre réponse.
+ Attention votre choix pourra avoir un impact sur la poursuite de votre dossier.
+
-
- Confirmer +
+
+ Annuler +
+
+ Confirmer +
-
- {% elseif signalement.statut != constant('App\\Entity\\Signalement::STATUS_CLOSED') %} + {% endif %}
Date: Fri, 29 Mar 2024 15:41:17 +0100 Subject: [PATCH 3/4] add and adapt test #2378 --- Signalement::STATUS_CLOSED, | 0 src/Controller/FrontSignalementController.php | 6 ++ .../FrontSignalementControllerTest.php | 75 ++++++++++++++++--- 3 files changed, 72 insertions(+), 9 deletions(-) create mode 100644 Signalement::STATUS_CLOSED, diff --git a/Signalement::STATUS_CLOSED, b/Signalement::STATUS_CLOSED, new file mode 100644 index 000000000..e69de29bb diff --git a/src/Controller/FrontSignalementController.php b/src/Controller/FrontSignalementController.php index f48b37cbf..04418e9c4 100755 --- a/src/Controller/FrontSignalementController.php +++ b/src/Controller/FrontSignalementController.php @@ -566,6 +566,7 @@ public function postUserResponse( EntityManagerInterface $entityManager, SuiviFactory $suiviFactory, SignalementFileProcessor $signalementFileProcessor, + UserManager $userManager ): RedirectResponse { $signalement = $signalementRepository->findOneByCodeForPublic($code); if (!$signalement) { @@ -581,6 +582,11 @@ public function postUserResponse( if (\in_array($signalement->getStatut(), [Signalement::STATUS_CLOSED, Signalement::STATUS_REFUSED])) { return $this->redirectToRoute('front_suivi_signalement', ['code' => $signalement->getCodeSuivi()]); } + /* @var User $userOccupant */ + $userManager->createUsagerFromSignalement($signalement, UserManager::OCCUPANT); + /* @var User $userDeclarant */ + $userManager->createUsagerFromSignalement($signalement, UserManager::DECLARANT); + $email = $request->get('signalement_front_response')['email']; $user = $userRepository->findOneBy(['email' => $email]); $suivi = $suiviFactory->createInstanceFrom( diff --git a/tests/Functional/Controller/FrontSignalementControllerTest.php b/tests/Functional/Controller/FrontSignalementControllerTest.php index ede2a6baa..5d880c1b3 100644 --- a/tests/Functional/Controller/FrontSignalementControllerTest.php +++ b/tests/Functional/Controller/FrontSignalementControllerTest.php @@ -3,6 +3,7 @@ namespace App\Tests\Functional\Controller; use App\Entity\Signalement; +use App\Entity\Suivi; use App\Manager\UserManager; use App\Tests\SessionHelper; use Doctrine\ORM\EntityManagerInterface; @@ -94,34 +95,85 @@ public function testConstraintValidationSignalement() ); } - public function testDisplaySuiviSignalement(): void + public function provideStatusSignalement(): \Generator + { + yield 'Actif' => [Signalement::STATUS_ACTIVE]; + yield 'Clôturé' => [Signalement::STATUS_CLOSED]; + yield 'Refusé' => [Signalement::STATUS_REFUSED]; + yield 'Archivé' => [Signalement::STATUS_ARCHIVED]; + } + + /** + * @dataProvider provideStatusSignalement + */ + public function testDisplaySuiviProcedure(int $status): void + { + $client = static::createClient(); + + /** @var EntityManagerInterface $entityManager */ + $entityManager = self::getContainer()->get('doctrine'); + /** @var Signalement $signalement */ + $signalement = $entityManager->getRepository(Signalement::class)->findOneBy([ + 'statut' => $status, + ]); + /** @var RouterInterface $router */ + $router = self::getContainer()->get(RouterInterface::class); + $urlSuiviSignalementUser = $router->generate('front_suivi_procedure', [ + 'code' => $signalement->getCodeSuivi(), + ]).'?from='.$signalement->getMailOccupant().'&suiviAuto='.Suivi::ARRET_PROCEDURE; + + $crawler = $client->request('GET', $urlSuiviSignalementUser); + if (Signalement::STATUS_ARCHIVED === $status) { + $this->assertResponseRedirects('/'); + } elseif (Signalement::STATUS_ACTIVE === $status) { + $this->assertEquals('Signalement #2022-1', $crawler->filter('h1')->text()); + } else { + $this->assertResponseRedirects('/suivre-mon-signalement/'.$signalement->getCodeSuivi().'?from='.$signalement->getMailOccupant()); + } + } + + /** + * @dataProvider provideStatusSignalement + */ + public function testDisplaySuiviSignalement(int $status): void { $client = static::createClient(); + /** @var EntityManagerInterface $entityManager */ $entityManager = self::getContainer()->get('doctrine'); /** @var Signalement $signalement */ $signalement = $entityManager->getRepository(Signalement::class)->findOneBy([ - 'codeSuivi' => '0123456789', + 'statut' => $status, ]); /** @var RouterInterface $router */ $router = self::getContainer()->get(RouterInterface::class); $urlSuiviSignalementUser = $router->generate('front_suivi_signalement', [ 'code' => $signalement->getCodeSuivi(), - ]).'?from[]='.$signalement->getMailOccupant(); + ]).'?from='.$signalement->getMailOccupant(); $crawler = $client->request('GET', $urlSuiviSignalementUser); - $this->assertResponseIsSuccessful(); - $this->assertEquals('Signalement #2023-18', $crawler->filter('h1')->text()); + if (Signalement::STATUS_ARCHIVED === $status) { + $this->assertResponseRedirects('/'); + } elseif (Signalement::STATUS_ACTIVE === $status) { + $this->assertEquals('Signalement #2022-1', $crawler->filter('h1')->text()); + } elseif (Signalement::STATUS_CLOSED === $status) { + $this->assertEquals('Votre signalement a été clôturé, vous ne pouvez plus envoyer de messages.', $crawler->filter('.fr-alert--error p')->text()); + } elseif (Signalement::STATUS_REFUSED === $status) { + $this->assertEquals('Votre signalement a été refusé, vous ne pouvez plus envoyer de messages.', $crawler->filter('.fr-alert--error p')->text()); + } } - public function testPostUsagerResponse(): void + /** + * @dataProvider provideStatusSignalement + */ + public function testPostUsagerResponse(int $status): void { $client = static::createClient(); /** @var EntityManagerInterface $entityManager */ $entityManager = self::getContainer()->get('doctrine'); /** @var Signalement $signalement */ $signalement = $entityManager->getRepository(Signalement::class)->findOneBy([ - 'codeSuivi' => '0123456789', + 'statut' => $status, ]); /** @var RouterInterface $router */ $router = self::getContainer()->get(RouterInterface::class); @@ -147,8 +199,13 @@ public function testPostUsagerResponse(): void ], ], ]); - - $this->assertResponseRedirects('/suivre-mon-signalement/'.$codeSuivi.'?from='.$emailOccupant); + if (Signalement::STATUS_ARCHIVED === $status) { + $this->assertResponseRedirects('/'); + } elseif (Signalement::STATUS_ACTIVE === $status) { + $this->assertResponseRedirects('/suivre-mon-signalement/'.$codeSuivi.'?from='.$emailOccupant); + } else { + $this->assertResponseRedirects('/suivre-mon-signalement/'.$codeSuivi); + } } public function provideAdressSignalementWithTerritoryActive(): array From f37d1e8a15281514fd872924830413c6a086e76d Mon Sep 17 00:00:00 2001 From: numew Date: Fri, 29 Mar 2024 16:58:50 +0100 Subject: [PATCH 4/4] remvove file error 720 --- Signalement::STATUS_CLOSED, | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Signalement::STATUS_CLOSED, diff --git a/Signalement::STATUS_CLOSED, b/Signalement::STATUS_CLOSED, deleted file mode 100644 index e69de29bb..000000000