summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-08-30 18:09:58 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-08-30 18:09:58 -0400
commitc1f081bb5148aed3787b43752a97e5bcb59a3ade (patch)
treed6b845fda2816d808535d42b3008e2bba9d8a1fe
parenta5d5df3b2f24daf47450e28b327cb43d88accdaa (diff)
downloadgitlab-ci-c1f081bb5148aed3787b43752a97e5bcb59a3ade.tar.gz
Make spec_helper more like CE's
-rw-r--r--spec/spec_helper.rb46
-rw-r--r--spec/support/capybara.rb21
-rw-r--r--spec/support/webmock.rb4
3 files changed, 36 insertions, 35 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 54d3068..1d56dee 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -9,52 +9,28 @@ if ENV['COVERALLS']
end
ENV["RAILS_ENV"] ||= 'test'
+
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
-require 'rspec/autorun'
+require 'shoulda/matchers'
require 'sidekiq/testing/inline'
-require 'capybara/poltergeist'
-
-Capybara.javascript_driver = :poltergeist
-Capybara.default_wait_time = 10
# 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}
-require 'webmock/rspec'
-WebMock.disable_net_connect!(allow_localhost: true)
-
RSpec.configure do |config|
- config.include LoginHelpers, type: :feature
+ config.use_transactional_fixtures = false
+ config.use_instantiated_fixtures = false
+ config.mock_with :rspec
+ config.include LoginHelpers, type: :feature
+ config.include LoginHelpers, type: :request
config.include StubGitlabCalls
config.include StubGitlabData
- # ## 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
-
- # 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 = false
-
- # If true, the base class of anonymous controllers will be inferred
- # automatically. This will be the default behavior in future versions of
- # rspec-rails.
- config.infer_base_class_for_anonymous_controllers = false
-
- # 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.infer_spec_type_from_file_location!
+ config.raise_errors_for_deprecations!
end
+
+ActiveRecord::Migration.maintain_test_schema!
diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb
new file mode 100644
index 0000000..fed1ab6
--- /dev/null
+++ b/spec/support/capybara.rb
@@ -0,0 +1,21 @@
+require 'capybara/rails'
+require 'capybara/rspec'
+require 'capybara/poltergeist'
+
+# Give CI some extra time
+timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 90 : 10
+
+Capybara.javascript_driver = :poltergeist
+Capybara.register_driver :poltergeist do |app|
+ Capybara::Poltergeist::Driver.new(app, js_errors: true, timeout: timeout)
+end
+
+Capybara.default_wait_time = timeout
+Capybara.ignore_hidden_elements = true
+
+unless ENV['CI'] || ENV['CI_SERVER']
+ require 'capybara-screenshot/rspec'
+
+ # Keep only the screenshots generated from the last failing test suite
+ Capybara::Screenshot.prune_strategy = :keep_last_run
+end
diff --git a/spec/support/webmock.rb b/spec/support/webmock.rb
new file mode 100644
index 0000000..af2906b
--- /dev/null
+++ b/spec/support/webmock.rb
@@ -0,0 +1,4 @@
+require 'webmock'
+require 'webmock/rspec'
+
+WebMock.disable_net_connect!(allow_localhost: true)