Class: Spring::Test::AcceptanceTest

Inherits:
ActiveSupport::TestCase
  • Object
show all
Defined in:
lib/spring/test/acceptance_test.rb

Constant Summary collapse

DEFAULT_SPEEDUP =
0.8

Instance Method Summary collapse

Instance Method Details

#appObject



27
28
29
# File 'lib/spring/test/acceptance_test.rb', line 27

def app
  @app ||= Spring::Test::Application.new("#{Spring::Test.root}/apps/tmp")
end

#assert_failure(command, expected_output = nil) ⇒ Object



48
49
50
51
52
# File 'lib/spring/test/acceptance_test.rb', line 48

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

#assert_output(artifacts, expected) ⇒ Object



35
36
37
38
39
40
# File 'lib/spring/test/acceptance_test.rb', line 35

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

#assert_speedup(ratio = DEFAULT_SPEEDUP) ⇒ Object



62
63
64
65
66
67
68
69
70
71
# File 'lib/spring/test/acceptance_test.rb', line 62

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

#assert_success(command, expected_output = nil) ⇒ Object



42
43
44
45
46
# File 'lib/spring/test/acceptance_test.rb', line 42

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

#generatorObject



23
24
25
# File 'lib/spring/test/acceptance_test.rb', line 23

def generator
  @@generator ||= generator_klass.new(rails_version)
end

#generator_klassObject

Extension point for spring-watchers-listen



19
20
21
# File 'lib/spring/test/acceptance_test.rb', line 19

def generator_klass
  Spring::Test::ApplicationGenerator
end

#rails_versionObject



14
15
16
# File 'lib/spring/test/acceptance_test.rb', line 14

def rails_version
  ENV['RAILS_VERSION'] || '~> 5.0.0'
end

#refute_output_includes(command, not_expected) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/spring/test/acceptance_test.rb', line 54

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

#spring_envObject



31
32
33
# File 'lib/spring/test/acceptance_test.rb', line 31

def spring_env
  app.spring_env
end

#without_gem(name) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/spring/test/acceptance_test.rb', line 73

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