У меня есть метод rails, который позволяет пользователю отправить отзыв и контрагента, он отправляет электронное письмо с использованием отложенных заданий.
def update_review
@review.add_review_content(review_params)
ReviewMailer.delay.review_posted(@review.product_owner, params[:id])
end
И я пытаюсь добавить тест rspec
длячтобы проверить, правильно ли доставлен почтовый ящик и кому.Задержанные задания запускаются сразу после их создания в test
, потому что я хочу, чтобы другие задания, например задание, обновляли общий рейтинг владельцев продукта, чтобы были немедленно завершены.
Так что электронная почта действительно отправляется, но как я могу добавитьтест для него?
РЕДАКТИРОВАТЬ: Добавление текущих тестов
Мои текущие тесты:
describe 'PUT #update the review' do
let(:attr) do
{ rating: 3.0, raw_review: 'Some example review here' }
end
before(:each) do
@review = FactoryBot.create :review
put :update, id: @review.id, review: attr
end
it 'creates a job' do
ActiveJob::Base.queue_adapter = :test
expect {
AdminMailer.review_posted(@coach, @review.id).deliver_later
}.to have_enqueued_job
end
it { should respond_with 200 }
end
Это действительно проверяет, что почтовик работает правильно, но я хочу проверить, чтоон также корректно запускается в потоке методов.