Merge pull request #13689 from rahsheen/fix/13396-cloned-order-cycles-not-processed

Clear opened_at when cloning order cycle
This commit is contained in:
Filipe
2025-11-27 18:52:09 +00:00
committed by GitHub
3 changed files with 33 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,37 @@ 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
it "enqueues webhook job" do
expect(OrderCycles::WebhookService)
.to receive(:create_webhook_job).with(cloned_order_cycle, 'order_cycle.opened', now).once
subject
end
end
describe "concurrency", concurrency: true do
let(:breakpoint) { Mutex.new }

View File

@@ -17,6 +17,7 @@ RSpec.describe OrderCycles::CloneService do
occ = OrderCycles::CloneService.new(oc).create
expect(occ.name).to eq("COPY OF #{oc.name}")
expect(occ.orders_open_at).to be_nil
expect(occ.opened_at).to be_nil
expect(occ.orders_close_at).to be_nil
expect(occ.coordinator).not_to be_nil
expect(occ.preferred_product_selection_from_coordinator_inventory_only).to be true