From fc370fa9d6a6f33cf71508f3462e9978a68da53d Mon Sep 17 00:00:00 2001 From: Juan Carlos Ruiz Date: Wed, 13 Mar 2019 12:41:45 -0600 Subject: Add guard clause for TaxLocation addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From Solidus Documentation: An order's tax_address can – through duck typing – be a Spree::TaxLocation instead of the shipping address. This adds a guard clause that validates if the tax_address is a TaxLocation, in this case we know that the address is incomplete. --- lib/super_good/solidus_taxjar/tax_calculator.rb | 2 ++ spec/super_good/solidus_taxjar/tax_calculator_spec.rb | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/super_good/solidus_taxjar/tax_calculator.rb b/lib/super_good/solidus_taxjar/tax_calculator.rb index 327e248..25339ac 100644 --- a/lib/super_good/solidus_taxjar/tax_calculator.rb +++ b/lib/super_good/solidus_taxjar/tax_calculator.rb @@ -152,6 +152,8 @@ module SuperGood end def incomplete_address?(tax_address) + return true if tax_address.is_a?(Spree::Tax::TaxLocation) + [ tax_address.address1, tax_address.city, diff --git a/spec/super_good/solidus_taxjar/tax_calculator_spec.rb b/spec/super_good/solidus_taxjar/tax_calculator_spec.rb index 0d390ec..aaa4ce1 100644 --- a/spec/super_good/solidus_taxjar/tax_calculator_spec.rb +++ b/spec/super_good/solidus_taxjar/tax_calculator_spec.rb @@ -74,6 +74,25 @@ RSpec.describe ::SuperGood::SolidusTaxJar::TaxCalculator do end end + context "when the order has an incomplete tax address" do + let(:address) do + ::Spree::Address.new( + first_name: "Ronnie James", + zipcode: nil, + address1: nil, + city: "Beverly Hills", + state_name: "California", + country: ::Spree::Country.new(iso: "US") + ) + end + + it "returns no taxes" do + expect(subject.order_id).to eq order.id + expect(subject.shipment_taxes).to be_empty + expect(subject.line_item_taxes).to be_empty + end + end + context "when the order has no line items" do let(:address) do ::Spree::Address.new( -- cgit v1.2.3 From 828350fd2b1cab40bc05e4e47d4b20f9a8542b1f Mon Sep 17 00:00:00 2001 From: Juan Carlos Ruiz Date: Wed, 13 Mar 2019 12:52:03 -0600 Subject: Bump Version --- CHANGELOG.md | 3 +++ lib/super_good/solidus_taxjar/version.rb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15069dc..2d5ded5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## v0.6.2 +- Updated `incomplete_address?` method to verify if a `tax_address` is a `Spree::Tax::TaxLocation`. `Spree::Tax::TaxLocation` is considered an incomplete address. + ## v0.6.1 - Stopped using the deprecated method `Spree::Address#empty?` in favour of simply checking that we have all of the fields on the address required for doing a TaxJar lookup. diff --git a/lib/super_good/solidus_taxjar/version.rb b/lib/super_good/solidus_taxjar/version.rb index ead2b37..6ca181f 100644 --- a/lib/super_good/solidus_taxjar/version.rb +++ b/lib/super_good/solidus_taxjar/version.rb @@ -1,5 +1,5 @@ module SuperGood module SolidusTaxJar - VERSION = "0.6.1" + VERSION = "0.6.2" end end -- cgit v1.2.3