diff --git a/spec/system/consumer/split_checkout_spec.rb b/spec/system/consumer/split_checkout_spec.rb index 6922f1e72b..94330104ff 100644 --- a/spec/system/consumer/split_checkout_spec.rb +++ b/spec/system/consumer/split_checkout_spec.rb @@ -219,7 +219,6 @@ describe "As a consumer, I want to checkout my order", js: true do before do check "order_save_bill_address" choose free_shipping.name - proceed_to_payment end it "before saving has no default address" do @@ -228,6 +227,9 @@ describe "As a consumer, I want to checkout my order", js: true do end context "as a first time customer" do + before do + proceed_to_payment + end it "creates a new default bill address" do expect(order.reload.bill_address.address1).to eq "Rue de la Vie, 77" expect(order.customer.bill_address.address1).to eq "Rue de la Vie, 77" @@ -259,6 +261,57 @@ describe "As a consumer, I want to checkout my order", js: true do end end + context "shipping address" do + describe "checking the default address box" do + before do + choose free_shipping_with_required_address.name + uncheck "ship_address_same_as_billing" + fill_out_shipping_address + check "order_save_ship_address" + end + + it "before saving has no default address" do + expect(user.ship_address).to be_nil + expect(order.ship_address).to be_nil + end + + context "as a first time customer" do + before do + proceed_to_payment + end + it "creates a new default ship address" do + expect(order.reload.ship_address.address1).to eq "Rue de la Vie, 66" + expect(order.customer.ship_address.address1).to eq "Rue de la Vie, 66" + expect(user.reload.ship_address.address1).to eq "Rue de la Vie, 66" + end + end + end + + describe "unchecking the default address box" do + before do + choose free_shipping_with_required_address.name + uncheck "ship_address_same_as_billing" + fill_out_shipping_address + uncheck "order_save_ship_address" + end + + context "as an existing customer" do + let(:existing_address) { create(:address) } + + before do + user.ship_address = existing_address + user.save + proceed_to_payment + end + it "updates the ship address of the order and customer" do + expect(order.reload.ship_address.address1).to eq "Rue de la Vie, 66" + expect(order.customer.ship_address.address1).to eq "Rue de la Vie, 66" + expect(user.reload.ship_address.address1).to eq(existing_address.address1) + end + end + end + end + describe "selecting a pick-up shipping method and submiting the form" do before do choose free_shipping.name