feat: send mailings over MailJet smtp in dedicated worker process
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Tests\Email;
|
||||
|
||||
use App\Email\RemoveBusTransportHeaderListener;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Mailer\Envelope;
|
||||
use Symfony\Component\Mailer\Event\MessageEvent;
|
||||
use Symfony\Component\Mime\Address;
|
||||
use Symfony\Component\Mime\Email;
|
||||
|
||||
class RemoveBusTransportHeaderListenerTest extends TestCase
|
||||
{
|
||||
public function testTheHeaderIsGoneFromTheDeliveredMail(): void
|
||||
{
|
||||
$email = $this->createEmail();
|
||||
|
||||
(new RemoveBusTransportHeaderListener())($this->createEvent($email, queued: false));
|
||||
|
||||
$this->assertFalse($email->getHeaders()->has('X-Bus-Transport'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Symfony reads the header off the queued message to pick the messenger transport, so
|
||||
* removing it here would send the mailing over the shared queue after all.
|
||||
*/
|
||||
public function testTheHeaderSurvivesQueueing(): void
|
||||
{
|
||||
$email = $this->createEmail();
|
||||
|
||||
(new RemoveBusTransportHeaderListener())($this->createEvent($email, queued: true));
|
||||
|
||||
$this->assertTrue($email->getHeaders()->has('X-Bus-Transport'));
|
||||
}
|
||||
|
||||
private function createEmail(): Email
|
||||
{
|
||||
$email = (new Email())
|
||||
->from('[email protected]')
|
||||
->to('[email protected]')
|
||||
->subject('Betreff')
|
||||
->text('Nachricht')
|
||||
;
|
||||
|
||||
$email->getHeaders()->addTextHeader('X-Bus-Transport', 'mailing');
|
||||
|
||||
return $email;
|
||||
}
|
||||
|
||||
private function createEvent(Email $email, bool $queued): MessageEvent
|
||||
{
|
||||
return new MessageEvent(
|
||||
$email,
|
||||
new Envelope(new Address('[email protected]'), [new Address('[email protected]')]),
|
||||
'mailing',
|
||||
$queued
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user