From 431f30bb52666bb1824d70cff814d95d93594e84 Mon Sep 17 00:00:00 2001 From: Pau Perez Date: Wed, 2 Jun 2021 16:33:54 +0200 Subject: [PATCH] Fix proxy_order.placed_at test and deal with time Relying on Rails' `freeze_time` is much more reliable than this brittle magic number. It turns out Timecop is not needed for this case anymore. See https://frontdeveloper.pl/2020/03/how-we-migrated-from-timecop-to-built-in-rails-5-2-time-helpers/. --- spec/services/place_order_spec.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spec/services/place_order_spec.rb b/spec/services/place_order_spec.rb index 191e5313e0..3bc6c76746 100644 --- a/spec/services/place_order_spec.rb +++ b/spec/services/place_order_spec.rb @@ -3,6 +3,8 @@ require 'spec_helper' describe PlaceOrder do + include ActiveSupport::Testing::TimeHelpers + subject { described_class.new(proxy_order, summarizer, logger, changes) } let(:changes) { {} } @@ -22,12 +24,13 @@ describe PlaceOrder do before do allow(SubscriptionMailer).to receive(:empty_email) { mail_mock } - subject.initialise_order end it "marks placeable proxy_orders as processed by setting placed_at" do - expect{ subject.call(order, subject) }.to change{ proxy_order.reload.placed_at } - expect(proxy_order.placed_at).to be_within(5.seconds).of Time.zone.now + freeze_time do + expect { subject.call }.to change { proxy_order.reload.placed_at } + expect(proxy_order.placed_at).to eq(Time.zone.now) + end end end