Merge pull request #8966 from jibees/8958-improve-use-of-checkboxes-values-in-split-checkout

Splitcheckout: Don't save bill|ship address when associated checkbox is not checked during checkout process
This commit is contained in:
Filipe
2022-03-10 15:48:27 +00:00
committed by GitHub
2 changed files with 20 additions and 4 deletions

View File

@@ -27,14 +27,14 @@ class DefaultAddressUpdater
:bill_address_id, :ship_address_id, to: :order
def assign_bill_addresses
return unless save_bill_address
return if save_bill_address == "0"
customer.bill_address_id = bill_address_id
user&.bill_address_id = bill_address_id
end
def assign_ship_addresses
return unless save_ship_address
return if save_ship_address == "0"
customer.ship_address_id = ship_address_id
user&.ship_address_id = ship_address_id

View File

@@ -84,15 +84,31 @@ describe SplitCheckoutController, type: :controller do
end
describe "saving default addresses" do
it "don't updates default bill address on user" do
expect {
put :update, params: params.merge({ order: { save_bill_address: "0" } })
}.to_not change {
order.user.reload.bill_address
}
end
it "updates default bill address on user and customer" do
put :update, params: params.merge({ order: { save_bill_address: true } })
put :update, params: params.merge({ order: { save_bill_address: "1" } })
expect(order.customer.bill_address).to eq(order.bill_address)
expect(order.user.bill_address).to eq(order.bill_address)
end
it "don't updates default ship address on user" do
expect {
put :update, params: params.merge({ order: { save_bill_address: "0" } })
}.to_not change {
order.user.reload.ship_address
}
end
it "updates default ship address on user and customer" do
put :update, params: params.merge({ order: { save_ship_address: true } })
put :update, params: params.merge({ order: { save_ship_address: "1" } })
expect(order.customer.ship_address).to eq(order.ship_address)
expect(order.user.ship_address).to eq(order.ship_address)