mardi 2 janvier 2018

Database notifications don't show up after testing notify

I have a unit test with the following:

use \Illuminate\Notifications\DatabaseNotification;

public function testMailSentAndLogged()
{
    Notification::fake();

    $user = factory(User::class)->create();
    $emailAddress = $user->emailAddress;
    $emailAddress->notify(new UserCreated);

    Notification::assertSentTo(
        $emailAddress,
        UserCreated::class
    );

    error_log('DatabaseNotification '.print_r(DatabaseNotification::get()->toArray(), 1));
    $this->assertEquals(1, $emailAddress->notifications->count());

}

My Notification has this for the via():

public final function via($notifiable)
{
    // complex logic...

    error_log('mail, database');
    return ['mail', 'database'];
}

The code fails on the $this->assertEquals code. the error_log produces the following:

[03-Jan-2018 01:23:01 UTC] mail, database
[03-Jan-2018 01:23:01 UTC] DatabaseNotification Array
(
)

WHY don't the $emailAddress->notifications pull up anything? Why doesn't DatabaseNotification::get() pull anything?;



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2CwtNwB
via IFTTT

Aucun commentaire:

Enregistrer un commentaire