Set oc.opened at nil when cloning service

This commit is contained in:
rahsheen
2025-11-08 13:00:54 -05:00
committed by rah.codes
parent dddc945c42
commit 0b6e7593db
2 changed files with 25 additions and 1 deletions

View File

@@ -9,7 +9,7 @@ module OrderCycles
def create
oc = @original_order_cycle.dup
oc.name = I18n.t("models.order_cycle.cloned_order_cycle_name", order_cycle: oc.name)
oc.orders_open_at = oc.orders_close_at = oc.mails_sent = oc.processed_at = nil
oc.orders_open_at = oc.orders_close_at = oc.mails_sent = oc.processed_at = oc.opened_at = nil
oc.coordinator_fee_ids = @original_order_cycle.coordinator_fee_ids
oc.preferred_product_selection_from_coordinator_inventory_only =
@original_order_cycle.preferred_product_selection_from_coordinator_inventory_only

View File

@@ -75,6 +75,30 @@ RSpec.describe OpenOrderCycleJob do
end
end
context "with cloned order cycle" do
subject { OpenOrderCycleJob.perform_now(cloned_order_cycle.id) }
let!(:cloned_order_cycle) do
order_cycle.update!(opened_at: now - 5.minutes)
coc = OrderCycles::CloneService.new(order_cycle.reload).create
coc.update!(orders_open_at: now + 5.minutes)
coc.reload
coc
end
it "marks as open" do
expect {
subject
cloned_order_cycle.reload
}
.to change { cloned_order_cycle.opened_at }
expect(cloned_order_cycle.opened_at).to be_within(1).of(now)
end
end
describe "concurrency", concurrency: true do
let(:breakpoint) { Mutex.new }