Better helper naming and spec cover

This commit is contained in:
Maikel Linke
2019-04-03 11:07:22 +11:00
parent 0c846758dd
commit 7035d57267
3 changed files with 36 additions and 5 deletions

View File

@@ -1,13 +1,19 @@
module Admin
module OrdersHelper
def order_adjustments(order)
# Adjustments to display under "Order adjustments".
#
# We exclude shipping method adjustments because they are displayed in a
# separate table together with the order line items.
#
# We also exclude tax rate adjustment with zero value.
def order_adjustments_for_display(order)
order.adjustments.eligible.select do |adjustment|
type = adjustment.originator_type
is_shipping_method_fee = (type == 'Spree::ShippingMethod')
is_zero_tax_rate = (type == 'Spree::TaxRate' && adjustment.amount.zero?)
is_shipping_method_adjustment = (type == 'Spree::ShippingMethod')
is_zero_tax_rate_adjustment = (type == 'Spree::TaxRate' && adjustment.amount.zero?)
!is_shipping_method_fee && !is_zero_tax_rate
!is_shipping_method_adjustment && !is_zero_tax_rate_adjustment
end
end
end

View File

@@ -5,7 +5,7 @@
= render :partial => "spree/admin/orders/shipment", :collection => @order.shipments, :locals => { :order => order }
= render :partial => "spree/admin/orders/_form/adjustments", :locals => { :adjustments => @order.price_adjustments, :title => t(".line_item_adjustments")}
= render :partial => "spree/admin/orders/_form/adjustments", :locals => { :adjustments => order_adjustments(@order), :title => t(".order_adjustments")}
= render :partial => "spree/admin/orders/_form/adjustments", :locals => { :adjustments => order_adjustments_for_display(@order), :title => t(".order_adjustments")}
- if order.line_items.exists?
%fieldset#order-total.no-border-bottom{"data-hook" => "order_details_total"}

View File

@@ -0,0 +1,25 @@
require "spec_helper"
describe Admin::OrdersHelper, type: :helper do
describe "#order_adjustments_for_display" do
let(:order) { create(:order) }
it "selects eligible adjustments" do
adjustment = create(:adjustment, adjustable: order, amount: 1)
expect(helper.order_adjustments_for_display(order)).to eq [adjustment]
end
it "filters shipping method adjustments" do
create(:adjustment, adjustable: order, amount: 1, originator_type: "Spree::ShippingMethod")
expect(helper.order_adjustments_for_display(order)).to eq []
end
it "filters zero tax rate adjustments" do
create(:adjustment, adjustable: order, amount: 0, originator_type: "Spree::TaxRate")
expect(helper.order_adjustments_for_display(order)).to eq []
end
end
end