class Spring::Test::AcceptanceTest
def app
def app @app ||= Spring::Test::Application.new("#{Spring::Test.root}/apps/tmp") end
def assert_failure(command, expected_output = nil)
def assert_failure(command, expected_output = nil) artifacts = app.run(*Array(command)) assert !artifacts[:status].success?, "expected unsuccessful exit status\n\n#{app.debug(artifacts)}" assert_output artifacts, expected_output if expected_output end
def assert_output(artifacts, expected)
def assert_output(artifacts, expected) expected.each do |stream, output| assert artifacts[stream].include?(output), "expected #{stream} to include '#{output}'.\n\n#{app.debug(artifacts)}" end end
def assert_speedup(ratio = DEFAULT_SPEEDUP)
def assert_speedup(ratio = DEFAULT_SPEEDUP) if ENV['CI'] yield else app.with_timing do yield assert app.timing_ratio < ratio, "#{app.last_time} was not less than #{ratio} of #{app.first_time}" end end end
def assert_success(command, expected_output = nil)
def assert_success(command, expected_output = nil) artifacts = app.run(*Array(command)) assert artifacts[:status].success?, "expected successful exit status\n\n#{app.debug(artifacts)}" assert_output artifacts, expected_output if expected_output end
def generator
def generator @@generator ||= generator_klass.new(rails_version) end
def generator_klass
def generator_klass Spring::Test::ApplicationGenerator end
def rails_version
def rails_version ENV['RAILS_VERSION'] || '~> 4.2.0' end
def refute_output_includes(command, not_expected)
def refute_output_includes(command, not_expected) artifacts = app.run(*Array(command)) not_expected.each do |stream, output| assert !artifacts[stream].include?(output), "expected #{stream} to not include '#{output}'.\n\n#{app.debug(artifacts)}" end end
def without_gem(name)
def without_gem(name) gem_home = app.gem_home.join('gems') FileUtils.mv(gem_home.join(name), app.root) yield ensure FileUtils.mv(app.root.join(name), gem_home) end