From 210e0294e16b4e7726e4bc077c15df5c04e190a5 Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Wed, 1 Mar 2017 11:13:48 +0100 Subject: [PATCH] Rewrite tests and logic --- spec/models/dossier_spec.rb | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb index 80656c2ff..d211e1542 100644 --- a/spec/models/dossier_spec.rb +++ b/spec/models/dossier_spec.rb @@ -886,10 +886,10 @@ describe Dossier do describe '#update_state_dates' do let(:state) { 'draft' } let(:dossier) { create(:dossier, state: state) } - let(:now) { Time.now.beginning_of_day } + let(:beginning_of_day) { Time.now.beginning_of_day } before do - Timecop.freeze(now) + Timecop.freeze(beginning_of_day) end context 'when dossier is initiated' do @@ -899,12 +899,15 @@ describe Dossier do end it { expect(dossier.state).to eq('initiated') } - it { expect(dossier.initiated_at).to eq(now) } + it { expect(dossier.initiated_at).to eq(beginning_of_day) } - # it 'should not change initiated_at if it is already set' do - # dossier.initiated_at = 1.day.ago - # expect(dossier.initiated_at).to eq(1.day.ago) - # end + it 'should keep first initiated_at date' do + Timecop.return + dossier.received! + dossier.initiated! + + expect(dossier.initiated_at).to eq(beginning_of_day) + end end context 'when dossier is received' do @@ -916,7 +919,15 @@ describe Dossier do end it { expect(dossier.state).to eq('received') } - it { expect(dossier.received_at).to eq(now) } + it { expect(dossier.received_at).to eq(beginning_of_day) } + + it 'should keep first received_at date if dossier is set to initiated again' do + Timecop.return + dossier.initiated! + dossier.received! + + expect(dossier.received_at).to eq(beginning_of_day) + end end shared_examples 'dossier is processed' do |new_state| @@ -926,7 +937,7 @@ describe Dossier do end it { expect(dossier.state).to eq(new_state) } - it { expect(dossier.processed_at).to eq(now) } + it { expect(dossier.processed_at).to eq(beginning_of_day) } end context 'when dossier is closed' do