summaryrefslogtreecommitdiff
path: root/features/support/env.rb
blob: b83f0d1235752bfabb43cab8c973930f1c8db7b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
require 'simplecov' unless ENV['CI']

ENV['RAILS_ENV'] = 'test'
require './config/environment'

require 'rspec'
require 'database_cleaner'
require 'spinach/capybara'
require 'sidekiq/testing/inline'


%w(stubbed_repository valid_commit).each do |f|
  require Rails.root.join('spec', 'support', f)
end

Dir["#{Rails.root}/features/steps/shared/*.rb"].each {|file| require file}

WebMock.allow_net_connect!
#
# JS driver
#
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Spinach.hooks.on_tag("javascript") do
  ::Capybara.current_driver = ::Capybara.javascript_driver
  ::Capybara.default_wait_time = 5
end


DatabaseCleaner.strategy = :truncation

Spinach.hooks.before_scenario do
  # Use tmp dir for FS manipulations
  Gitlab.config.gitlab_shell.stub(repos_path: Rails.root.join('tmp', 'test-git-base-path'))
  Gitlab::Shell.any_instance.stub(:add_repository) do |path|
    create_temp_repo("#{Rails.root}/tmp/test-git-base-path/#{path}.git")
  end
  FileUtils.rm_rf Gitlab.config.gitlab_shell.repos_path
  FileUtils.mkdir_p Gitlab.config.gitlab_shell.repos_path
  DatabaseCleaner.start
end

Spinach.hooks.after_scenario do
  DatabaseCleaner.clean
end

Spinach.hooks.before_run do
  RSpec::Mocks::setup self

  include FactoryGirl::Syntax::Methods
end

def create_temp_repo(path)
  FileUtils.mkdir_p path
  command = "git init --quiet --bare #{path};"
  system(command)
end