Files
openfoodnetwork/spec/lib/tasks/data/truncate_data_rake_spec.rb
Maikel Linke f532c4712e Load rake tasks only once for code coverage
Apparently, Rake's way of reloading the task code confuses the code
coverage report. Code tested by rake task specs was not recognised as
covered even though it was.
2025-08-05 12:44:13 +10:00

35 lines
1009 B
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'truncate_data.rake' do
include_context "rake"
describe ':truncate' do
context 'when months_to_keep is specified' do
it 'truncates order cycles closed earlier than months_to_keep months ago' do
highline = instance_double(HighLine, agree: true)
allow(HighLine).to receive(:new).and_return(highline)
old_order_cycle = create(
:order_cycle,
orders_open_at: 7.months.ago,
orders_close_at: 7.months.ago + 1.day,
)
create(:order, order_cycle: old_order_cycle)
recent_order_cycle = create(
:order_cycle,
orders_open_at: 1.month.ago,
orders_close_at: 1.month.ago + 1.day,
)
create(:order, order_cycle: recent_order_cycle)
months_to_keep = 6
invoke_task "ofn:data:truncate[#{months_to_keep}]"
expect(OrderCycle.all).to contain_exactly(recent_order_cycle)
end
end
end
end