mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-09 23:06:06 +00:00
Extract subscriptions factories to separate file
This commit is contained in:
@@ -31,45 +31,6 @@ FactoryBot.define do
|
||||
order_cycles { [OrderCycle.first || FactoryBot.create(:simple_order_cycle)] }
|
||||
end
|
||||
|
||||
factory :subscription, :class => Subscription do
|
||||
shop { create :enterprise }
|
||||
schedule { create(:schedule, order_cycles: [create(:simple_order_cycle, coordinator: shop)]) }
|
||||
customer { create(:customer, enterprise: shop) }
|
||||
bill_address { create(:address, :randomized) }
|
||||
ship_address { create(:address, :randomized) }
|
||||
payment_method { create(:payment_method, distributors: [shop]) }
|
||||
shipping_method { create(:shipping_method, distributors: [shop]) }
|
||||
begins_at { 1.month.ago }
|
||||
|
||||
transient do
|
||||
with_items false
|
||||
with_proxy_orders false
|
||||
end
|
||||
|
||||
after(:create) do |subscription, proxy|
|
||||
if proxy.with_items
|
||||
subscription.subscription_line_items = build_list(:subscription_line_item, 3, subscription: subscription)
|
||||
subscription.order_cycles.each do |oc|
|
||||
ex = oc.exchanges.outgoing.find_by_sender_id_and_receiver_id(subscription.shop_id, subscription.shop_id) ||
|
||||
create(:exchange, :order_cycle => oc, :sender => subscription.shop, :receiver => subscription.shop, :incoming => false, :pickup_time => 'time', :pickup_instructions => 'instructions')
|
||||
subscription.subscription_line_items.each { |sli| ex.variants << sli.variant }
|
||||
end
|
||||
end
|
||||
|
||||
if proxy.with_proxy_orders
|
||||
subscription.order_cycles.each do |oc|
|
||||
subscription.proxy_orders << create(:proxy_order, subscription: subscription, order_cycle: oc)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
factory :subscription_line_item, :class => SubscriptionLineItem do
|
||||
subscription
|
||||
variant
|
||||
quantity 1
|
||||
end
|
||||
|
||||
factory :proxy_order, :class => ProxyOrder do
|
||||
subscription
|
||||
order_cycle { subscription.order_cycles.first }
|
||||
|
||||
40
spec/factories/subscription_factory.rb
Normal file
40
spec/factories/subscription_factory.rb
Normal file
@@ -0,0 +1,40 @@
|
||||
FactoryBot.define do
|
||||
factory :subscription, :class => Subscription do
|
||||
shop { create :enterprise }
|
||||
schedule { create(:schedule, order_cycles: [create(:simple_order_cycle, coordinator: shop)]) }
|
||||
customer { create(:customer, enterprise: shop) }
|
||||
bill_address { create(:address, :randomized) }
|
||||
ship_address { create(:address, :randomized) }
|
||||
payment_method { create(:payment_method, distributors: [shop]) }
|
||||
shipping_method { create(:shipping_method, distributors: [shop]) }
|
||||
begins_at { 1.month.ago }
|
||||
|
||||
transient do
|
||||
with_items false
|
||||
with_proxy_orders false
|
||||
end
|
||||
|
||||
after(:create) do |subscription, proxy|
|
||||
if proxy.with_items
|
||||
subscription.subscription_line_items = build_list(:subscription_line_item, 3, subscription: subscription)
|
||||
subscription.order_cycles.each do |oc|
|
||||
ex = oc.exchanges.outgoing.find_by_sender_id_and_receiver_id(subscription.shop_id, subscription.shop_id) ||
|
||||
create(:exchange, :order_cycle => oc, :sender => subscription.shop, :receiver => subscription.shop, :incoming => false, :pickup_time => 'time', :pickup_instructions => 'instructions')
|
||||
subscription.subscription_line_items.each { |sli| ex.variants << sli.variant }
|
||||
end
|
||||
end
|
||||
|
||||
if proxy.with_proxy_orders
|
||||
subscription.order_cycles.each do |oc|
|
||||
subscription.proxy_orders << create(:proxy_order, subscription: subscription, order_cycle: oc)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
factory :subscription_line_item, :class => SubscriptionLineItem do
|
||||
subscription
|
||||
variant
|
||||
quantity 1
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user