Skip to content

Commit

Permalink
Update to Spree 4
Browse files Browse the repository at this point in the history
  • Loading branch information
Damian Kaczmarczyk committed Jun 1, 2021
1 parent ffbe098 commit 61923d6
Show file tree
Hide file tree
Showing 9 changed files with 122 additions and 111 deletions.
9 changes: 9 additions & 0 deletions Appraisals
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@ appraise "spree-3-4" do
gem 'spree', '~> 3.4.0'
end

appraise "spree-3-7" do
gem 'spree', '~> 3.7.0'
end

appraise 'spree-4' do
gem 'spree', '~> 4.2'
gem 'rails-controller-testing'
end

appraise "spree-master" do
gem 'spree', github: 'spree/spree', branch: 'master'
end
23 changes: 13 additions & 10 deletions app/views/spree/admin/taxjar_settings/edit.html.erb
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
<%= render 'spree/admin/shared/sub_menu/configuration' %>

<% content_for :page_title do %>
<%= Spree.t(:taxjar_settings) %>
<% end %>

<%= form_tag admin_taxjar_settings_path, method: :put do %>
<div id="preferences" data-hook>
<div class="row">
<div class="col-md-6">
<fieldset class="no-border-bottom">
<% @preferences_api.each do |key| %>
<div class="form-group">
<div class="form-group">
<% if Spree::Config.preference_type(key) == :boolean %>
<div class="checkbox">
<%= label_tag key do %>
<%= hidden_field_tag(key, 0, id: "#{key}_hidden") %>
<%= check_box_tag(key, 1, Spree::Config[key]) %>
<%= Spree.t(key) %>
<%end%>
</div>
<% else %>
<%= label_tag key %>
<%= preference_field_tag(key, Spree::Config[key], type: Spree::Config.preference_type(key)) %>
</div>
<% end %>
</div>
<% end %>
</fieldset>
</div>
</div>

<div class="form-buttons" data-hook="buttons">
<%= button Spree.t('actions.update'), 'refresh' %>
<span class="or"><%= Spree.t(:or) %></span>
<%= button_link_to Spree.t('actions.cancel'), admin_orders_url, icon: 'delete' %>
</div>
<%= render partial: 'spree/admin/shared/edit_resource_links', locals: {collection_url: admin_orders_url} %>
</div>
<% end %>
12 changes: 12 additions & 0 deletions gemfiles/spree_3_7.gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# This file was generated by Appraisal

source "https://rubygems.org"

gem "spree", "~> 3.7.0"

group :test do
gem "rails-controller-testing"
gem "byebug"
end

gemspec path: "../"
13 changes: 13 additions & 0 deletions gemfiles/spree_4.gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# This file was generated by Appraisal

source "https://rubygems.org"

gem "spree", "~> 4.2"
gem "rails-controller-testing"

group :test do
gem "rails-controller-testing"
gem "byebug"
end

gemspec path: "../"
1 change: 1 addition & 0 deletions lib/spree_taxjar.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
require 'spree_core'
require 'spree_taxjar/engine'
require 'deface'
12 changes: 9 additions & 3 deletions spec/models/concerns/spree_taxjar/taxable_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,17 @@
describe '#taxjar_applicable?' do
context 'when TaxRate matches tax_zone' do
before do
@zone = create(:zone, :name => "Country Zone", :default_tax => false, :zone_members => [])
@zone.zone_members.create(:zoneable => country)
Spree::Config[:tax_using_ship_address] = false
@zone = create(
:zone,
name: "Country Zone",
default_tax: false,
zone_members: [],
states: [order.bill_address.country.states.first]
)
@zone.zone_members.create(:zoneable => order.bill_address.country)
@rate = Spree::TaxRate.create(amount: 1, zone: @zone,
tax_category: tax_category, calculator: calculator)
allow(order).to receive_messages :tax_zone => @zone
end

it 'should return true' do
Expand Down
87 changes: 3 additions & 84 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -1,97 +1,16 @@
# Run Coverage report
require 'simplecov'
SimpleCov.start do
add_filter 'spec/dummy'
add_group 'Controllers', 'app/controllers'
add_group 'Helpers', 'app/helpers'
add_group 'Mailers', 'app/mailers'
add_group 'Models', 'app/models'
add_group 'Views', 'app/views'
add_group 'Libraries', 'lib'
end

# Configure Rails Environment
ENV['RAILS_ENV'] = 'test'

require File.expand_path('../dummy/config/environment.rb', __FILE__)
require File.expand_path('../dummy/config/environment.rb', __FILE__)

require 'spree_dev_tools/rspec/spec_helper'
require 'shoulda-matchers'
include Shoulda::Matchers::Independent
require 'rspec/rails'
require 'database_cleaner'
require 'ffaker'
require 'rspec/active_model/mocks'
require 'vcr'

# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }

# Requires factories and other useful helpers defined in spree_core.
require 'spree/testing_support/authorization_helpers'
require 'spree/testing_support/capybara_ext'
require 'spree/testing_support/controller_requests'
require 'spree/testing_support/factories'
require 'spree/testing_support/url_helpers'

RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods

# Infer an example group's spec type from the file location.
config.infer_spec_type_from_file_location!

# == URL Helpers
#
# Allows access to Spree's routes in specs:
#
# visit spree.admin_path
# current_path.should eql(spree.products_path)
config.include Spree::TestingSupport::UrlHelpers

# == Requests support
#
# Adds convenient methods to request Spree's controllers
# spree_get :index
config.include Spree::TestingSupport::ControllerRequests, type: :controller

# == Mock Framework
#
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
#
# config.mock_with :mocha
# config.mock_with :flexmock
# config.mock_with :rr
config.mock_with :rspec
config.color = true

# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures"

# Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
# to cleanup after each test instead. Without transactional fixtures set to false the records created
# to setup a test will be unavailable to the browser, which runs under a separate server instance.
config.use_transactional_fixtures = false

# Ensure Suite is set to use transactions for speed.
config.before :suite do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with :truncation
end

# Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
config.before :each do
DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
DatabaseCleaner.start
end

# After each spec clean the database.
config.after :each do
DatabaseCleaner.clean
end

config.fail_fast = ENV['FAIL_FAST'] || false
config.order = "random"
end
Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].sort.each { |f| require f }

VCR.configure do |c|
c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
Expand Down
18 changes: 4 additions & 14 deletions spree_taxjar.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Gem::Specification.new do |s|
s.platform = Gem::Platform::RUBY
s.name = 'spree_taxjar'
s.version = '4.1.0'
s.version = '4.2.0'
s.summary = 'Spree extension to calculate sales tax in states of USA'
s.description = 'Spree extension for providing TaxJar services in USA'
s.required_ruby_version = '>= 2.1.0'
Expand All @@ -14,24 +14,14 @@ Gem::Specification.new do |s|
s.require_path = 'lib'
s.requirements << 'none'

spree_version = '>= 3.2.0', '<= 4.2.0'
spree_version = '>= 3.2.0'

s.add_dependency 'spree_backend', spree_version
s.add_dependency 'taxjar-ruby', '>= 2.6', '< 3.1'
s.add_dependency 'deface', '~> 1.0'

s.add_development_dependency 'capybara', '~> 2.6'
s.add_development_dependency 'coffee-rails', '~> 4.2.1'
s.add_development_dependency 'database_cleaner', '~> 1.6'
s.add_development_dependency 'factory_bot', '~> 4.10'
s.add_development_dependency 'ffaker', '~> 2.9'
s.add_development_dependency 'rspec-rails', '4.0.0.beta3'
s.add_development_dependency 'sass-rails', '~> 5.0.0'
s.add_development_dependency 'selenium-webdriver', '~> 2.53.4'
s.add_development_dependency 'simplecov', '~> 0.12.0'
s.add_development_dependency 'sqlite3', '~> 1.4'
s.add_development_dependency 'shoulda-matchers'
s.add_development_dependency 'rspec-activemodel-mocks'
s.add_development_dependency 'spree_dev_tools'
s.add_development_dependency 'vcr'
s.add_development_dependency 'webmock'
s.add_development_dependency 'appraisal'
end
58 changes: 58 additions & 0 deletions travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
os: linux
dist: bionic

addons:
apt:
sources:
- google-chrome
packages:
- google-chrome-stable

services:
- mysql
- postgresql

language: ruby

rvm:
- 2.7
- 3.0

env:
- DB=mysql
- DB=postgres

gemfile:
- gemfiles/spree_3_2.gemfile
- gemfiles/spree_3_3.gemfile
- gemfiles/spree_3_4.gemfile
- gemfiles/spree_3_7.gemfile
- gemfiles/spree_4.gemfile
- gemfiles/spree_master.gemfile

jobs:
allow_failures:
- gemfile: gemfiles/spree_master.gemfile
exclude:
- rvm: 3.0
gemfile: gemfiles/spree_3_2.gemfile
- rvm: 3.0
gemfile: gemfiles/spree_3_3.gemfile
- rvm: 3.0
gemfile: gemfiles/spree_3_4.gemfile
- rvm: 3.0
gemfile: gemfiles/spree_3_7.gemfile

before_install:
- mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';"

before_script:
- CHROME_MAIN_VERSION=`google-chrome-stable --version | sed -E 's/(^Google Chrome |\.[0-9]+ )//g'`
- CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_MAIN_VERSION"`
- curl "https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" -O
- unzip chromedriver_linux64.zip -d ~/bin
- nvm install 14

script:
- bundle exec rake test_app
- bundle exec rake spec

0 comments on commit 61923d6

Please sign in to comment.