Skip to content

Commit d62bea0

Browse files
authored
Merge pull request #198 from engineyard/feature/integration-test-boilerplate
TEY-100: Set up outside test suite
2 parents a663d15 + 6c060d7 commit d62bea0

File tree

6 files changed

+78
-1
lines changed

6 files changed

+78
-1
lines changed

engineyard-serverside.gemspec

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ Gem::Specification.new do |s|
2929
s.add_development_dependency('mime-types', '~>1.25')
3030
s.add_development_dependency('json', '<2')
3131
s.add_development_dependency('cucumber', '~> 1.3.20')
32+
s.add_development_dependency('contracts', '= 0.9')
3233
s.add_development_dependency('aruba', '~> 0.14.14')
34+
s.add_development_dependency('factis', '~> 1.0.1')
3335

3436
s.required_rubygems_version = %q{>= 1.3.6}
35-
s.test_files = Dir.glob("spec/**/*")
37+
s.test_files = Dir.glob("spec/**/*") + Dir.glob("features/**/*")
3638
end
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
require 'engineyard-serverside/version'
2+
3+
Then %{the current version is displayed} do
4+
expect(output_text).to include(EY::Serverside::VERSION)
5+
end

features/support/env.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
unless RUBY_VERSION =~ /^1\.8\./
2+
require 'simplecov'
3+
SimpleCov.coverage_dir 'coverage/outside'
4+
SimpleCov.start do
5+
add_filter '/spec/'
6+
add_filter '/features/'
7+
add_filter '/mock/'
8+
add_filter '/lib/vendor/'
9+
add_group 'CLI Workflows', 'lib/engineyard-serverside/cli/workflows/'
10+
add_group 'Callbacks', 'lib/engineyard-serverside/callbacks/'
11+
end
12+
end
13+
14+
require 'aruba/cucumber'
15+
require 'factis/cucumber'
16+
require 'engineyard-serverside'
17+
18+
# This is a fun bit of glue to allow us to use Aruba's in-process runner
19+
class Runatron
20+
def initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
21+
@argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
22+
end
23+
24+
def execute!
25+
exit_code = begin
26+
$stderr = @stderr
27+
$stdin = @stdin
28+
$stdout = @stdout
29+
30+
EY::Serverside::CLI::App.start(@argv)
31+
rescue StandardError => e
32+
b = e.backtrace
33+
@stderr.puts("#{b.shift}: #{e.message} (#{e.class})")
34+
@stderr.puts(b.map {|s| "\tfrom #{s}"}.join("\n"))
35+
rescue SystemExit => e
36+
e.status
37+
ensure
38+
$stderr = STDERR
39+
$stdin = STDIN
40+
$stdout = STDOUT
41+
end
42+
43+
@kernel.exit(exit_code)
44+
end
45+
end
46+
47+
Aruba.configure do |config|
48+
config.command_launcher = :in_process
49+
config.main_class = Runatron
50+
end

features/support/output_helpers.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module OutputHelpers
2+
def output_text
3+
last_command_started.output
4+
end
5+
end
6+
7+
World(OutputHelpers)

features/version.feature

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Feature: Showing the version
2+
In order to know what iteration of engineyard-serverside I'm using, I want to
3+
be able to have it print out the version.
4+
5+
Scenario: User issues the vesion command
6+
When I run `engineyard-serverside version`
7+
Then the current version is displayed

lib/engineyard-serverside/cli/app.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
require 'engineyard-serverside/servers'
99
require 'engineyard-serverside/cli/helpers'
1010
require 'engineyard-serverside/cli/workflows'
11+
require 'engineyard-serverside/version'
1112

1213
module EY
1314
module Serverside
@@ -130,6 +131,11 @@ def integrate
130131
def restart
131132
Workflows.perform(:restart, options)
132133
end
134+
135+
desc "version", "Show the engineyard-serverside version"
136+
def version
137+
puts EY::Serverside::VERSION
138+
end
133139
end
134140
end
135141
end

0 commit comments

Comments
 (0)