From c0c7c6ec78fbd40a6bb39784cc8f85a5c93b0547 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Fri, 15 Jan 2021 17:23:58 +0000 Subject: [PATCH] Update checkout helper summing and add test coverage --- app/helpers/checkout_helper.rb | 2 +- spec/helpers/checkout_helper_spec.rb | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/helpers/checkout_helper.rb b/app/helpers/checkout_helper.rb index 8e54913dc5..cae6bc1657 100644 --- a/app/helpers/checkout_helper.rb +++ b/app/helpers/checkout_helper.rb @@ -19,7 +19,7 @@ module CheckoutHelper adjustments.reject! { |a| a.originator_type == 'EnterpriseFee' && a.source_type != 'Spree::LineItem' } unless exclude.include? :admin_and_handling adjustments << Spree::Adjustment.new( - label: I18n.t(:orders_form_admin), amount: enterprise_fee_adjustments.sum(:amount) + label: I18n.t(:orders_form_admin), amount: enterprise_fee_adjustments.sum(&:amount) ) end diff --git a/spec/helpers/checkout_helper_spec.rb b/spec/helpers/checkout_helper_spec.rb index 6665af4458..7dcf64b0c5 100644 --- a/spec/helpers/checkout_helper_spec.rb +++ b/spec/helpers/checkout_helper_spec.rb @@ -31,4 +31,29 @@ describe CheckoutHelper, type: :helper do order.distributor.allow_guest_orders = false expect(helper.guest_checkout_allowed?).to be false end + + describe "#checkout_adjustments_for" do + let(:order) { create(:order_with_totals_and_distribution) } + let(:enterprise_fee) { create(:enterprise_fee, amount: 123) } + let!(:fee_adjustment) { + create(:adjustment, originator: enterprise_fee, adjustable: order, source: order) + } + + before do + # Sanity check initial adjustments state + expect(order.adjustments.shipping.count).to eq 1 + expect(order.adjustments.enterprise_fee.count).to eq 1 + end + + it "collects adjustments on the order" do + adjustments = helper.checkout_adjustments_for(order) + + shipping_adjustment = order.adjustments.shipping.first + expect(adjustments).to include shipping_adjustment + + admin_fee_summary = adjustments.last + expect(admin_fee_summary.label).to eq I18n.t(:orders_form_admin) + expect(admin_fee_summary.amount).to eq 123 + end + end end