Skip to content

Commit d0764d8

Browse files
committed
Add tests for Symfony Mime Component assertions
1 parent f9d035a commit d0764d8

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

src/Utils/Mailer.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ public function sendConfirmationEmail(User $user): TemplatedEmail
2525
->from('jeison_doe@gmail.com')
2626
->to(new Address($user->getEmail()))
2727
->subject('Account created successfully')
28+
->attach('Example attachment')
29+
->text('Example text body')
2830
->htmlTemplate('emails/registration.html.twig')
2931
->context(['user' => $user]);
3032

tests/Functional/MimeCest.php

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Tests\Functional;
6+
7+
use App\Entity\User;
8+
use App\Tests\FunctionalTester;
9+
use App\Utils\Mailer;
10+
11+
final class MimeCest
12+
{
13+
public function _before(FunctionalTester $I)
14+
{
15+
/** @var Mailer $mailer */
16+
$mailer = $I->grabService(Mailer::class);
17+
$mailer->sendConfirmationEmail(
18+
User::create(
19+
'jane_doe@gmail.com',
20+
'123456'
21+
)
22+
);
23+
}
24+
25+
public function assertEmailAddressContains(FunctionalTester $I)
26+
{
27+
$I->assertEmailAddressContains('To', 'jane_doe@gmail.com');
28+
}
29+
30+
public function assertEmailAttachmentCount(FunctionalTester $I)
31+
{
32+
$I->assertEmailAttachmentCount(1);
33+
}
34+
35+
public function assertEmailHasHeader(FunctionalTester $I)
36+
{
37+
$I->assertEmailHasHeader('From');
38+
}
39+
40+
public function assertEmailHeaderNotSame(FunctionalTester $I)
41+
{
42+
$I->assertEmailHeaderNotSame('To', 'john_doe@gmail.com');
43+
}
44+
45+
public function assertEmailHeaderSame(FunctionalTester $I)
46+
{
47+
$I->assertEmailHeaderSame('To', 'jane_doe@gmail.com');
48+
}
49+
50+
public function assertEmailHtmlBodyContains(FunctionalTester $I)
51+
{
52+
$I->assertEmailHtmlBodyContains('Example Email');
53+
}
54+
55+
public function assertEmailHtmlBodyNotContains(FunctionalTester $I)
56+
{
57+
$I->assertEmailHtmlBodyNotContains('jane_doe@gmail.com');
58+
}
59+
60+
public function assertEmailNotHasHeader(FunctionalTester $I)
61+
{
62+
$I->assertEmailNotHasHeader('Bcc');
63+
}
64+
65+
public function assertEmailTextBodyContains(FunctionalTester $I)
66+
{
67+
$I->assertEmailTextBodyContains('Example text body');
68+
}
69+
70+
public function assertEmailTextBodyNotContains(FunctionalTester $I)
71+
{
72+
$I->assertEmailTextBodyNotContains('Example Email');
73+
}
74+
}

0 commit comments

Comments
 (0)