2011-03-09 13:13:36 +00:00
|
|
|
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
|
|
|
ENV["RAILS_ENV"] ||= 'test'
|
|
|
|
require File.expand_path("../../config/environment", __FILE__)
|
|
|
|
require 'rspec/rails'
|
2014-06-20 21:12:19 +01:00
|
|
|
require 'webmock/rspec'
|
2015-04-09 00:06:55 +01:00
|
|
|
require 'pundit/rspec'
|
2011-03-09 13:13:36 +00:00
|
|
|
|
|
|
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
|
|
|
# in spec/support/ and its subdirectories.
|
|
|
|
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
|
|
|
|
|
|
|
|
RSpec.configure do |config|
|
|
|
|
# == Mock Framework
|
|
|
|
#
|
|
|
|
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
|
|
|
#
|
|
|
|
# config.mock_with :mocha
|
|
|
|
# config.mock_with :flexmock
|
2014-03-17 21:03:26 +00:00
|
|
|
# config.mock_with :rr
|
2015-02-19 01:12:08 +00:00
|
|
|
# config.mock_with :rspec
|
|
|
|
#
|
|
|
|
# rspec-mocks config goes here. You can use an alternate test double
|
|
|
|
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
|
|
|
config.mock_with :rspec do |mocks|
|
|
|
|
# Prevents you from mocking or stubbing a method that does not exist on
|
|
|
|
# a real object. This is generally recommended, and will default to
|
|
|
|
# `true` in RSpec 4.
|
|
|
|
mocks.verify_partial_doubles = true
|
|
|
|
end
|
2011-03-09 13:13:36 +00:00
|
|
|
|
|
|
|
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
|
|
|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
|
|
|
|
|
|
|
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
|
|
|
# examples within a transaction, remove the following line or assign false
|
|
|
|
# instead of true.
|
|
|
|
config.use_transactional_fixtures = true
|
2012-09-07 10:41:49 +01:00
|
|
|
|
2014-01-21 04:51:49 +00:00
|
|
|
config.filter_run_excluding anonymous_access: !(APP_CONFIG['anonymous_access'])
|
2012-10-11 11:55:06 +01:00
|
|
|
|
2013-04-24 11:41:43 +01:00
|
|
|
config.before(:all) { init_test_root }
|
|
|
|
config.after(:all) { clear_test_root }
|
2014-03-18 13:54:16 +00:00
|
|
|
config.before { stub_redis }
|
2015-04-09 00:06:55 +01:00
|
|
|
config.before(type: :policy) { stub_symlink_methods }
|
2011-03-09 13:13:36 +00:00
|
|
|
end
|
2011-11-24 19:22:37 +00:00
|
|
|
|
|
|
|
def set_session_for(user=nil)
|
2012-03-29 21:34:22 +01:00
|
|
|
current_user = user.is_a?(Symbol) ? FactoryGirl.create(user) : user
|
2011-11-24 19:22:37 +00:00
|
|
|
@request.env["devise.mapping"] = :user
|
|
|
|
sign_in current_user
|
2011-11-25 18:57:24 +00:00
|
|
|
end
|
|
|
|
|
2013-07-02 19:23:46 +01:00
|
|
|
def http_login(user=nil, password = '123456')
|
2012-09-21 20:48:30 +01:00
|
|
|
# FIXME: password constant is a bad choice...
|
2013-07-02 19:23:46 +01:00
|
|
|
email = user.is_a?(String) ? user : user.try(:email)
|
|
|
|
request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials(email, password)
|
2012-09-21 20:48:30 +01:00
|
|
|
end
|
|
|
|
|
2012-05-16 16:29:28 +01:00
|
|
|
def stub_symlink_methods
|
2016-07-11 07:35:58 +01:00
|
|
|
#allow_any_instance_of(Platform).to receive(:symlink_directory).and_return(true)
|
|
|
|
#allow_any_instance_of(Platform).to receive(:remove_symlink_directory).and_return(true)
|
2014-09-30 21:13:36 +01:00
|
|
|
|
|
|
|
allow_any_instance_of(Platform).to receive(:create_empty_metadata).and_return(true)
|
|
|
|
allow_any_instance_of(Repository).to receive(:create_empty_metadata).and_return(true)
|
2011-12-12 07:51:39 +00:00
|
|
|
end
|
|
|
|
|
2016-07-11 07:35:58 +01:00
|
|
|
#Resque.inline = true
|
2013-11-15 19:02:19 +00:00
|
|
|
APP_CONFIG['root_path'] = "#{Rails.root}/tmp/test_root"
|
|
|
|
APP_CONFIG['git_path'] = "#{Rails.root}/tmp/test_root"
|
|
|
|
APP_CONFIG['tmpfs_path'] = "#{Rails.root}/tmp/test_root"
|
2012-01-11 19:43:33 +00:00
|
|
|
|
2012-12-13 19:14:18 +00:00
|
|
|
def init_test_root
|
|
|
|
clear_test_root
|
2013-01-24 08:07:19 +00:00
|
|
|
%x(bash -c 'mkdir -p #{APP_CONFIG['root_path']}/{platforms,tmp}')
|
2012-12-13 19:14:18 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def clear_test_root
|
2012-12-24 16:20:35 +00:00
|
|
|
%x(rm -Rf #{APP_CONFIG['root_path']})
|
2012-12-13 19:14:18 +00:00
|
|
|
end
|
|
|
|
|
2012-12-24 10:53:20 +00:00
|
|
|
def stub_redis
|
2013-01-18 13:41:38 +00:00
|
|
|
@redis_instance = MockRedis.new
|
2014-03-18 21:52:40 +00:00
|
|
|
allow(Redis).to receive(:new).and_return(@redis_instance)
|
|
|
|
allow(Redis).to receive(:current).and_return(@redis_instance)
|
|
|
|
allow(Redis::Store).to receive(:new).and_return(@redis_instance)
|
2016-07-11 07:35:58 +01:00
|
|
|
#Resque.redis = @redis_instance
|
2012-12-24 10:53:20 +00:00
|
|
|
end
|
|
|
|
|
2012-12-18 17:53:00 +00:00
|
|
|
def fill_project project
|
|
|
|
%x(mkdir -p #{project.path} && cp -Rf #{Rails.root}/spec/tests.git/* #{project.path}) # maybe FIXME ?
|
2012-12-18 15:59:18 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def clean_projects_dir
|
|
|
|
FileUtils.rm_rf "#{APP_CONFIG['git_path']}"
|
|
|
|
end
|
2015-05-11 08:29:58 +01:00
|
|
|
|
|
|
|
def reset_email
|
|
|
|
ActionMailer::Base.deliveries = []
|
|
|
|
end
|