e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# This file is copied to spec/ when you run 'rails generate rspec:install'
e437b19c184243f688c2dd9b3bf083a454c804c7Julian KornbergerENV["RAILS_ENV"] ||= 'test'
e3ae5c822699ae375f274bec0a24c1a0b36b731fJulian Kornberger
d9fd37626358bb665838a4ddd23114b1f68e93f7Eugen Kuksarequire 'simplecov'
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornbergerrequire File.expand_path("../../config/environment", __FILE__)
4e4dd16617d60a2293b37431ebc21d94aeea80dcEugen Kuksarequire File.expand_path("../hets_helper", __FILE__)
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornbergerrequire 'rspec/rails'
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornbergerrequire 'rspec/autorun'
0782f0889387f60a6bcf31f9f869c930466db1dbEugen Kuksarequire Rails.root.join('config', 'database_cleaner.rb')
dc6831d0eb2d0ab3af7b0268a429562b110e07bbTim Reddehaserequire 'addressable/template'
e3334a4a0ab1ea6e44e84f807dc87acdf5960c7fTim Reddehaserequire 'vcr'
17e57f34169ca7ed023832806a77f0e0613074f1Tim Reddehaserequire 'webmock/rspec'
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger
7aa257096578ae891833367f3e2cc75ded9dbd36Eileen BolloffWebMock.disable_net_connect!(allow_localhost: true)
7aa257096578ae891833367f3e2cc75ded9dbd36Eileen Bolloff
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# Requires supporting ruby files with custom matchers and macros, etc,
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# in spec/support/ and its subdirectories.
e437b19c184243f688c2dd9b3bf083a454c804c7Julian KornbergerDir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehaseclass ActionController::TestRequest
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase
789e293810190b918998fa027c76126e7aa4bf38henning mueller attr_writer :query_string
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase def query_string
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase @query_string.to_s
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase end
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehaseend
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase
c829cb13b4875500efbe54aaa3d3c013564d9a8dTim Reddehaserequire Rails.root.join('spec', 'support', 'common_helper_methods.rb')
fc0c892399c3b002f273881393004fce31414f93Eugen Kuksarequire Rails.root.join('spec', 'support', 'documentation_progress_formatter.rb')
6712dc6136cec06e2277530af5c2cb6ee5b3cdefEugen Kuksarequire Rails.root.join('spec', 'support', 'shared_helper.rb')
8bc65b8b85b830b0432ea7701f2047acd552cedcTim Reddehase
3b5cf2ac667519a8140833a003a74991fd20f5b5Eugen Kuksadef stub_cp_keys
3b5cf2ac667519a8140833a003a74991fd20f5b5Eugen Kuksa allow(AuthorizedKeysManager).to receive(:copy_authorized_keys_to_git_home)
3b5cf2ac667519a8140833a003a74991fd20f5b5Eugen Kuksaend
3b5cf2ac667519a8140833a003a74991fd20f5b5Eugen Kuksa
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksadef current_full_description
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa RSpec.configuration.current_full_description
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksaend
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksadef current_description
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa RSpec.configuration.current_description
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksaend
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksadef current_file_path
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa prefix = 'spec/'
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa full_path = RSpec.configuration.current_file_path
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa full_path.match(/#{prefix}(?<path>.*)\.rb$/)[:path]
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksaend
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa# Generate a generic cassette name for any example or context.
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksadef generate_cassette_name
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa "specs/#{current_file_path}/#{current_full_description}"
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksaend
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa
97900da4ed1e0e61eca66a403bee1492cea873c8Eugen Kuksadef stub_hets_instance_force_free_worker
97900da4ed1e0e61eca66a403bee1492cea873c8Eugen Kuksa allow(HetsInstanceForceFreeWorker).to receive(:perform_in)
97900da4ed1e0e61eca66a403bee1492cea873c8Eugen Kuksaend
97900da4ed1e0e61eca66a403bee1492cea873c8Eugen Kuksa
e437b19c184243f688c2dd9b3bf083a454c804c7Julian KornbergerRSpec.configure do |config|
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa config.add_setting :current_full_description
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa config.add_setting :current_description
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa config.add_setting :current_file_path
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # ## Mock Framework
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # config.mock_with :mocha
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # config.mock_with :flexmock
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # config.mock_with :rr
a06b758dc863e147d288497ee69491afc2d23b7dTim Reddehase config.mock_with :rspec
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger
5931410e830c72a0c88879ed8acf01a1210a42adEugen Kuksa config.tty ||= ENV["SPEC_OPTS"].include?('--color') if ENV["SPEC_OPTS"]
5931410e830c72a0c88879ed8acf01a1210a42adEugen Kuksa
6b3c7e4142f5868d6ad67b43926905ffa851caecEugen Kuksa config.before(:suite) do
6b3c7e4142f5868d6ad67b43926905ffa851caecEugen Kuksa FactoryGirl.create :proof_statuses
6b3c7e4142f5868d6ad67b43926905ffa851caecEugen Kuksa end
6b3c7e4142f5868d6ad67b43926905ffa851caecEugen Kuksa
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa config.before(:each) do |example|
836ef862a9f5bd2a1d5c68bbccb11c00b248758aTim Reddehase redis = WrappingRedis::RedisWrapper.new
6b136443f2bc8ea49192210a7281ffa0f44b14fcTim Reddehase redis.del redis.keys if redis.keys.any?
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa config.current_full_description =
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa example.metadata[:example_group][:full_description]
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa config.current_description = example.description
297d4dd3c6e0819eebb2ba39e04536053691c0feEugen Kuksa config.current_file_path = example.file_path
97900da4ed1e0e61eca66a403bee1492cea873c8Eugen Kuksa
97900da4ed1e0e61eca66a403bee1492cea873c8Eugen Kuksa stub_hets_instance_force_free_worker
836ef862a9f5bd2a1d5c68bbccb11c00b248758aTim Reddehase end
836ef862a9f5bd2a1d5c68bbccb11c00b248758aTim Reddehase
cfe6bf1bc38ab15b759dee8bb5c86c3727058a2eTim Reddehase config.after(:each) do
cfe6bf1bc38ab15b759dee8bb5c86c3727058a2eTim Reddehase end
cfe6bf1bc38ab15b759dee8bb5c86c3727058a2eTim Reddehase
6876ece18854869a08606c12e0e814435fa73a29Tim Reddehase config.expose_current_running_example_as :example
6876ece18854869a08606c12e0e814435fa73a29Tim Reddehase
6876ece18854869a08606c12e0e814435fa73a29Tim Reddehase config.infer_spec_type_from_file_location!
6876ece18854869a08606c12e0e814435fa73a29Tim Reddehase
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger config.infer_base_class_for_anonymous_controllers = true
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger config.include Devise::TestHelpers, type: :controller
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger
1b739f5dd48dc239e3b0500a9b64c58e4e2efd29Eugen Kuksa # The following option is already set in the database_cleaner.rb:
1b739f5dd48dc239e3b0500a9b64c58e4e2efd29Eugen Kuksa # config.treat_symbols_as_metadata_keys_with_true_values = true
61467f8ae537212ba3c895868c91235a21985cb8Tim Reddehase
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # Run specs in random order to surface order dependencies. If you find an
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # order dependency and want to debug it, you can fix the order by providing
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # the seed, which is printed after each run.
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # --seed 1234
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger config.order = "random"
ee9341b3b65f9d567605249940e4948af119e784Eugen Kuksa
ee9341b3b65f9d567605249940e4948af119e784Eugen Kuksa config.mock_with :rspec do |mocks|
ee9341b3b65f9d567605249940e4948af119e784Eugen Kuksa mocks.yield_receiver_to_any_instance_implementation_blocks = false
ee9341b3b65f9d567605249940e4948af119e784Eugen Kuksa end
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornbergerend