mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Create shipment when creating a order for a subscription
A spec has been added to check that the attributes for the order states
after "cart" ("address", "delivery", "payment") are retained if the
order is transitioned to completion, BUT currently this is passing
because it is the only shipping method available.
This commit is contained in:
@@ -15,8 +15,10 @@ class OrderFactory
|
||||
set_user
|
||||
build_line_items
|
||||
set_addresses
|
||||
create_shipment
|
||||
set_shipping_method
|
||||
create_payment
|
||||
|
||||
@order
|
||||
end
|
||||
|
||||
@@ -66,6 +68,10 @@ class OrderFactory
|
||||
@order.update_attributes(attrs.slice(:bill_address_attributes, :ship_address_attributes))
|
||||
end
|
||||
|
||||
def create_shipment
|
||||
@order.create_proposed_shipments
|
||||
end
|
||||
|
||||
def set_shipping_method
|
||||
@order.select_shipping_method(attrs[:shipping_method_id])
|
||||
end
|
||||
|
||||
@@ -42,6 +42,19 @@ describe OrderFactory do
|
||||
expect(order.complete?).to be false
|
||||
end
|
||||
|
||||
it "retains address, delivery, and payment attributes until completion of the order" do
|
||||
while !order.completed? do break unless order.next! end
|
||||
|
||||
order.reload
|
||||
|
||||
expect(order.customer).to eq customer
|
||||
expect(order.shipping_method).to eq shipping_method
|
||||
expect(order.payments.first.payment_method).to eq payment_method
|
||||
expect(order.bill_address).to eq bill_address
|
||||
expect(order.ship_address).to eq ship_address
|
||||
expect(order.total).to eq 38.0
|
||||
end
|
||||
|
||||
context "when the customer does not have a user associated with it" do
|
||||
before { customer.update_attribute(:user_id, nil) }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user