Updating Rakefile, Gemfile, etc for Spree 1.0 testing compatibilty
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -7,5 +7,6 @@
|
|||||||
tmp
|
tmp
|
||||||
nbproject
|
nbproject
|
||||||
*.swp
|
*.swp
|
||||||
spec/test_app
|
spec/dummy
|
||||||
*.tmproj
|
*.tmproj
|
||||||
|
Gemfile.lock
|
||||||
|
|||||||
47
Gemfile
47
Gemfile
@@ -1,35 +1,16 @@
|
|||||||
source 'http://rubygems.org'
|
source 'http://rubygems.org'
|
||||||
|
|
||||||
#gem 'spree_core', :path => '../spree/core'
|
group :test do
|
||||||
#gem 'spree_digital', :path => 'spree_digital'
|
# without ffaker in test it wont init
|
||||||
#gem "sqlite3-ruby"
|
# https://github.com/spree/spree/pull/833
|
||||||
#
|
gem 'ffaker'
|
||||||
#group :test do
|
gem 'shoulda-matchers'
|
||||||
# gem 'rspec-rails', '= 2.5.0'
|
gem 'guard-rspec'
|
||||||
# gem 'factory_girl', '= 1.3.3'
|
|
||||||
# gem 'factory_girl_rails', '= 1.0.1'
|
if RUBY_PLATFORM.downcase.include? "darwin"
|
||||||
# gem 'rcov'
|
gem 'rb-fsevent'
|
||||||
# gem 'shoulda'
|
gem 'growl'
|
||||||
# gem 'faker'
|
end
|
||||||
# if RUBY_VERSION < "1.9"
|
end
|
||||||
# gem "ruby-debug"
|
|
||||||
# else
|
gemspec
|
||||||
# gem "ruby-debug19"
|
|
||||||
# end
|
|
||||||
#end
|
|
||||||
#
|
|
||||||
#group :cucumber do
|
|
||||||
# gem 'cucumber-rails'
|
|
||||||
# gem 'database_cleaner', '= 0.6.7.RC'
|
|
||||||
# gem 'nokogiri'
|
|
||||||
# gem 'capybara', '= 0.4.1.2'
|
|
||||||
# gem 'factory_girl', '= 1.3.3'
|
|
||||||
# gem 'factory_girl_rails', '= 1.0.1'
|
|
||||||
# gem 'faker'
|
|
||||||
# gem 'launchy'
|
|
||||||
# if RUBY_VERSION < "1.9"
|
|
||||||
# gem "ruby-debug"
|
|
||||||
# else
|
|
||||||
# gem "ruby-debug19"
|
|
||||||
# end
|
|
||||||
#end
|
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
GEM
|
|
||||||
remote: http://rubygems.org/
|
|
||||||
specs:
|
|
||||||
|
|
||||||
PLATFORMS
|
|
||||||
ruby
|
|
||||||
|
|
||||||
DEPENDENCIES
|
|
||||||
18
Guardfile
Normal file
18
Guardfile
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
|
||||||
|
guard 'rspec', :version => 2 do
|
||||||
|
watch(%r{^spec/.+_spec\.rb$})
|
||||||
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
||||||
|
watch('spec/spec_helper.rb') { "spec" }
|
||||||
|
|
||||||
|
# Rails example
|
||||||
|
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
||||||
|
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
||||||
|
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
||||||
|
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
||||||
|
watch('config/routes.rb') { "spec/routing" }
|
||||||
|
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
||||||
|
# Capybara request specs
|
||||||
|
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
||||||
|
end
|
||||||
|
|
||||||
62
Rakefile
62
Rakefile
@@ -3,31 +3,15 @@ require 'rake/testtask'
|
|||||||
require 'rake/packagetask'
|
require 'rake/packagetask'
|
||||||
require 'rubygems/package_task'
|
require 'rubygems/package_task'
|
||||||
require 'rspec/core/rake_task'
|
require 'rspec/core/rake_task'
|
||||||
require 'cucumber/rake/task'
|
require 'spree/core/testing_support/common_rake'
|
||||||
require 'spree_core/testing_support/common_rake'
|
|
||||||
|
|
||||||
gemfile = File.expand_path('../spec/test_app/Gemfile', __FILE__)
|
RSpec::Core::RakeTask.new
|
||||||
if File.exists?(gemfile) && (%w(spec cucumber).include?(ARGV.first.to_s) || ARGV.size == 0)
|
|
||||||
require 'bundler'
|
|
||||||
ENV['BUNDLE_GEMFILE'] = gemfile
|
|
||||||
Bundler.setup
|
|
||||||
|
|
||||||
require 'rspec'
|
task :default => [:spec]
|
||||||
require 'rspec/core/rake_task'
|
|
||||||
RSpec::Core::RakeTask.new
|
|
||||||
|
|
||||||
require 'cucumber/rake/task'
|
|
||||||
Cucumber::Rake::Task.new do |t|
|
|
||||||
t.cucumber_opts = %w{--format progress}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Default Task"
|
|
||||||
task :default => [:spec, :cucumber ]
|
|
||||||
|
|
||||||
spec = eval(File.read('spree_digital.gemspec'))
|
spec = eval(File.read('spree_digital.gemspec'))
|
||||||
|
|
||||||
Rake::GemPackageTask.new(spec) do |p|
|
Gem::PackageTask.new(spec) do |p|
|
||||||
p.gem_spec = spec
|
p.gem_spec = spec
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -38,40 +22,18 @@ task :release => :package do
|
|||||||
Rake::Task['gem:push'].invoke
|
Rake::Task['gem:push'].invoke
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Default Task"
|
|
||||||
task :default => [ :spec ]
|
|
||||||
|
|
||||||
desc "Regenerates a rails 3 app for testing"
|
desc "Regenerates a rails 3 app for testing"
|
||||||
task :test_app do
|
task :test_app do
|
||||||
require '../spree/lib/generators/spree/test_app_generator'
|
ENV['LIB_NAME'] = 'spree_digital'
|
||||||
class SpreeDigitalTestAppGenerator < Spree::Generators::TestAppGenerator
|
|
||||||
|
|
||||||
def install_gems
|
require File.join `bundle show spree_core`.chomp, 'lib/generators/spree/dummy/dummy_generator.rb'
|
||||||
inside "test_app" do
|
Spree::DummyGenerator.class_eval do
|
||||||
run 'rake spree_core:install'
|
def test_dummy_add_digital
|
||||||
run 'rake spree_digital:install'
|
# pulled from: http://jumph4x.net/post/20067515804/testing-spree-1-0-x-extensions-w-other-extension
|
||||||
end
|
puts "Installing #{ENV['LIB_NAME']} migrations [required for testing]"
|
||||||
|
directory File.join(`bundle show #{ENV['LIB_NAME']}`.chomp, 'db', 'migrate'), File.join(dummy_path, 'db')
|
||||||
end
|
end
|
||||||
|
|
||||||
def migrate_db
|
|
||||||
run_migrations
|
|
||||||
end
|
|
||||||
|
|
||||||
protected
|
|
||||||
def full_path_for_local_gems
|
|
||||||
<<-gems
|
|
||||||
gem 'spree_core', :path => \'#{File.join(File.dirname(__FILE__), "../spree/", "core")}\'
|
|
||||||
gem 'spree_digital', :path => \'#{File.dirname(__FILE__)}\'
|
|
||||||
gems
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
SpreeDigitalTestAppGenerator.start
|
|
||||||
end
|
|
||||||
|
|
||||||
namespace :test_app do
|
Rake::Task['common:test_app'].invoke
|
||||||
desc 'Rebuild test and cucumber databases'
|
|
||||||
task :rebuild_dbs do
|
|
||||||
system("cd spec/test_app && rake db:drop db:migrate RAILS_ENV=test && rake db:drop db:migrate RAILS_ENV=cucumber")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,28 +1,16 @@
|
|||||||
require File.expand_path("../factories", __FILE__)
|
# Configure Rails Environment
|
||||||
|
ENV["RAILS_ENV"] = "test"
|
||||||
|
|
||||||
|
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# NOTE: The rest of file is the same as spree/core/spec/spec_helper.rb #
|
|
||||||
########################################################################
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# This file is copied to ~/spec when you run 'ruby script/generate rspec'
|
|
||||||
# from the project root directory.
|
|
||||||
ENV["RAILS_ENV"] ||= 'test'
|
|
||||||
require File.expand_path("../test_app/config/environment", __FILE__)
|
|
||||||
require 'rspec/rails'
|
require 'rspec/rails'
|
||||||
|
|
||||||
# Requires supporting files with custom matchers and macros, etc,
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
||||||
# in ./support/ and its subdirectories.
|
# in spec/support/ and its subdirectories.
|
||||||
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each {|f| require f }
|
||||||
|
|
||||||
require 'spree_core/testing_support/factories'
|
# Requires factories defined in spree_core
|
||||||
|
require 'spree/core/testing_support/factories'
|
||||||
|
|
||||||
RSpec.configure do |config|
|
RSpec.configure do |config|
|
||||||
# == Mock Framework
|
# == Mock Framework
|
||||||
@@ -34,26 +22,18 @@ RSpec.configure do |config|
|
|||||||
# config.mock_with :rr
|
# config.mock_with :rr
|
||||||
config.mock_with :rspec
|
config.mock_with :rspec
|
||||||
|
|
||||||
|
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
||||||
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
||||||
|
|
||||||
#config.include Devise::TestHelpers, :type => :controller
|
|
||||||
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
||||||
# examples within a transaction, comment the following line or assign false
|
# examples within a transaction, remove the following line or assign false
|
||||||
# instead of true.
|
# instead of true.
|
||||||
config.use_transactional_fixtures = true
|
config.use_transactional_fixtures = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@configuration ||= AppConfiguration.find_or_create_by_name("Default configuration")
|
require File.expand_path("../factories", __FILE__)
|
||||||
|
|
||||||
PAYMENT_STATES = Payment.state_machine.states.keys unless defined? PAYMENT_STATES
|
# not sure if this really adds anything, but this existed in the intial version of the spree_digital rspec testing
|
||||||
SHIPMENT_STATES = Shipment.state_machine.states.keys unless defined? SHIPMENT_STATES
|
|
||||||
ORDER_STATES = Order.state_machine.states.keys unless defined? ORDER_STATES
|
|
||||||
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# context "factory" do
|
|
||||||
# it { should have_valid_factory(:address) }
|
|
||||||
# end
|
|
||||||
RSpec::Matchers.define :have_valid_factory do |factory_name|
|
RSpec::Matchers.define :have_valid_factory do |factory_name|
|
||||||
match do |model|
|
match do |model|
|
||||||
Factory(factory_name).new_record?.should be_false
|
Factory(factory_name).new_record?.should be_false
|
||||||
|
|||||||
@@ -12,4 +12,12 @@ Gem::Specification.new do |s|
|
|||||||
s.requirements << 'none'
|
s.requirements << 'none'
|
||||||
s.required_ruby_version = '>= 1.8.7'
|
s.required_ruby_version = '>= 1.8.7'
|
||||||
s.add_dependency('spree_core', '~> 1.0.0')
|
s.add_dependency('spree_core', '~> 1.0.0')
|
||||||
|
|
||||||
|
# test suite
|
||||||
|
s.add_development_dependency 'shoulda-matchers'
|
||||||
|
s.add_development_dependency 'capybara'
|
||||||
|
s.add_development_dependency 'factory_girl'
|
||||||
|
s.add_development_dependency 'ffaker'
|
||||||
|
s.add_development_dependency 'rspec-rails'
|
||||||
|
s.add_development_dependency 'sqlite3'
|
||||||
end
|
end
|
||||||
Reference in New Issue
Block a user