mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-20 04:59:16 +00:00
Adapt order factories to work with enterprise fees summaries report specs
This commit is contained in:
@@ -102,17 +102,21 @@ FactoryBot.define do
|
||||
factory :line_item_with_shipment, parent: :line_item do
|
||||
transient do
|
||||
shipping_fee 3
|
||||
shipping_method nil
|
||||
end
|
||||
|
||||
target_shipment do
|
||||
shipment = order.reload.shipments.first
|
||||
after(:build) do |line_item, evaluator|
|
||||
shipment = line_item.order.reload.shipments.first
|
||||
if shipment.nil?
|
||||
shipping_method = create(:shipping_method_with, :shipping_fee, shipping_fee: shipping_fee)
|
||||
shipping_method.distributors << order.distributor if order.distributor
|
||||
shipping_method = evaluator.shipping_method
|
||||
unless shipping_method
|
||||
shipping_method = create(:shipping_method_with, :shipping_fee, shipping_fee: evaluator.shipping_fee)
|
||||
shipping_method.distributors << line_item.order.distributor if line_item.order.distributor
|
||||
end
|
||||
shipment = create(:shipment_with, :shipping_method, shipping_method: shipping_method,
|
||||
order: order)
|
||||
order: line_item.order)
|
||||
end
|
||||
shipment
|
||||
line_item.target_shipment = shipment
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -94,27 +94,36 @@ end
|
||||
|
||||
FactoryBot.modify do
|
||||
factory :order do
|
||||
transient do
|
||||
shipping_method { create(:shipping_method, distributors: [distributor]) }
|
||||
end
|
||||
|
||||
trait :with_line_item do
|
||||
transient do
|
||||
variant { FactoryGirl.create(:variant) }
|
||||
end
|
||||
|
||||
after(:create) do |order, evaluator|
|
||||
create(:line_item, order: order, variant: evaluator.variant)
|
||||
line_item = create(:line_item_with_shipment, order: order,
|
||||
variant: evaluator.variant,
|
||||
shipping_method: evaluator.shipping_method)
|
||||
order.shipments << line_item.target_shipment
|
||||
end
|
||||
end
|
||||
|
||||
trait :completed do
|
||||
transient do
|
||||
payment_method { create(:payment_method, distributors: [distributor]) }
|
||||
ship_address { create(:address) }
|
||||
end
|
||||
|
||||
after(:create) do |order, evaluator|
|
||||
order.create_shipment!
|
||||
create(:payment, state: "checkout", order: order, amount: order.total,
|
||||
payment_method: evaluator.payment_method)
|
||||
order.update_distribution_charge!
|
||||
while !order.completed? do break unless order.next! end
|
||||
order.ship_address = evaluator.ship_address
|
||||
while !order.completed? do break unless a = order.next! end
|
||||
order.select_shipping_method(evaluator.shipping_method.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user