From c1028fd943b76acb50e1027082ee69cda4cbfcac Mon Sep 17 00:00:00 2001 From: demangel6u <mael.demangel3@etu.univ-lorraine.fr> Date: Tue, 2 Apr 2024 18:13:22 +0200 Subject: [PATCH] ajout du test de poster une annonce --- templates/annonce_creation/creation.html.twig | 2 +- tests/TestsPosterAnnonceTest.php | 119 ++++++++++++++++++ 2 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 tests/TestsPosterAnnonceTest.php diff --git a/templates/annonce_creation/creation.html.twig b/templates/annonce_creation/creation.html.twig index 741b7692..4128756f 100644 --- a/templates/annonce_creation/creation.html.twig +++ b/templates/annonce_creation/creation.html.twig @@ -17,7 +17,7 @@ Date de début* {{ form_widget(form.date_debut, {'attr': {'required': true, 'class': 'form-control'}}) }} - <button type="submit" class="creation_annonce">Créer</button> + <button type="submit" id="creer_annonce" class="creation_annonce">Créer</button> </div> {{ form_end(form) }} <a href="{{ path("app_home_page")}}"><button class="btn-connexion2">Retourner à l'accueil</button></a> diff --git a/tests/TestsPosterAnnonceTest.php b/tests/TestsPosterAnnonceTest.php new file mode 100644 index 00000000..f876d1eb --- /dev/null +++ b/tests/TestsPosterAnnonceTest.php @@ -0,0 +1,119 @@ +<?php + +namespace App\Tests; + +use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; +use App\Repository\PersonneRepository; + +class TestsPosterAnnonceTest extends WebTestCase +{ + public function testPosterAnnonce(): void + { + $client = static::createClient(); + + $userRepository = static::getContainer()->get(PersonneRepository::class); + + $user = $userRepository->findOneByLogin('test'); + + $client->loginUser($user); + + // Accéder à la page d'inscription + $client->request('GET', '/annonce/creation'); + + // Soumettre le formulaire de création avec des données valides + $client->submitForm('creer_annonce',[ + 'annonce[type_prestation]' => 'pret', + 'annonce[titre]'=> 'testAnnonce', + 'annonce[descr_prestation]' => 'ceci est une description', + 'annonce[cout_prestation]'=> 50, + ]); + + $this->assertResponseRedirects('/'); + + //On test si l'on peut créer deux fois la même annonce + $client->request('GET', '/annonce/creation'); + + // Soumettre le formulaire de création avec des données valides + $client->submitForm('creer_annonce',[ + 'annonce[type_prestation]' => 'pret', + 'annonce[titre]'=> 'testAnnonce', + 'annonce[descr_prestation]' => 'ceci est une description', + 'annonce[cout_prestation]'=> 50, + ]); + + $this->assertResponseRedirects('/'); + + //On test si le titre peut être vide + $client->request('GET', '/annonce/creation'); + + // Soumettre le formulaire de création avec des données valides + $client->submitForm('creer_annonce',[ + 'annonce[type_prestation]' => 'pret', + 'annonce[titre]'=> null, + 'annonce[descr_prestation]' => 'ceci est une description', + 'annonce[cout_prestation]'=> 50, + ]); + $this->assertFalse($client->getResponse()->isRedirect()); + + //On test si le cout peut être nul + $client->request('GET', '/annonce/creation'); + + // Soumettre le formulaire de création avec des données valides + $client->submitForm('creer_annonce',[ + 'annonce[type_prestation]' => 'pret', + 'annonce[titre]'=> '', + 'annonce[descr_prestation]' => 'ceci est une description', + 'annonce[cout_prestation]'=> null, + ]); + $this->assertFalse($client->getResponse()->isRedirect()); + } + + public function testVisualisationAnnonce(): void + { + $client = static::createClient(); + + $userRepository = static::getContainer()->get(PersonneRepository::class); + + $user = $userRepository->findOneByLogin('test'); + + $client->loginUser($user); + + // Accéder à la page de création d'annonce + $client->request('GET', '/annonce/creation'); + + // Soumettre le formulaire de création avec des données valides + $client->submitForm('creer_annonce',[ + 'annonce[type_prestation]' => 'pret', + 'annonce[titre]'=> 'testPretAnnonce', + 'annonce[descr_prestation]' => 'ceci est une description', + 'annonce[cout_prestation]'=> 50, + ]); + + $this->assertResponseRedirects('/'); + + // Accéder à la page de création d'annonce + $client->request('GET', '/annonce/creation'); + + // Soumettre le formulaire de création avec des données valides + $client->submitForm('creer_annonce',[ + 'annonce[type_prestation]' => 'service', + 'annonce[titre]'=> 'testServiceAnnonce', + 'annonce[descr_prestation]' => 'ceci est une description', + 'annonce[cout_prestation]'=> 100, + ]); + + $this->assertResponseRedirects('/'); + + $client->request('GET', ''); + + $this->assertSelectorExists('p','testPretAnnonce'); + $this->assertSelectorExists('p','50 florains'); + $this->assertSelectorExists('p','Prèt'); + + $this->assertSelectorExists('p','testServiceAnnonce'); + $this->assertSelectorExists('p','100 florains'); + $this->assertSelectorExists('p','Service'); + + + } +} -- GitLab