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