Files
e-cosplay/tests/Entity/AccountResetPasswordRequestTest.php
Serreau Jovann 6d7a9552f6 feat: Implémente la fonctionnalité de réinitialisation du mot de passe
Ce commit introduit la fonctionnalité de réinitialisation du mot de passe pour les utilisateurs.

Les modifications apportées sont les suivantes :

- Ajout de l'entité `AccountResetPasswordRequest` pour gérer les requêtes de réinitialisation de mot de passe.
- Ajout du repository `AccountResetPasswordRequestRepository` pour interagir avec l'entité `AccountResetPasswordRequest`.
- Ajout du formulaire `RequestPasswordRequestType` pour permettre aux utilisateurs de demander une réinitialisation de mot de passe.
- Ajout de l'événement `ResetPasswordEvent` pour déclencher le processus de réinitialisation du mot de passe.
- Ajout de la route `/forgot-password` dans le `HomeController` pour gérer la demande de réinitialisation.
- Création des templates twig `admin/forgot-password.twig` et `admin/base.twig` et `form_tailwind.twig` pour la gestion de l'affichage du formulaire et de la base de l'interface admin.
- Modification des templates twig `admin/login.twig` pour ajouter un lien vers la page de réinitialisation de mot de passe.
- Mise à jour du fichier `assets/app.scss` pour inclure des styles CSS personnalisés.
- Ajout de tests unitaires pour l'entité, le repository et le formulaire.
- Ajout de la configuration twig pour prendre en charge les formulaires avec tailwind
- Ajout des règles d'exclusions sonar dans `sonar-project.properties`
2025-07-18 11:25:13 +02:00

38 lines
1.2 KiB
PHP

<?php
namespace App\Tests\Entity;
use App\Entity\Account;
use App\Entity\AccountResetPasswordRequest;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
class AccountResetPasswordRequestTest extends TestCase
{
public function testEntitySettersAndGetters(): void
{
$account = new Account(); // Ou crée un mock si la classe est complexe
$token = 'reset-token-example';
$now = new \DateTimeImmutable();
$expires = $now->modify('+1 hour');
$resetRequest = new AccountResetPasswordRequest();
$resetRequest->setAccount($account);
$resetRequest->setToken($token);
$resetRequest->setRequestedAt($now);
$resetRequest->setExpiresAt($expires);
$refClass = new ReflectionClass($resetRequest);
$idProp = $refClass->getProperty('id');
$idProp->setAccessible(true);
$idProp->setValue($resetRequest, 123);
$this->assertSame($account, $resetRequest->getAccount());
$this->assertSame($token, $resetRequest->getToken());
$this->assertSame($now, $resetRequest->getRequestedAt());
$this->assertSame($expires, $resetRequest->getExpiresAt());
$this->assertSame(123, $resetRequest->getId());
}
}