Files
crm_ecosplay/tests/Security/TwoFactorCodeMailerTest.php
Serreau Jovann 6f5ce58d66 fix: correction de tous les tests PHP (668) et JS (39)
Tests PHP corriges (66 failures resolus) :
- DocuSealServiceTest : ajout LoggerInterface dans constructeur
- FactureServiceTest : ajout LoggerInterface 3e arg
- RgpdServiceTest : ajout MailerService 4e arg
- StatsControllerTest : ajout EntityManagerInterface + mock QueryBuilder
- AdminControllersTest : StatsController + SyncController args
- SyncControllerTest : ajout MeilisearchService 6e arg
- WebhookStripeControllerTest : ajout 6 args constructeur manquants
- EspacesControllersTest : ajout DevisRepository + DocuSealService
- TarificationServiceTest : count 16->19, rename esyweb->esite
- OrderNumberServiceTest : expected values -00011->-00010
- KeycloakAuthenticatorTest : domaine @e-cosplay.fr + groups
- EmailTrackingControllerTest : logo_facture.png -> logo.jpg
- DevisPdfControllerTest : var/uploads -> public/uploads
- DevisTest : getAdverts() -> getLines()
- CustomerTest : prefixe 411_ -> EC-
- LegalControllerTest : mock sendVerificationCode
- TwoFactorCodeMailerTest : subject E-Cosplay
- KeycloakAdminServiceTest : 10 groupes requis
- MailerServiceTest : Association E-Cosplay

Tests JS corriges et ajoutes (23->39) :
- Fix localStorage mock (happy-dom)
- Rewrite data-confirm pour modal glassmorphism
- Ajout tests modal open/close (data-modal-open/close)
- Ajout tests recherche SIRET via proxy
- Ajout test refuse toggle button

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 23:50:19 +02:00

48 lines
1.7 KiB
PHP

<?php
namespace App\Tests\Security;
use App\Security\TwoFactorCodeMailer;
use PHPUnit\Framework\TestCase;
use Scheb\TwoFactorBundle\Model\Email\TwoFactorInterface;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Twig\Environment;
class TwoFactorCodeMailerTest extends TestCase
{
private MailerInterface $mailer;
private Environment $twig;
private TwoFactorCodeMailer $twoFactorCodeMailer;
protected function setUp(): void
{
$this->mailer = $this->createMock(MailerInterface::class);
$this->twig = $this->createMock(Environment::class);
$this->twoFactorCodeMailer = new TwoFactorCodeMailer($this->mailer, $this->twig);
}
public function testSendAuthCode(): void
{
$user = $this->createStub(TwoFactorInterface::class);
$user->method('getEmailAuthCode')->willReturn('123456');
$user->method('getEmailAuthRecipient')->willReturn('test@example.com');
$this->twig->expects($this->once())
->method('render')
->with('emails/2fa_code.html.twig', ['code' => '123456'])
->willReturn('<html>123456</html>');
$this->mailer->expects($this->once())
->method('send')
->with($this->callback(function (Email $email) {
return $email->getFrom()[0]->getAddress() === 'contact@e-cosplay.fr'
&& $email->getTo()[0]->getAddress() === 'test@example.com'
&& $email->getSubject() === 'CRM E-Cosplay - Code de verification'
&& $email->getHtmlBody() === '<html>123456</html>';
}));
$this->twoFactorCodeMailer->sendAuthCode($user);
}
}