Почему expectsNotification или аналогичные инструменты не отлавливают уведомления в тестах?
Здравствуйте! Такой вопрос.
Например.
У меня есть уведомление в коде, которое ставит в очередь на отправку пользователю письма с восстановлением пароля. Я его могу заглушить. Но! Инструменты тестирования ларавель дают мне возможность их отловить, т.е. не просто забить на них, а убедиться, что они фактически были обработаны. Но, почему-то ни expectsNotification, ни Notification::assertSentTo() не делают то, что я от них ожидаю. Вылетает такая ошибка в тесте: The following expected notification were not dispatched. В коде уведомление оправляется как Notifications::send(адресат)
Я дополнительно писал артисан-команды чтобы запустить обработку очереди, но это также не помогло пройти утверждение, что уведомление было обработано.
Может кто сталкивался с таким вопросом и знает ответ что не так и почему не проходит утверждение?
Я просмотрел логи, может быть проблема в том, что у меня фактически уведомление уходит в статус проваленное?
То есть, так как у меня нет локально настроенного smtp, мне некому отправлять сообщения.
Лог примерно такой: Processing x3 -> Failed. Очередь три раза пытается обработать, потом снимает с обработки.
Process could not be started /usr/sbin/sendmail
Что не совсем логично, потому что уведомление было зафейкано. И я тогда не понимаю смысл фейкать, если мне не важно что сообщение было отправлено, мне важно что оно намеревалось быть отправленным.
Я переписал под assertSentTo() и это утверждение тоже не проходит потому что уведомление лежит в проваленных.