-
Notifications
You must be signed in to change notification settings - Fork 114
/
spec_helper.rb
64 lines (51 loc) · 1.56 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
require "rspec/core"
require "rspec/retry"
require "hatchet"
require "java-properties"
DEFAULT_OPENJDK_VERSION="1.8"
RSpec.configure do |config|
config.fail_if_no_examples = true
config.full_backtrace = true
# rspec-retry
config.verbose_retry = true
config.default_retry_count = 2 if ENV["CI"]
end
def new_default_hatchet_runner(*args, **kwargs)
kwargs[:stack] ||= ENV["DEFAULT_APP_STACK"]
kwargs[:config] ||= {}
ENV.keys.each do |key|
if key.start_with?("DEFAULT_APP_CONFIG_")
kwargs[:config][key.delete_prefix("DEFAULT_APP_CONFIG_")] ||= ENV[key]
end
end
Hatchet::Runner.new(*args, **kwargs)
end
def set_java_version(version_string)
set_system_properties_key("java.runtime.version", version_string)
end
def set_maven_version(version_string)
set_system_properties_key("maven.version", version_string)
end
def set_system_properties_key(key, value)
properties = {}
if File.file?("system.properties")
properties = JavaProperties.load("system.properties")
end
properties[key.to_sym] = value
JavaProperties.write(properties, "system.properties")
end
def write_to_procfile(content)
File.open("Procfile", "w") do |file|
file.write(content)
end
end
def run(cmd)
out = `#{cmd}`
raise "Command #{cmd} failed with output #{out}" unless $?.success?
out
end
def http_get(app, options = {})
retry_limit = options[:retry_limit] || 50
path = options[:path] ? "/#{options[:path]}" : ""
Excon.get("https://#{app.name}.herokuapp.com#{path}", :idempotent => true, :expects => 200, :retry_limit => retry_limit).body
end