spec_helper.rb revision 4c405005e95a28dd5a0b0c978aaece1b097d9486
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase# This file is copied to spec/ when you run 'rails generate rspec:install'
e3885aacc4f26c817827173a754510807b6bc84cTim ReddehaseENV["RAILS_ENV"] ||= 'test'
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaserequire File.expand_path("../../spec/shared_helper", __FILE__)
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaseinclude SharedHelper
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaseuse_simplecov if ENV['COVERAGE']
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaserequire File.expand_path("../../config/environment", __FILE__)
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehaserequire File.expand_path("../hets_helper", __FILE__)
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehaserequire 'rspec/rails'
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehaserequire 'rspec/autorun'
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehaserequire Rails.root.join('config', 'database_cleaner.rb')
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaserequire 'addressable/template'
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaserequire 'webmock/rspec'
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim ReddehaseWebMock.disable_net_connect!(allow_localhost: true)
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaseelasticsearch_port = ENV['ELASTIC_TEST_PORT'].present? ? ENV['ELASTIC_TEST_PORT'] : '9250'
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim ReddehaseElasticsearch::Model.client = Elasticsearch::Client.new host: "localhost:#{elasticsearch_port}"
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase# Requires supporting ruby files with custom matchers and macros, etc,
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase# in spec/support/ and its subdirectories.
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim ReddehaseDir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaseclass ActionController::TestRequest
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase attr_writer :query_string
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase def query_string
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase @query_string.to_s
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase end
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehaseend
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehaserequire Rails.root.join('spec', 'support', 'common_helper_methods.rb')
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehasedef stub_cp_keys
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase allow(AuthorizedKeysManager).to receive(:copy_authorized_keys_to_git_home)
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehaseend
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehasedef current_full_description
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase RSpec.configuration.current_full_description
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehaseend
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehasedef current_description
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase RSpec.configuration.current_description
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehaseend
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehasedef current_file_path
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase prefix = 'spec/'
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase full_path = RSpec.configuration.current_file_path
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase full_path.match(/#{prefix}(?<path>.*)\.rb$/)[:path]
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehaseend
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase# Generate a generic cassette name for any example or context.
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehasedef generate_cassette_name
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase "specs/#{current_file_path}/#{current_full_description}"
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehaseend
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase# Recording HTTP Requests
e3885aacc4f26c817827173a754510807b6bc84cTim ReddehaseVCR.configure do |c|
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase c.cassette_library_dir = 'spec/fixtures/vcr'
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase c.hook_into :webmock
c.ignore_localhost = true
c.ignore_request do |request|
# ignore elasticsearch requests
URI(request.uri).host == 'localhost' &&
URI(request.uri).port == elasticsearch_port.to_i
end
c.register_request_matcher :hets_prove_uri do |request1, request2|
hets_prove_matcher(request1, request2)
end
end
RSpec.configure do |config|
config.add_setting :current_full_description
config.add_setting :current_description
config.add_setting :current_file_path
# ## Mock Framework
# config.mock_with :mocha
# config.mock_with :flexmock
# config.mock_with :rr
config.mock_with :rspec
config.tty ||= ENV["SPEC_OPTS"].include?('--color') if ENV["SPEC_OPTS"]
config.before(:suite) do
FactoryGirl.create :proof_statuses
end
config.before(:each) do |example|
redis = WrappingRedis::RedisWrapper.new
redis.del redis.keys if redis.keys.any?
config.current_full_description =
example.metadata[:example_group][:full_description]
config.current_description = example.description
config.current_file_path = example.file_path
end
config.after(:each) do
end
config.expose_current_running_example_as :example
config.infer_spec_type_from_file_location!
config.infer_base_class_for_anonymous_controllers = true
config.include Devise::TestHelpers, type: :controller
# The following option is already set in the database_cleaner.rb:
# config.treat_symbols_as_metadata_keys_with_true_values = true
# Run specs in random order to surface order dependencies. If you find an
# order dependency and want to debug it, you can fix the order by providing
# the seed, which is printed after each run.
# --seed 1234
config.order = "random"
config.mock_with :rspec do |mocks|
mocks.yield_receiver_to_any_instance_implementation_blocks = false
end
end