У меня есть приложение Rails 5, и я тестирую обратный вызов в моей модели.Я хочу быть уверенным, что вызывается обратный вызов, но я не хочу фактически запускать следующую строку, поскольку он вызывает API и отправляет электронное письмо:
response = bird.request(body, employee.location.birdeye)
Мой тест выглядит следующим образом:
it 'expects to send request through birdeye if valid' do
req = build(:review_request)
expect(req).to receive(:send_request)
req.save
end
И это работает, но указанная выше строка запускается.Как я могу проверить этот обратный вызов, не вызывая bird.request()
?Вот моя модель:
class ReviewRequest < ApplicationRecord
belongs_to :user
belongs_to :review, optional: true
belongs_to :employee, optional: true
after_create :send_request
def client
self.user.client
end
def send_request
p "send_request callback..."
ap self
ap client
body = {
name: client.try(:name),
emailId: user.email,
phone: client.try(:phone),
employees: [
{
emailId: employee.try(:email)
}
]
}
bird = Birdeye.new
response = bird.request(body, employee.location.birdeye)
ap body
return response
end
end