Merge pull request #7367 from andrewpbrett/tap-map

Replace map for ActionController::Params v2
This commit is contained in:
Andy Brett
2021-04-09 12:21:32 -07:00
committed by GitHub
2 changed files with 13 additions and 9 deletions

View File

@@ -106,13 +106,15 @@ class CartService
end
def read_variants_hash(data)
(data[:variants] || []).map do |variant_id, quantity|
if quantity.is_a?(Hash)
{ variant_id: variant_id, quantity: quantity[:quantity], max_quantity: quantity[:max_quantity] }
variants_array = []
(data[:variants] || []).each do |variant_id, quantity|
if quantity.is_a?(ActionController::Parameters)
variants_array.push({ variant_id: variant_id, quantity: quantity[:quantity], max_quantity: quantity[:max_quantity] })
else
{ variant_id: variant_id, quantity: quantity }
variants_array.push({ variant_id: variant_id, quantity: quantity })
end
end
variants_array
end
def cart_remove(variant_id)

View File

@@ -27,7 +27,8 @@ describe CartService do
describe "#populate" do
it "adds a variant" do
cart_service.populate(
{ variants: { variant.id.to_s => { quantity: '1', max_quantity: '2' } } },
ActionController::Parameters.new({ variants: { variant.id.to_s => { quantity: '1',
max_quantity: '2' } } }),
true
)
li = order.find_line_item_by_variant(variant)
@@ -41,7 +42,8 @@ describe CartService do
order.add_variant variant, 1, 2
cart_service.populate(
{ variants: { variant.id.to_s => { quantity: '2', max_quantity: '3' } } },
ActionController::Parameters.new({ variants: { variant.id.to_s => { quantity: '2',
max_quantity: '3' } } }),
true
)
li = order.find_line_item_by_variant(variant)
@@ -54,7 +56,7 @@ describe CartService do
it "removes a variant" do
order.add_variant variant, 1, 2
cart_service.populate({ variants: {} }, true)
cart_service.populate(ActionController::Parameters.new({ variants: {} }), true)
order.line_items.reload
li = order.find_line_item_by_variant(variant)
expect(li).not_to be
@@ -67,7 +69,7 @@ describe CartService do
it "does not add the deleted variant to the cart" do
variant.delete
cart_service.populate({ variants: { variant.id.to_s => { quantity: '2' } } }, true)
cart_service.populate(ActionController::Parameters.new({ variants: { variant.id.to_s => { quantity: '2' } } }), true)
expect(relevant_line_item).to be_nil
expect(cart_service.errors.count).to be 0
@@ -82,7 +84,7 @@ describe CartService do
it "removes the line_item from the cart" do
variant.delete
cart_service.populate({ variants: { variant.id.to_s => { quantity: '3' } } }, true)
cart_service.populate(ActionController::Parameters.new({ variants: { variant.id.to_s => { quantity: '3' } } }), true)
expect(Spree::LineItem.where(id: relevant_line_item).first).to be_nil
expect(cart_service.errors.count).to be 0