capybara_discoball 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 00db3b8f3a7c038350d2e48afee80719293a6cc3
4
- data.tar.gz: c2dd927926e91f5956313fedd1d87acd0f2ba9c4
2
+ SHA256:
3
+ metadata.gz: cac015fc3b1bc5a40692f0ff66fd5080c555ea1c7070148af280d5bde5f8091a
4
+ data.tar.gz: 752a97d51f5e970851bdc1ca92f8ffa9d107a565c9a84fe1770050babc136e8e
5
5
  SHA512:
6
- metadata.gz: da93787cfe28cd0414a458df7b114918bb8be64aaf420329b02fd62c9a8d88298673c3d8c8f7c1025a343f7dbc279fc2038cedc5259f74dce81c87f2b2fa5dfd
7
- data.tar.gz: c3a76d1a07ab7aa22115e195c5dac8021c11530f9c64158bbcca1fc925d66f3217380f3af46a22aeb2446df06299fc4ce5a702195831816e1fc7c3eecbb6d54b
6
+ metadata.gz: c6fe4ffdf43b29278d96ff7a39c4e4f25e632c4f221f994b61d12115d0927f791fa33e5d6c594cd9a46fa716fd5039b0829519c03cc731bf4168443cef129d8a
7
+ data.tar.gz: 7f48ead23ef8dd6a735972d8170be4967649e38d2630d57009dc1ba686b0ef36198e83c91708e8e7c27185aa9ec37b435afe95477377a656b55e39e7a5872f96
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  Gemfile.lock
4
4
  pkg/*
5
5
  tmp/*
6
+ gemfiles/*.lock
data/.rspec CHANGED
@@ -1,2 +1 @@
1
-
2
- -r turnip/rspec
1
+ --require spec_helper
@@ -1,4 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "2.2.2"
3
+ - "2.3"
4
+ - "2.4"
5
+ - "2.5"
4
6
  sudo: false
@@ -0,0 +1,7 @@
1
+ appraise "capybara-2" do
2
+ gem "capybara", "~> 2.7"
3
+ end
4
+
5
+ appraise "capybara-3" do
6
+ gem "capybara", "~> 3.0"
7
+ end
data/Rakefile CHANGED
@@ -1,12 +1,14 @@
1
- require 'bundler/gem_tasks'
2
- require 'rspec/core/rake_task'
1
+ require "bundler/gem_tasks"
3
2
 
4
- namespace :spec do
5
- RSpec::Core::RakeTask.new(:acceptance) do |t|
6
- t.pattern = 'spec/acceptance/**/{*_spec.rb,*.feature}'
7
- end
3
+ desc "Appraisals: Test different dependency versions"
4
+ task :run_appraisals do
5
+ sh("bundle exec appraisal install")
6
+ sh("bundle exec appraisal rspec --tag ~type:black_box")
8
7
  end
9
8
 
10
- task :spec => 'spec:acceptance'
11
-
12
- task :default => [:spec]
9
+ begin
10
+ require "rspec/core/rake_task"
11
+ RSpec::Core::RakeTask.new(:spec)
12
+ task default: [:spec, :run_appraisals]
13
+ rescue LoadError
14
+ end
@@ -23,21 +23,12 @@ present the Discoball.
23
23
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
24
  s.require_paths = ["lib"]
25
25
 
26
- s.add_dependency 'capybara', '~> 2.7'
26
+ s.add_dependency 'capybara', '>= 2.7', '< 4'
27
27
 
28
+ s.add_development_dependency 'appraisal'
29
+ s.add_development_dependency 'jet_black', '~> 0.2'
30
+ s.add_development_dependency 'pry'
31
+ s.add_development_dependency 'rake'
28
32
  s.add_development_dependency 'rspec'
29
- s.add_development_dependency 'turnip', '~> 2.1'
30
- s.add_development_dependency 'aruba'
31
33
  s.add_development_dependency 'sinatra'
32
-
33
- # Rails dependencies
34
- s.add_development_dependency 'rails'
35
- s.add_development_dependency 'thin'
36
- s.add_development_dependency 'uglifier'
37
- s.add_development_dependency 'sass-rails'
38
- s.add_development_dependency 'coffee-rails'
39
- s.add_development_dependency 'jquery-rails'
40
- s.add_development_dependency 'rspec-rails'
41
- s.add_development_dependency 'sqlite3'
42
- s.add_development_dependency 'therubyracer'
43
34
  end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "capybara", "~> 2.7"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "capybara", "~> 3.0"
6
+
7
+ gemspec path: "../"
@@ -22,13 +22,10 @@ module Capybara
22
22
 
23
23
  def with_webrick_runner
24
24
  default_server_process = Capybara.server
25
- Capybara.register_server :webrick do |app, port|
26
- require "rack/handler/webrick"
27
- Rack::Handler::WEBrick.run(app, Port: port, AccessLog: [], Logger: WEBrick::Log::new(nil, 0))
28
- end
25
+ Capybara.server = :webrick
29
26
  yield
30
27
  ensure
31
- Capybara.register_server(:default, &default_server_process)
28
+ Capybara.server = default_server_process
32
29
  end
33
30
  end
34
31
  end
@@ -1,5 +1,5 @@
1
1
  module Capybara
2
2
  module Discoball
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -0,0 +1,183 @@
1
+ require "jet_black"
2
+
3
+ RSpec.describe "Using Discoball in a Rails app" do
4
+ let(:session) do
5
+ JetBlack::Session.new(options: { clean_bundler_env: true })
6
+ end
7
+
8
+ it "works with a block" do
9
+ create_rails_application
10
+ setup_discoball
11
+ setup_rspec_rails
12
+ install_success_api
13
+
14
+ setup_controller_action(<<~RUBY)
15
+ render plain: SuccessAPI.get
16
+ RUBY
17
+
18
+ setup_integration_spec(<<~RUBY)
19
+ visit "/successes"
20
+ expect(page).to have_content("success")
21
+ RUBY
22
+
23
+ setup_spec_supporter(<<-RUBY)
24
+ require "sinatra/base"
25
+ require "capybara_discoball"
26
+ require "success_api"
27
+
28
+ class FakeSuccess < Sinatra::Base
29
+ get("/") { "success" }
30
+ end
31
+
32
+ Capybara::Discoball.spin(FakeSuccess) do |server|
33
+ SuccessAPI.endpoint_url = server.url
34
+ end
35
+ RUBY
36
+
37
+ expect(run_integration_test).
38
+ to be_a_success.and have_stdout(/1 example, 0 failures/)
39
+ end
40
+
41
+ it "works without a block" do
42
+ create_rails_application
43
+ setup_discoball
44
+ setup_rspec_rails
45
+ install_success_api
46
+
47
+ setup_controller_action(<<~RUBY)
48
+ render :plain => SuccessAPI.get
49
+ RUBY
50
+
51
+ setup_integration_spec(<<~RUBY)
52
+ visit "/successes"
53
+ expect(page).to have_content("success")
54
+ RUBY
55
+
56
+ setup_spec_supporter(<<-RUBY)
57
+ require "sinatra/base"
58
+ require "capybara_discoball"
59
+ require "success_api"
60
+
61
+ class FakeSuccess < Sinatra::Base
62
+ get("/") { "success" }
63
+ end
64
+
65
+ SuccessAPI.endpoint_url = Capybara::Discoball.spin(FakeSuccess)
66
+ RUBY
67
+
68
+ expect(run_integration_test).
69
+ to be_a_success.and have_stdout("1 example, 0 failures")
70
+ end
71
+
72
+ private
73
+
74
+ def create_rails_application
75
+ session.create_file("Gemfile", <<~RUBY)
76
+ source "http://rubygems.org"
77
+
78
+ gem "rails"
79
+ RUBY
80
+
81
+ session.run("bundle install")
82
+
83
+ rails_new_cmd = [
84
+ "bundle exec rails new .",
85
+ "--skip-bundle",
86
+ "--skip-test",
87
+ "--skip-coffee",
88
+ "--skip-turbolinks",
89
+ "--skip-spring",
90
+ "--skip-bootsnap",
91
+ "--force",
92
+ ].join(" ")
93
+
94
+ expect(session.run(rails_new_cmd)).
95
+ to be_a_success.and have_stdout("force Gemfile")
96
+ end
97
+
98
+ def setup_discoball
99
+ discoball_path = File.expand_path("../../", __dir__)
100
+
101
+ session.append_to_file "Gemfile", <<~RUBY
102
+ gem "capybara_discoball", path: "#{discoball_path}"
103
+ gem "sinatra"
104
+ RUBY
105
+
106
+ expect(session.run("bundle install")).
107
+ to be_a_success.and have_stdout(/capybara_discoball .* from source at/)
108
+ end
109
+
110
+ def setup_rspec_rails
111
+ session.append_to_file("Gemfile", <<~RUBY)
112
+ gem "rspec-rails"
113
+ RUBY
114
+
115
+ session.run("bundle install")
116
+
117
+ expect(session.run("bundle exec rails g rspec:install")).
118
+ to be_a_success.and have_stdout("create spec/rails_helper.rb")
119
+ end
120
+
121
+ def install_success_api
122
+ session.create_file("app/models/success_api.rb", <<~RUBY)
123
+ require "net/http"
124
+ require "uri"
125
+
126
+ class SuccessAPI
127
+ @@endpoint_url = "http://yahoo.com/"
128
+
129
+ def self.endpoint_url=(endpoint_url)
130
+ @@endpoint_url = endpoint_url
131
+ end
132
+
133
+ def self.get
134
+ Net::HTTP.get(uri)
135
+ end
136
+
137
+ private
138
+
139
+ def self.uri
140
+ URI.parse(@@endpoint_url)
141
+ end
142
+ end
143
+ RUBY
144
+ end
145
+
146
+ def setup_controller_action(content)
147
+ session.create_file("app/controllers/whatever_controller.rb", <<~RUBY)
148
+ class WhateverController < ApplicationController
149
+ def the_action
150
+ #{content}
151
+ end
152
+ end
153
+ RUBY
154
+
155
+ session.create_file("config/routes.rb", <<~RUBY)
156
+ Rails.application.routes.draw do
157
+ get "/successes", to: "whatever#the_action"
158
+ end
159
+ RUBY
160
+ end
161
+
162
+ def setup_integration_spec(spec_content)
163
+ session.create_file("spec/integration/whatever_spec.rb", <<~RUBY)
164
+ require "rails_helper"
165
+ require "capybara/rspec"
166
+ require "support/whatever"
167
+
168
+ RSpec.describe "whatever", type: :feature do
169
+ it "does the thing" do
170
+ #{spec_content}
171
+ end
172
+ end
173
+ RUBY
174
+ end
175
+
176
+ def setup_spec_supporter(support_content)
177
+ session.create_file("spec/support/whatever.rb", support_content)
178
+ end
179
+
180
+ def run_integration_test
181
+ session.run("bundle exec rspec spec/integration")
182
+ end
183
+ end
@@ -0,0 +1,16 @@
1
+ require "capybara_discoball"
2
+ require "net/http"
3
+ require "sinatra/base"
4
+
5
+ RSpec.describe Capybara::Discoball do
6
+ it "spins up a server" do
7
+ example_discoball_app = Class.new(Sinatra::Base) do
8
+ get("/") { "success" }
9
+ end
10
+
11
+ server_url = described_class.spin(example_discoball_app)
12
+ response = Net::HTTP.get(URI(server_url))
13
+
14
+ expect(response).to eq "success"
15
+ end
16
+ end
@@ -1,21 +1,18 @@
1
- require 'rspec'
2
- require 'turnip'
3
- require 'aruba/api'
4
- Dir["spec/{support,step_definitions}/**/*.rb"].each { |f| require File.expand_path(f) }
1
+ require "jet_black/rspec"
5
2
 
6
3
  RSpec.configure do |config|
7
- config.include Aruba::Api
8
- config.include RailsSupport
4
+ config.expect_with :rspec do |expectations|
5
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
6
+ end
9
7
 
10
- config.before(:all) do
11
- @aruba_timeout_seconds = 140
12
- if ENV['DEBUG']
13
- @puts = true
14
- @announce_stdout = true
15
- @announce_stderr = true
16
- @announce_cmd = true
17
- @announce_dir = true
18
- @announce_env = true
19
- end
8
+ config.mock_with :rspec do |mocks|
9
+ mocks.verify_partial_doubles = true
20
10
  end
11
+
12
+ config.shared_context_metadata_behavior = :apply_to_host_groups
13
+ config.disable_monkey_patching!
14
+ config.warnings = true
15
+
16
+ config.order = :random
17
+ Kernel.srand config.seed
21
18
  end
metadata CHANGED
@@ -1,31 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara_discoball
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Burns
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-05 00:00:00.000000000 Z
11
+ date: 2018-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.7'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '2.7'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4'
27
33
  - !ruby/object:Gem::Dependency
28
- name: rspec
34
+ name: appraisal
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
@@ -39,35 +45,21 @@ dependencies:
39
45
  - !ruby/object:Gem::Version
40
46
  version: '0'
41
47
  - !ruby/object:Gem::Dependency
42
- name: turnip
48
+ name: jet_black
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '2.1'
53
+ version: '0.2'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '2.1'
55
- - !ruby/object:Gem::Dependency
56
- name: aruba
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
60
+ version: '0.2'
69
61
  - !ruby/object:Gem::Dependency
70
- name: sinatra
62
+ name: pry
71
63
  requirement: !ruby/object:Gem::Requirement
72
64
  requirements:
73
65
  - - ">="
@@ -81,7 +73,7 @@ dependencies:
81
73
  - !ruby/object:Gem::Version
82
74
  version: '0'
83
75
  - !ruby/object:Gem::Dependency
84
- name: rails
76
+ name: rake
85
77
  requirement: !ruby/object:Gem::Requirement
86
78
  requirements:
87
79
  - - ">="
@@ -95,91 +87,7 @@ dependencies:
95
87
  - !ruby/object:Gem::Version
96
88
  version: '0'
97
89
  - !ruby/object:Gem::Dependency
98
- name: thin
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: uglifier
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: sass-rails
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: coffee-rails
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: jquery-rails
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: rspec-rails
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: sqlite3
90
+ name: rspec
183
91
  requirement: !ruby/object:Gem::Requirement
184
92
  requirements:
185
93
  - - ">="
@@ -193,7 +101,7 @@ dependencies:
193
101
  - !ruby/object:Gem::Version
194
102
  version: '0'
195
103
  - !ruby/object:Gem::Dependency
196
- name: therubyracer
104
+ name: sinatra
197
105
  requirement: !ruby/object:Gem::Requirement
198
106
  requirements:
199
107
  - - ">="
@@ -220,6 +128,7 @@ files:
220
128
  - ".gitignore"
221
129
  - ".rspec"
222
130
  - ".travis.yml"
131
+ - Appraisals
223
132
  - CONTRIBUTING.md
224
133
  - Gemfile
225
134
  - LICENSE
@@ -227,14 +136,15 @@ files:
227
136
  - README.md
228
137
  - Rakefile
229
138
  - capybara_discoball.gemspec
139
+ - gemfiles/capybara_2.gemfile
140
+ - gemfiles/capybara_3.gemfile
230
141
  - lib/capybara_discoball.rb
231
142
  - lib/capybara_discoball/runner.rb
232
143
  - lib/capybara_discoball/server.rb
233
144
  - lib/capybara_discoball/version.rb
234
- - spec/acceptance/rails.feature
145
+ - spec/black_box/rails_app_spec.rb
146
+ - spec/lib/capybara_discoball_spec.rb
235
147
  - spec/spec_helper.rb
236
- - spec/step_definitions/rails_steps.rb
237
- - spec/support/rails_support.rb
238
148
  homepage: ''
239
149
  licenses: []
240
150
  metadata: {}
@@ -254,12 +164,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
164
  version: '0'
255
165
  requirements: []
256
166
  rubyforge_project: capybara_discoball
257
- rubygems_version: 2.5.1
167
+ rubygems_version: 2.7.6
258
168
  signing_key:
259
169
  specification_version: 4
260
170
  summary: Spin up an external server just for Capybara
261
171
  test_files:
262
- - spec/acceptance/rails.feature
172
+ - spec/black_box/rails_app_spec.rb
173
+ - spec/lib/capybara_discoball_spec.rb
263
174
  - spec/spec_helper.rb
264
- - spec/step_definitions/rails_steps.rb
265
- - spec/support/rails_support.rb
@@ -1,57 +0,0 @@
1
- Feature: Rails
2
-
3
- @disable-bundler
4
- Scenario: Using Discoball in a Rails app with a block
5
- Given I have a Rails application with Discoball installed
6
- And the SuccessAPI is installed
7
- And the following integration spec:
8
- """
9
- visit '/successes'
10
- expect(page).to have_content('success')
11
- """
12
- And the following controller action:
13
- """
14
- render :text => SuccessAPI.get
15
- """
16
- And the following spec supporter:
17
- """
18
- require 'sinatra/base'
19
- require 'capybara_discoball'
20
- require 'success_api'
21
-
22
- class FakeSuccess < Sinatra::Base
23
- get('/') { 'success' }
24
- end
25
-
26
- Capybara::Discoball.spin(FakeSuccess) do |server|
27
- SuccessAPI.endpoint_url = server.url
28
- end
29
- """
30
- Then the integration spec should pass
31
-
32
- @disable-bundler
33
- Scenario: Using Discoball in a Rails app without a block
34
- Given I have a Rails application with Discoball installed
35
- And the SuccessAPI is installed
36
- And the following integration spec:
37
- """
38
- visit '/successes'
39
- expect(page).to have_content('success')
40
- """
41
- And the following controller action:
42
- """
43
- render :text => SuccessAPI.get
44
- """
45
- And the following spec supporter:
46
- """
47
- require 'sinatra/base'
48
- require 'capybara_discoball'
49
- require 'success_api'
50
-
51
- class FakeSuccess < Sinatra::Base
52
- get('/') { 'success' }
53
- end
54
-
55
- SuccessAPI.endpoint_url = Capybara::Discoball.spin(FakeSuccess)
56
- """
57
- Then the integration spec should pass
@@ -1,72 +0,0 @@
1
- step %{I have a Rails application with Discoball installed} do
2
- create_rails_app
3
- append_to_file("Gemfile", <<-GEMS)
4
- gem 'rspec-rails'
5
- gem 'capybara'
6
- GEMS
7
- run_simple "bundle exec rails generate rspec:install"
8
- end
9
-
10
- step %{the following controller action:} do |action_content|
11
- write_file("app/controllers/whatever_controller.rb", <<-CONTROLLER)
12
- class WhateverController < ApplicationController
13
- def the_action
14
- #{action_content}
15
- end
16
- end
17
- CONTROLLER
18
- write_file("config/routes.rb", <<-ROUTES)
19
- Testapp::Application.routes.draw do
20
- get '/successes', :to => 'whatever#the_action'
21
- end
22
- ROUTES
23
- end
24
-
25
- step %{the following integration spec:} do |spec_content|
26
- write_file("spec/integration/whatever_spec.rb", <<-SPEC)
27
- require 'rails_helper'
28
- require 'capybara/rspec'
29
- require 'support/whatever'
30
-
31
- RSpec.describe "whatever", :type => :feature do
32
- it "does the thing" do
33
- #{spec_content}
34
- end
35
- end
36
- SPEC
37
- end
38
-
39
- step %{the following spec supporter:} do |support_content|
40
- write_file("spec/support/whatever.rb", support_content)
41
- end
42
-
43
- step %{the integration spec should pass} do
44
- run_simple("bundle exec rspec spec/integration", false)
45
- expect(last_command_started).to have_output(/1 example, 0 failures/)
46
- expect(last_command_started).to have_exit_status(0)
47
- end
48
-
49
- step %{the SuccessAPI is installed} do
50
- write_file('app/models/success_api.rb', <<-SUCCESS_API)
51
- require 'net/http'
52
- require 'uri'
53
-
54
- class SuccessAPI
55
- @@endpoint_url = 'http://yahoo.com/'
56
-
57
- def self.endpoint_url=(endpoint_url)
58
- @@endpoint_url = endpoint_url
59
- end
60
-
61
- def self.get
62
- Net::HTTP.get(uri)
63
- end
64
-
65
- private
66
-
67
- def self.uri
68
- URI.parse(@@endpoint_url)
69
- end
70
- end
71
- SUCCESS_API
72
- end
@@ -1,14 +0,0 @@
1
- module RailsSupport
2
- def create_rails_app
3
- setup_aruba
4
- cd(".") { FileUtils.rm_rf "testapp" }
5
- run_simple "bundle exec rails new testapp --skip-bundle --skip-test-unit"
6
- cd "testapp"
7
- append_to_file("Gemfile", <<-GEMS)
8
- gem "capybara_discoball", :path => "../../.."
9
- gem "thin"
10
- gem "therubyracer"
11
- gem "sinatra"
12
- GEMS
13
- end
14
- end