diff --git a/lib/tasks/data/truncate_data.rb b/lib/tasks/data/truncate_data.rb index 68f08977ac..d01c914ea7 100644 --- a/lib/tasks/data/truncate_data.rb +++ b/lib/tasks/data/truncate_data.rb @@ -34,7 +34,7 @@ class TruncateData def remove_transient_data Spree::ReturnAuthorization.delete_all - Spree::StateChange.delete_all + Spree::StateChange.delete_all("created_at < '#{1.month.ago.to_date}'") Spree::LogEntry.delete_all sql_delete_from "sessions" end diff --git a/spec/lib/tasks/data/truncate_data_spec.rb b/spec/lib/tasks/data/truncate_data_spec.rb index 6d26ae9a29..faf2e6268d 100644 --- a/spec/lib/tasks/data/truncate_data_spec.rb +++ b/spec/lib/tasks/data/truncate_data_spec.rb @@ -20,6 +20,14 @@ describe TruncateData do expect(OrderCycle.all).to be_empty end + + it 'deletes state changes older than a month' do + TruncateData.new.call + + expect(Spree::StateChange) + .to have_received(:delete_all) + .with("created_at < '#{1.month.ago.to_date}'") + end end context 'when months_to_keep is nil' do @@ -33,6 +41,14 @@ describe TruncateData do expect(OrderCycle.all).to be_empty end + + it 'deletes state changes older than a month' do + TruncateData.new.call + + expect(Spree::StateChange) + .to have_received(:delete_all) + .with("created_at < '#{1.month.ago.to_date}'") + end end context 'when months_to_keep is specified' do @@ -50,6 +66,14 @@ describe TruncateData do expect(OrderCycle.all).to contain_exactly(recent_order_cycle) end + + it 'deletes state changes older than a month' do + TruncateData.new.call + + expect(Spree::StateChange) + .to have_received(:delete_all) + .with("created_at < '#{1.month.ago.to_date}'") + end end end end