У меня есть хук :after_update
для отправки электронного письма при изменении статуса заказа.Кажется, что следующий тест не пройден, потому что :order_status_id_chaned?
возвращает false.
Test:
context 'when the order_status changes' do
it 'should send an email' do
@order2.save
expect(subject).to receive(:send_confirmation_email)
@order2.update(order_status_id: 2)
end
end
Order.rb
class Order < ApplicationRecord
after_update :send_confirmation_email, if: :order_just_submitted?
def order_just_submitted?
p self.order_status_id_changed? # prints false
p self.is_submitted? # prints true
self.order_status_id_changed? and self.is_submitted?
end
def send_confirmation_email
...
end
end
Есть идеи, почему :order_status_id_chaned?
возвращает false после обновления значения?