-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspec_helper.rb
65 lines (54 loc) · 1.65 KB
/
spec_helper.rb
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
58
59
60
61
62
63
64
65
require "pathname"
ROOT = Pathname.new(File.expand_path("../../", __FILE__))
$:.unshift((ROOT + "lib").to_s)
$:.unshift((ROOT + "spec").to_s)
require "bundler/setup"
require "pry"
require "rspec"
require "danger"
if `git remote -v` == ''
puts "You cannot run tests without setting a local git remote on this repo"
puts "It's a weird side-effect of Danger's internals."
exit(0)
end
# Use coloured output, it's the best.
RSpec.configure do |config|
config.filter_gems_from_backtrace "bundler"
config.color = true
config.tty = true
end
require "danger_plugin"
# These functions are a subset of https://github.com/danger/danger/blob/master/spec/spec_helper.rb
# If you are expanding these files, see if it's already been done ^.
# A silent version of the user interface,
# it comes with an extra function `.string` which will
# strip all ANSI colours from the string.
# rubocop:disable Lint/NestedMethodDefinition
def testing_ui
@output = StringIO.new
def @output.winsize
[20, 9999]
end
cork = Cork::Board.new(out: @output)
def cork.string
out.string.gsub(/\e\[([;\d]+)?m/, "")
end
cork
end
# rubocop:enable Lint/NestedMethodDefinition
# Example environment (ENV) that would come from
# running a PR on TravisCI
def testing_env
{
"HAS_JOSH_K_SEAL_OF_APPROVAL" => "true",
"TRAVIS_PULL_REQUEST" => "800",
"TRAVIS_REPO_SLUG" => "artsy/eigen",
"TRAVIS_COMMIT_RANGE" => "759adcbd0d8f...13c4dc8bb61d",
"DANGER_GITHUB_API_TOKEN" => "123sbdq54erfsd3422gdfio"
}
end
# A stubbed out Dangerfile for use in tests
def testing_dangerfile
env = Danger::EnvironmentManager.new(testing_env)
Danger::Dangerfile.new(env, testing_ui)
end