capybara_discoball 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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