summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared Norman <jared@super.gd>2019-02-05 11:51:39 -0800
committerJared Norman <jared@super.gd>2019-02-05 11:52:28 -0800
commitb31fa3208a08f39a161f76437b968aebb93f9d2d (patch)
tree0a410a7268fb62227791a4d7822e0e5297bd4db2
parent399ab4c613b8e1ec010e4991629b403ba852badd (diff)
Make shipping tax label configurable
-rw-r--r--lib/super_good/solidus_taxjar.rb2
-rw-r--r--lib/super_good/solidus_taxjar/tax_calculator.rb11
-rw-r--r--spec/super_good/solidus_taxjar_spec.rb7
3 files changed, 18 insertions, 2 deletions
diff --git a/lib/super_good/solidus_taxjar.rb b/lib/super_good/solidus_taxjar.rb
index 1ab40ec..9a32d9f 100644
--- a/lib/super_good/solidus_taxjar.rb
+++ b/lib/super_good/solidus_taxjar.rb
@@ -15,6 +15,7 @@ module SuperGood
attr_accessor :test_mode
attr_accessor :exception_handler
attr_accessor :taxable_address_check
+ attr_accessor :shipping_tax_label_maker
end
self.discount_calculator = ::SuperGood::SolidusTaxJar::DiscountCalculator
@@ -23,5 +24,6 @@ module SuperGood
Rails.logger.error "An error occurred while fetching TaxJar tax rates - #{e}: #{e.message}"
}
self.taxable_address_check = ->(address) { true }
+ self.shipping_tax_label_maker = ->(shipment, shipping_tax) { "Sales Tax" }
end
end
diff --git a/lib/super_good/solidus_taxjar/tax_calculator.rb b/lib/super_good/solidus_taxjar/tax_calculator.rb
index d2b7b74..a2eb8ca 100644
--- a/lib/super_good/solidus_taxjar/tax_calculator.rb
+++ b/lib/super_good/solidus_taxjar/tax_calculator.rb
@@ -67,7 +67,7 @@ module SuperGood
tax_items << ::Spree::Tax::ItemTax.new(
item_id: shipment.id,
- label: "Sales Tax",
+ label: shipping_tax_label(shipment, shipping_tax),
tax_rate: tax_rate,
amount: shipping_tax,
included_in_price: false
@@ -76,7 +76,7 @@ module SuperGood
tax_items << ::Spree::Tax::ItemTax.new(
item_id: shipments.last.id,
- label: "Sales Tax",
+ label: shipping_tax_label(shipments.last, remaining_tax),
tax_rate: tax_rate,
amount: remaining_tax,
included_in_price: false
@@ -133,6 +133,13 @@ module SuperGood
def taxable_address?(address)
SuperGood::SolidusTaxJar.taxable_address_check.(address)
end
+
+ def shipping_tax_label(shipment, shipping_tax)
+ SuperGood::SolidusTaxJar.shipping_tax_label_maker.(
+ shipment,
+ shipping_tax
+ )
+ end
end
end
end
diff --git a/spec/super_good/solidus_taxjar_spec.rb b/spec/super_good/solidus_taxjar_spec.rb
index 4586f39..36ab3b3 100644
--- a/spec/super_good/solidus_taxjar_spec.rb
+++ b/spec/super_good/solidus_taxjar_spec.rb
@@ -36,5 +36,12 @@ RSpec.describe SuperGood::SolidusTaxJar do
it { is_expected.to eq true }
end
+
+ describe ".shipping_tax_label_maker" do
+ subject { described_class.shipping_tax_label_maker.(shipment, shipping_tax) }
+ let(:shipment) { Spree::Shipment.new }
+ let(:shipping_tax) { BigDecimal("3.25") }
+ it { is_expected.to eq "Sales Tax" }
+ end
end
end