super_good-solidus_taxjar 0.18.1 → 0.18.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 977d3ededff1e9bd56c37b6dda9228545160525fed6f7667e194e0ab45486ce8
4
- data.tar.gz: 10466dec877f8de3eadb843929ec93173bc30fd7ab58be34c5ff08d5de4214b2
3
+ metadata.gz: ea057c858aee853bafe0e6510d678028c46db7e1640383348ada09adbedcf8dc
4
+ data.tar.gz: 9e18d2dce1ed09754a6de1c8eecaac84af5f579fb9ebe8120d26fad646beb3d0
5
5
  SHA512:
6
- metadata.gz: 46ffc2f0a1c52205acdf91a12ec2a3b1806bca174450a1a763e03ba1c54add5a7c82ac538b04bca72c31fa7d295fc2cd9a040e719cd58ddaf7233a1af7655b35
7
- data.tar.gz: 3186b598fb5d11dd0cab75e145d8e088e6563562767acab012e4127544428fa6e4ac927adb2cc1c9ccbd7dfc831e7bdde1e402462596230736045bb970d54c6e
6
+ metadata.gz: 9c042476951882510a92dd96ae09d0a8da6406a7d05edd93be023c1b6dfdc84d7a31a5c3fdc7904ea1c9115a04fe3a0d22c74d4520824ed02bd3ef0cf274c5c6
7
+ data.tar.gz: 66cf84615dd4b4bd478494bd464464e5d25bd02c5a49029c080c180ca5bd791fff6bb09108e4a597cdd4d7df8fc6cbff247d37476917fe5306288a5ae5e66707
@@ -0,0 +1,16 @@
1
+ version: 2.1
2
+ orbs:
3
+ solidusio_extensions: solidusio/extensions@0.2.24
4
+
5
+ jobs:
6
+ run-specs-with-postgres:
7
+ executor: solidusio_extensions/postgres
8
+ steps:
9
+ - checkout
10
+ - solidusio_extensions/run-tests-solidus-older
11
+ - solidusio_extensions/store-test-results
12
+
13
+ workflows:
14
+ "Run specs on supported Solidus versions":
15
+ jobs:
16
+ - run-specs-with-postgres
data/CHANGELOG.md CHANGED
@@ -1,15 +1,26 @@
1
1
  # Changelog
2
2
 
3
3
  ## master
4
+ ## v0.18.2
4
5
 
5
- ## v0.18.1
6
+ - [#71](https://github.com/SuperGoodSoft/solidus_taxjar/pull/69) Unlock ExecJS version. This reverts the temporary fix introduced in #69
7
+ - [#79](https://github.com/SuperGoodSoft/solidus_taxjar/pull/79) Relax Ruby required version to support Ruby 3.0+
8
+ - [#51](https://github.com/SuperGoodSoft/solidus_taxjar/pull/51) Add nexus regions method to API
9
+ - [#58](https://github.com/SuperGoodSoft/solidus_taxjar/pull/58) Take shipping promotions into account in default calculator
10
+ - [#59](https://github.com/SuperGoodSoft/solidus_taxjar/pull/59) Add pry debugging tools
11
+ - [#69](https://github.com/SuperGoodSoft/solidus_taxjar/pull/69) Lock ExecJS version
12
+ - [#37](https://github.com/SuperGoodSoft/solidus_taxjar/pull/37) Added a basic Taxjar settings admin interface which displays placeholder text.
13
+ - [#64](https://github.com/SuperGoodSoft/solidus_taxjar/pull/64) Provide Spree::Address.address2 to TaxJar address validation if it is present.
14
+ - [#80](https://github.com/SuperGoodSoft/solidus_taxjar/pull/80) Support order_recalculated event in < 2.11
15
+
16
+ ## v0.18.1
6
17
 
7
18
  [#52](https://github.com/supergoodsoft/solidus_taxjar/pull/52) fixes a critical bug in the API class that was released in `v0.18.0`. Please upgrade.
8
19
 
9
20
  - [#47](https://github.com/SuperGoodSoft/solidus_taxjar/pull/47) Fixed bug in `validate_address_params` for addresses without a state
10
21
  - [#52](https://github.com/supergoodsoft/solidus_taxjar/pull/52) Fixed critical bug in API class
11
22
 
12
- ## ~~v0.18.0~~
23
+ ## ~~v0.18.0~~
13
24
  `v0.18.0` was removed due to a regression in the API class that was fixed in [#52](https://github.com/SuperGoodSoft/solidus_taxjar/pull/52) and `v0.18.1`
14
25
 
15
26
  - [#21](https://github.com/SuperGoodSoft/solidus_taxjar/pull/21) Migrated project to `solidus_dev_support`
data/Gemfile CHANGED
@@ -25,6 +25,8 @@ end
25
25
 
26
26
  group :development, :test do
27
27
  gem "pry"
28
+ gem "pry-stack_explorer"
29
+ gem "pry-byebug"
28
30
  end
29
31
 
30
32
  gemspec
@@ -14,6 +14,7 @@ Merge Checklist
14
14
 
15
15
  - [ ] Run the manual tests
16
16
  - [ ] Update the changelog
17
+ - [ ] Run a sandbox app and verify taxes are being calculated
17
18
 
18
19
  Screenshots
19
20
  ---
data/README.md CHANGED
@@ -16,14 +16,7 @@ This is not a fork of [spree_taxjar](https://github.com/vinsol-spree-contrib/spr
16
16
 
17
17
  $ bundle
18
18
 
19
- 2. Install and run the necessary migrations:
20
-
21
- ```shell
22
- bundle exec rails g super_good:solidus_taxjar:install
23
- bundle exec rake db:migrate
24
- ```
25
-
26
- 3. Next, configure Solidus to use this gem:
19
+ 2. Next, configure Solidus to use this gem:
27
20
 
28
21
  ```ruby
29
22
  # Put this in config/initializers/solidus.rb
@@ -33,7 +26,7 @@ This is not a fork of [spree_taxjar](https://github.com/vinsol-spree-contrib/spr
33
26
  end
34
27
  ```
35
28
 
36
- 4. Also, configure your error handling:
29
+ 3. Also, configure your error handling:
37
30
 
38
31
  ```ruby
39
32
  # Put this in config/initializers/taxjar.rb
@@ -62,6 +55,8 @@ The extension provides currently two high level `calculator` classes that wrap t
62
55
  * tax calculator
63
56
  * tax rate calculator
64
57
 
58
+ The extension requires the `order_recalculated` event which is not supported on Solidus < 2.11, so this extension provides a [compatibility layer](app/decorators/super_good/solidus_taxjar/spree/order_updater/fire_recalculated_event.rb).
59
+
65
60
  ### TaxCalculator
66
61
 
67
62
  `SuperGood::SolidusTaxjar::TaxCalculator` allows calculating the full tax breakdown for a given `Spree::Order`. The breakdown includes separate line items taxes and shipment taxes.
@@ -0,0 +1,8 @@
1
+ module Spree
2
+ module Admin
3
+ class TaxjarSettingsController < Spree::Admin::BaseController
4
+ def show
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SuperGood
4
+ module SolidusTaxjar
5
+ module Spree
6
+ module OrderUpdater
7
+ module FireRecalculatedEvent
8
+ def persist_totals
9
+ ::Spree::Event.fire 'order_recalculated', order: order
10
+ super
11
+ end
12
+
13
+ ::Spree::OrderUpdater.prepend(self) if ::Spree.solidus_gem_version < Gem::Version.new('2.11.0')
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ Deface::Override.new(
4
+ virtual_path: 'spree/admin/shared/_taxes_tabs',
5
+ name: 'add_taxjar_admin_menu_links',
6
+ insert_bottom: "[data-hook='admin_settings_taxes_tabs']"
7
+ ) do
8
+ <<-HTML
9
+ <%= configurations_sidebar_menu_item "TaxJar Settings", admin_taxjar_settings_path %>
10
+ HTML
11
+ end
@@ -0,0 +1,13 @@
1
+ <%= render 'spree/admin/shared/taxes_tabs' %>
2
+
3
+ <% content_for :page_title do %>
4
+ <%= "Taxjar Settings" %>
5
+ <% end %>
6
+
7
+ <% if ENV["TAXJAR_API_KEY"] %>
8
+ <table>
9
+ </table>
10
+ <% else %>
11
+ <p>You must provide a TaxJar API token to use this extension. You can sign up for TaxJar <%= link_to "here", "https://app.taxjar.com/api_sign_up", target: "_blank", rel: "noreferrer" %>. Please see the extension documentation for details on providing this token to the extension.</p>
12
+ <p><i>For more help in aquiring a TaxJar API token, see <%= link_to "How do I get a TaxJar sales tax API token?", "https://support.taxjar.com/article/160-how-do-i-get-a-sales-tax-api-token", target: "_blank", rel: "noreferrer" %></i></p>
13
+ <% end %>
data/config/routes.rb ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ Spree::Core::Engine.routes.draw do
4
+ namespace :admin do
5
+ resource :taxjar_settings, only: [:show]
6
+ end
7
+ end
@@ -4,5 +4,7 @@ module SuperGoodSolidusTaxjar
4
4
  class Engine < Rails::Engine
5
5
  isolate_namespace Spree
6
6
  engine_name 'super_good_solidus_taxjar'
7
+
8
+ include SolidusSupport::EngineExtensions
7
9
  end
8
10
  end
@@ -44,7 +44,7 @@ module SuperGood
44
44
  }
45
45
  self.line_item_tax_label_maker = ->(taxjar_line_item, spree_line_item) { "Sales Tax" }
46
46
  self.logging_enabled = false
47
- self.shipping_calculator = ->(order) { order.shipment_total }
47
+ self.shipping_calculator = ->(order) { order.shipments.sum(&:total_before_tax) }
48
48
  self.shipping_tax_label_maker = ->(shipment, shipping_tax) { "Sales Tax" }
49
49
  self.taxable_address_check = ->(address) { true }
50
50
  self.taxable_order_check = ->(order) { true }
@@ -20,7 +20,7 @@ module SuperGood
20
20
 
21
21
  return if taxjar_address.nil?
22
22
 
23
- Spree::Address.immutable_merge(spree_address, {
23
+ ::Spree::Address.immutable_merge(spree_address, {
24
24
  country: us, # TaxJar only supports the US currently.
25
25
  state: state(taxjar_address.state),
26
26
  zipcode: taxjar_address.zip,
@@ -31,7 +31,7 @@ module SuperGood
31
31
 
32
32
  def possibilities(spree_address)
33
33
  taxjar_addresses(spree_address).map { |taxjar_address|
34
- Spree::Address.immutable_merge(spree_address, {
34
+ ::Spree::Address.immutable_merge(spree_address, {
35
35
  country: us, # TaxJar only supports the US currently.
36
36
  state: state(taxjar_address.state),
37
37
  zipcode: taxjar_address.zip,
@@ -52,7 +52,7 @@ module SuperGood
52
52
  end
53
53
 
54
54
  def us
55
- Spree::Country.find_by iso: "US"
55
+ ::Spree::Country.find_by iso: "US"
56
56
  end
57
57
 
58
58
  def state(abbr)
@@ -55,6 +55,10 @@ module SuperGood
55
55
  taxjar_client.validate_address ApiParams.validate_address_params(spree_address)
56
56
  end
57
57
 
58
+ def nexus_regions
59
+ taxjar_client.nexus_regions
60
+ end
61
+
58
62
  private
59
63
 
60
64
  attr_reader :taxjar_client
@@ -72,7 +72,7 @@ module SuperGood
72
72
  state: spree_address.state&.abbr || spree_address.state_name,
73
73
  zip: spree_address.zipcode,
74
74
  city: spree_address.city,
75
- street: spree_address.address1
75
+ street: [spree_address.address1, spree_address.address2].compact.join(' ')
76
76
  }
77
77
  end
78
78
 
@@ -4,7 +4,7 @@ module SuperGood
4
4
  extend ActiveSupport::Concern
5
5
 
6
6
  def incomplete_address?(address)
7
- return true if address.is_a?(Spree::Tax::TaxLocation)
7
+ return true if address.is_a?(::Spree::Tax::TaxLocation)
8
8
 
9
9
  [
10
10
  address.address1,
@@ -17,7 +17,7 @@ module SuperGood
17
17
  cache do
18
18
  next no_tax unless taxjar_breakdown
19
19
 
20
- Spree::Tax::OrderTax.new(
20
+ ::Spree::Tax::OrderTax.new(
21
21
  order_id: order.id,
22
22
  line_item_taxes: line_item_taxes,
23
23
  shipment_taxes: shipment_taxes
@@ -41,7 +41,7 @@ module SuperGood
41
41
  # orders aren't going to have a huge number of line items.
42
42
  spree_line_item = order.line_items.find { |li| li.id == spree_line_item_id }
43
43
 
44
- Spree::Tax::ItemTax.new(
44
+ ::Spree::Tax::ItemTax.new(
45
45
  item_id: spree_line_item_id,
46
46
  label: line_item_tax_label(taxjar_line_item, spree_line_item),
47
47
  tax_rate: tax_rate,
@@ -102,7 +102,7 @@ module SuperGood
102
102
  end
103
103
 
104
104
  def no_tax
105
- Spree::Tax::OrderTax.new(
105
+ ::Spree::Tax::OrderTax.new(
106
106
  order_id: order.id,
107
107
  line_item_taxes: [],
108
108
  shipment_taxes: []
@@ -110,7 +110,7 @@ module SuperGood
110
110
  end
111
111
 
112
112
  def tax_rate
113
- Spree::TaxRate.find_by(name: "Sales Tax")
113
+ ::Spree::TaxRate.find_by(name: "Sales Tax")
114
114
  end
115
115
 
116
116
  def cache_key
@@ -1,5 +1,5 @@
1
1
  module SuperGood
2
2
  module SolidusTaxjar
3
- VERSION = "0.18.1"
3
+ VERSION = "0.18.2"
4
4
  end
5
5
  end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.feature 'Admin TaxJar Settings', js: true do
4
+ stub_authorization!
5
+
6
+ background do
7
+ create :store, default: true
8
+ end
9
+
10
+ describe "Taxjar settings tab" do
11
+ before do
12
+ allow(ENV).to receive(:[]).and_call_original
13
+ allow(ENV).to receive(:[]).with("TAXJAR_API_KEY").and_return(api_token)
14
+ end
15
+
16
+ context "Taxjar API token is set" do
17
+ let(:api_token) { "token" }
18
+
19
+ it "shows a blank settings page" do
20
+
21
+ visit "/admin"
22
+ click_on "Settings"
23
+ expect(page).to have_content("Taxes")
24
+ click_on "Taxes"
25
+ expect(page).to have_content("TaxJar Settings")
26
+ click_on "TaxJar Settings"
27
+ expect(page).not_to have_content "You must provide a TaxJar API token"
28
+ end
29
+ end
30
+
31
+ context "Taxjar API token isn't set" do
32
+ let(:api_token) { nil }
33
+
34
+ it "shows a descriptive error message" do
35
+ visit "/admin"
36
+ click_on "Settings"
37
+ expect(page).to have_content("Taxes")
38
+ click_on "Taxes"
39
+ expect(page).to have_content("TaxJar Settings")
40
+ click_on "TaxJar Settings"
41
+ expect(page).to have_content "You must provide a TaxJar API token"
42
+
43
+ expect(page).to have_link(href: "https://app.taxjar.com/api_sign_up")
44
+ expect(page).to have_link(href: "https://support.taxjar.com/article/160-how-do-i-get-a-sales-tax-api-token")
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,12 @@
1
+ RSpec.describe Spree::OrderUpdater do
2
+ describe '#update' do
3
+ it 'fires the order_recalculated event exactly once' do
4
+ stub_const('Spree::Event', class_spy(Spree::Event))
5
+ order = create(:order)
6
+
7
+ described_class.new(order).update
8
+
9
+ expect(Spree::Event).to have_received(:fire).with('order_recalculated', order: order).once
10
+ end
11
+ end
12
+ end
data/spec/spec_helper.rb CHANGED
@@ -8,7 +8,7 @@ require File.expand_path("dummy/config/environment.rb", __dir__).tap { |file|
8
8
  system "bin/rake extension:test_app" unless File.exist? file
9
9
  }
10
10
 
11
- require "solidus_dev_support/rspec/rails_helper"
11
+ require "solidus_dev_support/rspec/feature_helper"
12
12
 
13
13
  # Requires supporting ruby files with custom matchers and macros, etc,
14
14
  # in spec/support/ and its subdirectories.
@@ -8,9 +8,9 @@ RSpec.describe SuperGood::SolidusTaxjar::ApiParams do
8
8
  line_items: [line_item],
9
9
  number: "R111222333",
10
10
  ship_address: ship_address,
11
- shipment_total: BigDecimal("3.01"),
12
11
  store: store,
13
12
  total: order_total,
13
+ shipments: [shipment],
14
14
  user_id: 12345
15
15
  ).tap do |order|
16
16
  order.update! completed_at: DateTime.new(2018, 3, 6, 12, 10, 33)
@@ -119,6 +119,8 @@ RSpec.describe SuperGood::SolidusTaxjar::ApiParams do
119
119
  )
120
120
  end
121
121
 
122
+ let(:shipment) { Spree::Shipment.create!(cost: BigDecimal("3.01")) }
123
+
122
124
  describe "#order_params" do
123
125
  subject { described_class.order_params(order) }
124
126
 
@@ -398,5 +400,35 @@ RSpec.describe SuperGood::SolidusTaxjar::ApiParams do
398
400
  })
399
401
  end
400
402
  end
403
+
404
+ context "an address with address2" do
405
+ let(:ship_address) do
406
+ Spree::Address.create!(
407
+ address1: "1 World Trade CTR",
408
+ address2: "STE 45A",
409
+ city: "New York",
410
+ country: country_us,
411
+ first_name: "Chuck",
412
+ last_name: "Schuldiner",
413
+ phone: "1-250-555-4444",
414
+ state: Spree::State.create!(
415
+ abbr: "NY",
416
+ country: country_us,
417
+ name: "New York"
418
+ ),
419
+ zipcode: "10007"
420
+ )
421
+ end
422
+
423
+ it "concatenates address1 and address2 into the street parameter" do
424
+ expect(subject).to eq({
425
+ country: "US",
426
+ state: "NY",
427
+ zip: "10007",
428
+ city: "New York",
429
+ street: "1 World Trade CTR STE 45A"
430
+ })
431
+ end
432
+ end
401
433
  end
402
434
  end
@@ -5,7 +5,8 @@ RSpec.describe SuperGood::SolidusTaxjar::Api do
5
5
  subject { described_class.new }
6
6
 
7
7
  before do
8
- ENV["TAXJAR_API_KEY"] = 'taxjar_api_token'
8
+ allow(ENV).to receive(:fetch).and_call_original
9
+ allow(ENV).to receive(:fetch).with("TAXJAR_API_KEY").and_return("taxjar_api_token")
9
10
  end
10
11
 
11
12
  it "sets the correct headers" do
@@ -21,7 +22,8 @@ RSpec.describe SuperGood::SolidusTaxjar::Api do
21
22
  subject { described_class.default_taxjar_client }
22
23
 
23
24
  before do
24
- ENV["TAXJAR_API_KEY"] = 'taxjar_api_token'
25
+ allow(ENV).to receive(:fetch).and_call_original
26
+ allow(ENV).to receive(:fetch).with("TAXJAR_API_KEY").and_return("taxjar_api_token")
25
27
  end
26
28
 
27
29
  it "returns an instance of the TaxJar client" do
@@ -202,4 +204,19 @@ RSpec.describe SuperGood::SolidusTaxjar::Api do
202
204
 
203
205
  it { is_expected.to eq({some_kind_of: "response"}) }
204
206
  end
207
+
208
+ describe "#nexus_regions" do
209
+ subject { api.nexus_regions }
210
+
211
+ let(:api) { described_class.new(taxjar_client: dummy_client) }
212
+ let(:dummy_client) { instance_double ::Taxjar::Client }
213
+
214
+ before do
215
+ allow(dummy_client)
216
+ .to receive(:nexus_regions)
217
+ .and_return({some_kind_of: "response"})
218
+ end
219
+
220
+ it { is_expected.to eq({some_kind_of: "response"}) }
221
+ end
205
222
  end
@@ -73,5 +73,20 @@ RSpec.describe SuperGood::SolidusTaxjar do
73
73
  let(:spree_line_item) { Spree::LineItem.new }
74
74
  it { is_expected.to eq "Sales Tax" }
75
75
  end
76
+
77
+ describe ".shipping_calculator" do
78
+ subject { described_class.shipping_calculator.call(order) }
79
+
80
+ let(:order) { create :order }
81
+ let(:shipment) { create :shipment, order: order, cost: 20 }
82
+
83
+ before do
84
+ create :adjustment, order: order, adjustable: shipment, amount: -10, eligible: true, source: create(:shipping_rate, shipment: shipment)
85
+ end
86
+
87
+ it "returns the shipment total including promotions" do
88
+ expect(subject).to eq(10)
89
+ end
90
+ end
76
91
  end
77
92
  end
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://github.com/SuperGoodSoft/solidus_taxjar"
14
14
  spec.license = 'BSD-3-Clause'
15
15
 
16
- spec.required_ruby_version = Gem::Requirement.new('~> 2.5')
16
+ spec.required_ruby_version = ">= 2.5.0"
17
17
 
18
18
  # Specify which files should be added to the gem when it is released.
19
19
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super_good-solidus_taxjar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 0.18.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Norman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-25 00:00:00.000000000 Z
11
+ date: 2021-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -157,6 +157,7 @@ executables: []
157
157
  extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
+ - ".circleci/config.yml"
160
161
  - ".gitignore"
161
162
  - ".rspec"
162
163
  - ".travis.yml"
@@ -167,6 +168,10 @@ files:
167
168
  - PULL_REQUEST_TEMPLATE.md
168
169
  - README.md
169
170
  - Rakefile
171
+ - app/controllers/spree/admin/taxjar_settings_controller.rb
172
+ - app/decorators/super_good/solidus_taxjar/spree/order_updater/fire_recalculated_event.rb
173
+ - app/overrides/spree/admin/shared/_configuration_menu.rb
174
+ - app/views/spree/admin/taxjar_settings/show.html.erb
170
175
  - bin/console
171
176
  - bin/rails
172
177
  - bin/rails-engine
@@ -174,6 +179,7 @@ files:
174
179
  - bin/rake
175
180
  - bin/sandbox
176
181
  - bin/setup
182
+ - config/routes.rb
177
183
  - lib/super_good-solidus_taxjar.rb
178
184
  - lib/super_good/engine.rb
179
185
  - lib/super_good/solidus_taxjar.rb
@@ -185,6 +191,8 @@ files:
185
191
  - lib/super_good/solidus_taxjar/tax_calculator.rb
186
192
  - lib/super_good/solidus_taxjar/tax_rate_calculator.rb
187
193
  - lib/super_good/solidus_taxjar/version.rb
194
+ - spec/features/spree/admin/taxjar_settings_spec.rb
195
+ - spec/models/spree/order_updater_spec.rb
188
196
  - spec/spec_helper.rb
189
197
  - spec/super_good/solidus_taxjar/addresses_spec.rb
190
198
  - spec/super_good/solidus_taxjar/api_params_spec.rb
@@ -204,20 +212,22 @@ require_paths:
204
212
  - lib
205
213
  required_ruby_version: !ruby/object:Gem::Requirement
206
214
  requirements:
207
- - - "~>"
215
+ - - ">="
208
216
  - !ruby/object:Gem::Version
209
- version: '2.5'
217
+ version: 2.5.0
210
218
  required_rubygems_version: !ruby/object:Gem::Requirement
211
219
  requirements:
212
220
  - - ">="
213
221
  - !ruby/object:Gem::Version
214
222
  version: '0'
215
223
  requirements: []
216
- rubygems_version: 3.1.4
224
+ rubygems_version: 3.1.6
217
225
  signing_key:
218
226
  specification_version: 4
219
227
  summary: Support for using TaxJar to handle tax calculations in Solidus
220
228
  test_files:
229
+ - spec/features/spree/admin/taxjar_settings_spec.rb
230
+ - spec/models/spree/order_updater_spec.rb
221
231
  - spec/spec_helper.rb
222
232
  - spec/super_good/solidus_taxjar/addresses_spec.rb
223
233
  - spec/super_good/solidus_taxjar/api_params_spec.rb