From 94d560d34197f2f0762bb446c4ad8f673c54ca0f Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 2 Jul 2024 13:19:39 +1000 Subject: [PATCH] Replace expecting method call with outcome This is more realistic and robust. Don't mock the class under test (even though `touch` is actually provided by Active Record). --- spec/models/spree/order_spec.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index eb736345ce..1b12fcbc3d 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -220,8 +220,12 @@ RSpec.describe Spree::Order do subject(:order) { Spree::Order.create } it "should set completed_at" do - expect(order).to receive(:touch).with(:completed_at) - order.finalize! + expect { + order.finalize! + order.reload + }.to change { + order.completed_at + }.from(nil) end it "should sell inventory units" do