laravel-email-failer icon indicating copy to clipboard operation
laravel-email-failer copied to clipboard

Trigger email failures to assert what happens on your Laravel Application when an email fails to send

Laravel Email Failer

Build Status Build status StyleCI Latest Stable Version Total Downloads License MadeWithLaravel.com shield

Laravel Email Failer

composer require --dev rogervila/laravel-email-failer

About

Trigger email failures to assert what happens on your Laravel Application when an email fails to send

Usage

Once MailFailer instance is binded, all emails will fail. This helps to assert that your application Mail exceptions are handled correctly (ie: mark the email address as invalid)

class MyService
{
    public static function sendEmail()
    {
        \Illuminate\Support\Facades\Mail::send(...);
    }
}

public function test_happy_path()
{
    Mail::fake();

    MyService::sendEmail();

    Mail::assertSent(MyMailable::class);
}

public function test_email_failures()
{
    $this->expectException(TransportException::class);

    \LaravelEmailFailer\MailFailer::bind();

    MyService::sendEmail();

    Mail::assertNotSent(MyMailable::class);

    dump(Mail::failures());
    // Assert here what happens when the email has failed
}

License

Laravel Email Failer is open-sourced software licensed under the MIT license.

Icon made by Darius Dan from www.flaticon.com is licensed by CC 3.0 BY