vcr 1.11.1 → 1.11.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +3 -0
- data/CHANGELOG.md +11 -4
- data/Gemfile +5 -4
- data/Rakefile +23 -4
- data/cucumber.yml +2 -2
- data/features/cassettes/automatic_re_recording.feature +2 -2
- data/features/cassettes/dynamic_erb.feature +2 -2
- data/features/cassettes/format.feature +1 -1
- data/features/cassettes/naming.feature +1 -1
- data/features/cassettes/no_cassette.feature +4 -4
- data/features/cassettes/request_matching.feature +5 -5
- data/features/cassettes/update_content_length_header.feature +3 -3
- data/features/configuration/allow_http_connections_when_no_cassette.feature +3 -3
- data/features/configuration/cassette_library_dir.feature +1 -1
- data/features/configuration/default_cassette_options.feature +5 -5
- data/features/configuration/filter_sensitive_data.feature +6 -6
- data/features/configuration/hooks.feature +6 -6
- data/features/configuration/ignore_hosts.feature +1 -1
- data/features/configuration/ignore_localhost.feature +2 -2
- data/features/configuration/stub_with.feature +4 -4
- data/features/http_libraries/em_http_request.feature +4 -4
- data/features/http_libraries/net_http.feature +10 -10
- data/features/middleware/faraday.feature +2 -2
- data/features/middleware/rack.feature +2 -2
- data/features/record_modes/all.feature +2 -2
- data/features/record_modes/new_episodes.feature +2 -2
- data/features/record_modes/none.feature +2 -2
- data/features/record_modes/once.feature +3 -3
- data/features/step_definitions/cli_steps.rb +6 -2
- data/features/support/env.rb +5 -8
- data/features/support/http_lib_filters.rb +6 -1
- data/features/test_frameworks/cucumber.feature +2 -2
- data/features/test_frameworks/rspec.feature +2 -2
- data/features/test_frameworks/shoulda.feature +13 -10
- data/features/test_frameworks/test_unit.feature +12 -9
- data/lib/vcr.rb +6 -0
- data/lib/vcr/config.rb +7 -1
- data/lib/vcr/deprecations/cassette.rb +16 -16
- data/lib/vcr/extensions/net_http_response.rb +4 -0
- data/lib/vcr/http_stubbing_adapters/common.rb +1 -1
- data/lib/vcr/http_stubbing_adapters/fakeweb.rb +6 -0
- data/lib/vcr/http_stubbing_adapters/webmock.rb +7 -0
- data/lib/vcr/middleware/cassette_arguments.rb +1 -0
- data/lib/vcr/structs/http_interaction.rb +1 -0
- data/lib/vcr/version.rb +1 -1
- data/spec/capture_warnings.rb +42 -0
- data/spec/monkey_patches.rb +5 -1
- data/spec/spec_helper.rb +2 -1
- data/spec/support/shared_example_groups/http_library.rb +19 -19
- data/spec/support/shared_example_groups/http_stubbing_adapter.rb +6 -6
- data/spec/support/shared_example_groups/ignore_localhost_deprecation.rb +1 -1
- data/spec/support/shared_example_groups/normalizers.rb +13 -15
- data/spec/support/sinatra_app.rb +2 -0
- data/spec/support/vcr_localhost_server.rb +4 -3
- data/spec/vcr/cassette/reader_spec.rb +4 -4
- data/spec/vcr/cassette_spec.rb +28 -28
- data/spec/vcr/config_spec.rb +11 -11
- data/spec/vcr/deprecations/cassette_spec.rb +4 -4
- data/spec/vcr/deprecations/config_spec.rb +2 -2
- data/spec/vcr/deprecations/http_stubbing_adapters/fakeweb_spec.rb +1 -1
- data/spec/vcr/extensions/net_http_response_spec.rb +3 -3
- data/spec/vcr/extensions/net_http_spec.rb +4 -4
- data/spec/vcr/http_stubbing_adapters/excon_spec.rb +5 -5
- data/spec/vcr/http_stubbing_adapters/faraday_spec.rb +4 -4
- data/spec/vcr/http_stubbing_adapters/multi_object_proxy_spec.rb +4 -4
- data/spec/vcr/middleware/cassette_arguments_spec.rb +5 -5
- data/spec/vcr/middleware/faraday_spec.rb +3 -3
- data/spec/vcr/middleware/rack_spec.rb +4 -4
- data/spec/vcr/request_matcher_spec.rb +13 -13
- data/spec/vcr/structs/http_interaction_spec.rb +6 -6
- data/spec/vcr/structs/request_spec.rb +7 -7
- data/spec/vcr/structs/response_spec.rb +5 -5
- data/spec/vcr/structs/response_status_spec.rb +2 -2
- data/spec/vcr/test_frameworks/cucumber_spec.rb +2 -2
- data/spec/vcr/test_frameworks/rspec_spec.rb +6 -7
- data/spec/vcr/util/hooks_spec.rb +9 -9
- data/spec/vcr_spec.rb +11 -17
- data/vcr.gemspec +11 -5
- metadata +47 -49
- data/features/support/aruba_workaround/aruba_patches.rb +0 -36
- data/features/support/aruba_workaround/background_process.rb +0 -4
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
## In git
|
2
2
|
|
3
|
-
[Full Changelog](http://github.com/myronmarston/vcr/compare/v1.11.
|
3
|
+
[Full Changelog](http://github.com/myronmarston/vcr/compare/v1.11.2...master)
|
4
|
+
|
5
|
+
## 1.11.2 (August 28, 2011)
|
6
|
+
|
7
|
+
[Full Changelog](http://github.com/myronmarston/vcr/compare/v1.11.1...v1.11.2)
|
8
|
+
|
9
|
+
* Updated rake, cucumber and aruba dev dependencies to latest releases.
|
10
|
+
* Fix all warnings originating from VCR. VCR is now warning-free!
|
4
11
|
|
5
12
|
## 1.11.1 (August 18, 2011)
|
6
13
|
|
@@ -33,10 +40,10 @@
|
|
33
40
|
|
34
41
|
[Full Changelog](http://github.com/myronmarston/vcr/compare/v1.10.0...v1.10.1)
|
35
42
|
|
36
|
-
* Fix typo in error message [Bradley](https://github.com/bradleyisotope).
|
43
|
+
* Fix typo in error message. Fix provided by [Bradley](https://github.com/bradleyisotope).
|
37
44
|
* Fix excon adapter to properly handle queries specified as a hash.
|
38
|
-
* Fix excon adapter to stub a response with a hash as excon expects
|
39
|
-
[Wesley Beary](https://github.com/geemus).
|
45
|
+
* Fix excon adapter to stub a response with a hash as excon expects.
|
46
|
+
Fix provided by [Wesley Beary](https://github.com/geemus).
|
40
47
|
* Fix excon adapter so that it records a response even when excon raises
|
41
48
|
an error due to an unexpected response.
|
42
49
|
|
data/Gemfile
CHANGED
@@ -4,9 +4,9 @@ gemspec
|
|
4
4
|
group :development do
|
5
5
|
# patron and em-http-request can't install on JRuby, so we have to limit their platform here.
|
6
6
|
platforms :ruby do
|
7
|
-
gem 'patron', '0.4.
|
7
|
+
gem 'patron', '~> 0.4.15'
|
8
8
|
gem 'em-http-request', '~> 0.3.0'
|
9
|
-
gem 'curb', '0.7.
|
9
|
+
gem 'curb', '~> 0.7.15'
|
10
10
|
gem 'typhoeus', '~> 0.2.1'
|
11
11
|
end
|
12
12
|
|
@@ -22,6 +22,7 @@ group :extras do
|
|
22
22
|
gem 'growl'
|
23
23
|
gem 'relish'
|
24
24
|
gem 'fuubar'
|
25
|
+
gem 'fuubar-cucumber'
|
25
26
|
|
26
27
|
platforms :mri do
|
27
28
|
gem 'rcov'
|
@@ -37,6 +38,6 @@ group :extras do
|
|
37
38
|
gem 'linecache19', '0.5.11' # 0.5.12 cannot install on 1.9.1, and 0.5.11 appears to work with both 1.9.1 & 1.9.2
|
38
39
|
gem 'ruby-debug19'
|
39
40
|
gem 'ruby-debug-base19', RUBY_VERSION == '1.9.1' ? '0.11.23' : '~> 0.11.24'
|
40
|
-
end
|
41
|
-
end
|
41
|
+
end unless RUBY_VERSION == '1.9.3'
|
42
|
+
end
|
42
43
|
|
data/Rakefile
CHANGED
@@ -11,7 +11,11 @@ require "rspec/core/rake_task"
|
|
11
11
|
|
12
12
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
13
13
|
t.verbose = false
|
14
|
-
t.
|
14
|
+
t.ruby_opts = "-w -r./spec/capture_warnings"
|
15
|
+
|
16
|
+
# I'm not sure why, but bundler seems to silence warnings...
|
17
|
+
t.skip_bundler = true
|
18
|
+
|
15
19
|
t.rspec_opts = %w[--format progress] if (ENV['FULL_BUILD'] || !using_git)
|
16
20
|
end
|
17
21
|
|
@@ -25,8 +29,10 @@ task :cleanup_rcov_files do
|
|
25
29
|
rm_rf 'coverage.data'
|
26
30
|
end
|
27
31
|
|
28
|
-
|
29
|
-
|
32
|
+
unless RUBY_VERSION == '1.8.6'
|
33
|
+
require 'cucumber/rake/task'
|
34
|
+
Cucumber::Rake::Task.new
|
35
|
+
end
|
30
36
|
|
31
37
|
task :default => [:spec, :cucumber]
|
32
38
|
|
@@ -40,11 +46,16 @@ namespace :ci do
|
|
40
46
|
|
41
47
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
42
48
|
t.verbose = true
|
49
|
+
t.ruby_opts = "-w -r./spec/capture_warnings"
|
50
|
+
# I'm not sure why, but bundler seems to silence warnings...
|
51
|
+
t.skip_bundler = true
|
43
52
|
t.rspec_opts = %w[--format progress --backtrace]
|
44
53
|
end
|
45
54
|
|
55
|
+
ci_tasks = [:setup, :spec]
|
56
|
+
ci_tasks << :cucumber if %w[ 1.8.7 1.9.2 1.9.3 ].include?(RUBY_VERSION) && (!defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby')
|
46
57
|
desc "Run a ci build"
|
47
|
-
task :build =>
|
58
|
+
task :build => ci_tasks
|
48
59
|
end
|
49
60
|
|
50
61
|
def ensure_relish_doc_symlinked(filename)
|
@@ -86,3 +97,11 @@ task :release => [:require_ruby_18, :prep_relish_release, :relish]
|
|
86
97
|
|
87
98
|
# For gem-test: http://gem-testers.org/
|
88
99
|
task :test => :spec
|
100
|
+
|
101
|
+
task :fix_should_eq do
|
102
|
+
Dir["spec/**/*.rb"].each do |spec_file|
|
103
|
+
contents = File.read(spec_file)
|
104
|
+
contents.gsub!(/should == (.*)$/, 'should eq(\1)')
|
105
|
+
File.open(spec_file, 'w') { |f| f.write(contents) }
|
106
|
+
end
|
107
|
+
end
|
data/cucumber.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
|
3
|
-
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || '
|
4
|
-
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || '
|
3
|
+
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'Cucumber::Formatter::Fuubar'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
|
4
|
+
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'Cucumber::Formatter::Fuubar'} --strict --tags ~@wip"
|
5
5
|
interp_opts = if defined?(RUBY_ENGINE)
|
6
6
|
" --tags ~@exclude-#{RUBY_ENGINE}"
|
7
7
|
else
|
@@ -52,7 +52,7 @@ Feature: Automatic Re-recording
|
|
52
52
|
|
53
53
|
Scenario: Cassette is not re-recorded when not enough time has passed
|
54
54
|
Given 6 days have passed since the cassette was recorded
|
55
|
-
When I run
|
55
|
+
When I run `ruby re_record.rb`
|
56
56
|
Then the output should contain "Old Response"
|
57
57
|
But the output should not contain "New Response"
|
58
58
|
And the file "cassettes/example.yml" should contain "body: Old Response"
|
@@ -60,7 +60,7 @@ Feature: Automatic Re-recording
|
|
60
60
|
|
61
61
|
Scenario: Cassette is re-recorded when enough time has passed
|
62
62
|
Given 8 days have passed since the cassette was recorded
|
63
|
-
When I run
|
63
|
+
When I run `ruby re_record.rb`
|
64
64
|
Then the output should contain "New Response"
|
65
65
|
But the output should not contain "Old Response"
|
66
66
|
And the file "cassettes/example.yml" should contain "body: New Response"
|
@@ -46,7 +46,7 @@ Feature: Dynamic ERB cassettes
|
|
46
46
|
puts "Response: #{response.body}"
|
47
47
|
end
|
48
48
|
"""
|
49
|
-
When I run
|
49
|
+
When I run `ruby dynamic_erb_example.rb`
|
50
50
|
Then it should pass with "Response: Hello bas"
|
51
51
|
|
52
52
|
Scenario: Pass arguments to the ERB using :erb => { ... }
|
@@ -86,5 +86,5 @@ Feature: Dynamic ERB cassettes
|
|
86
86
|
puts "Response: #{response.body}"
|
87
87
|
end
|
88
88
|
"""
|
89
|
-
When I run
|
89
|
+
When I run `ruby dynamic_erb_example.rb`
|
90
90
|
Then it should pass with "Response: Hello baz"
|
@@ -40,7 +40,7 @@ Feature: Cassette format
|
|
40
40
|
make_http_request(:get, "http://localhost:7777/bar")
|
41
41
|
end
|
42
42
|
"""
|
43
|
-
When I run
|
43
|
+
When I run `ruby cassette_format.rb 'Hello'`
|
44
44
|
Then the file "cassettes/example.yml" should contain YAML like:
|
45
45
|
"""
|
46
46
|
---
|
@@ -34,7 +34,7 @@ Feature: Error for HTTP request made when no cassette is in use
|
|
34
34
|
|
35
35
|
response_body_for(:get, 'http://example.com/')
|
36
36
|
"""
|
37
|
-
When I run
|
37
|
+
When I run `ruby no_cassette_error.rb`
|
38
38
|
Then it should fail with "<error>"
|
39
39
|
And the output should contain each of the following:
|
40
40
|
| You can use VCR to automatically record this request and replay it later. |
|
@@ -85,7 +85,7 @@ Feature: Error for HTTP request made when no cassette is in use
|
|
85
85
|
VCR.turn_on!
|
86
86
|
make_request "After calling VCR.turn_on!"
|
87
87
|
"""
|
88
|
-
When I run
|
88
|
+
When I run `ruby turn_off_vcr.rb`
|
89
89
|
Then the output should contain:
|
90
90
|
"""
|
91
91
|
In VCR.turned_off block
|
@@ -119,7 +119,7 @@ Feature: Error for HTTP request made when no cassette is in use
|
|
119
119
|
VCR.turn_off!
|
120
120
|
VCR.insert_cassette('example')
|
121
121
|
"""
|
122
|
-
When I run
|
122
|
+
When I run `ruby turn_off_vcr_and_insert_cassette.rb`
|
123
123
|
Then it should fail with "VCR is turned off. You must turn it on before you can insert a cassette."
|
124
124
|
|
125
125
|
Scenario: Turning VCR off with `:ignore_cassettes => true` ignores cassettes
|
@@ -145,7 +145,7 @@ Feature: Error for HTTP request made when no cassette is in use
|
|
145
145
|
puts "Response: #{response}"
|
146
146
|
end
|
147
147
|
"""
|
148
|
-
When I run
|
148
|
+
When I run `ruby turn_off_vcr_and_insert_cassette.rb`
|
149
149
|
Then it should pass with "Response: Hello"
|
150
150
|
And the file "cassettes/example.yml" should not exist
|
151
151
|
|
@@ -79,7 +79,7 @@ Feature: Request matching
|
|
79
79
|
puts response_body_for(:get, 'http://example.com/foo')
|
80
80
|
end
|
81
81
|
"""
|
82
|
-
When I run
|
82
|
+
When I run `ruby rotate_responses.rb`
|
83
83
|
Then it should pass with:
|
84
84
|
"""
|
85
85
|
Response 1
|
@@ -149,7 +149,7 @@ Feature: Request matching
|
|
149
149
|
puts response_body_for(:put, "http://bar.com/foo?date=#{Date.today.to_s}")
|
150
150
|
end
|
151
151
|
"""
|
152
|
-
When I run
|
152
|
+
When I run `ruby host_path_matching.rb`
|
153
153
|
Then it should pass with:
|
154
154
|
"""
|
155
155
|
foo.com response
|
@@ -223,7 +223,7 @@ Feature: Request matching
|
|
223
223
|
puts response_body_for(:post, "http://example.com/", 'a=1')
|
224
224
|
end
|
225
225
|
"""
|
226
|
-
When I run
|
226
|
+
When I run `ruby body_matching.rb`
|
227
227
|
Then it should pass with:
|
228
228
|
"""
|
229
229
|
a=2 response
|
@@ -296,7 +296,7 @@ Feature: Request matching
|
|
296
296
|
puts response_body_for(:get, "http://example.com/dashboard", nil, 'X-User-Id' => '17')
|
297
297
|
end
|
298
298
|
"""
|
299
|
-
When I run
|
299
|
+
When I run `ruby header_matching.rb`
|
300
300
|
Then it should pass with:
|
301
301
|
"""
|
302
302
|
user 42 response
|
@@ -365,7 +365,7 @@ Feature: Request matching
|
|
365
365
|
puts response_body_for(:get, "http://bar.com/foo?date=#{Date.today.to_s}")
|
366
366
|
end
|
367
367
|
"""
|
368
|
-
When I run
|
368
|
+
When I run `ruby uri_regex_matching.rb`
|
369
369
|
Then it should pass with:
|
370
370
|
"""
|
371
371
|
foo.com response
|
@@ -65,7 +65,7 @@ Feature: Update content_length header
|
|
65
65
|
make_request_and_print_results
|
66
66
|
end
|
67
67
|
"""
|
68
|
-
When I run
|
68
|
+
When I run `ruby default.rb`
|
69
69
|
Then the output should contain:
|
70
70
|
"""
|
71
71
|
Body length: 16
|
@@ -81,7 +81,7 @@ Feature: Update content_length header
|
|
81
81
|
make_request_and_print_results
|
82
82
|
end
|
83
83
|
"""
|
84
|
-
When I run
|
84
|
+
When I run `ruby false.rb`
|
85
85
|
Then the output should contain:
|
86
86
|
"""
|
87
87
|
Body length: 16
|
@@ -97,7 +97,7 @@ Feature: Update content_length header
|
|
97
97
|
make_request_and_print_results
|
98
98
|
end
|
99
99
|
"""
|
100
|
-
When I run
|
100
|
+
When I run `ruby true.rb`
|
101
101
|
Then the output should contain:
|
102
102
|
"""
|
103
103
|
Body length: 16
|
@@ -33,7 +33,7 @@ Feature: Allow HTTP connections when no cassette
|
|
33
33
|
|
34
34
|
puts "Response: " + Net::HTTP.get_response('localhost', '/', 7777).body
|
35
35
|
"""
|
36
|
-
When I run
|
36
|
+
When I run `ruby no_cassette.rb --with-server`
|
37
37
|
Then the output should contain "Response: Hello"
|
38
38
|
|
39
39
|
Scenario: Cassettes record and replay as normal
|
@@ -45,10 +45,10 @@ Feature: Allow HTTP connections when no cassette
|
|
45
45
|
puts "Response: " + Net::HTTP.get_response('localhost', '/', 7777).body
|
46
46
|
end
|
47
47
|
"""
|
48
|
-
When I run
|
48
|
+
When I run `ruby record_replay_cassette.rb --with-server`
|
49
49
|
Then the output should contain "Response: Hello"
|
50
50
|
And the file "cassettes/localhost.yml" should contain "body: Hello"
|
51
51
|
|
52
|
-
When I run
|
52
|
+
When I run `ruby record_replay_cassette.rb`
|
53
53
|
Then the output should contain "Response: Hello"
|
54
54
|
|
@@ -31,7 +31,7 @@ Feature: default_cassette_options
|
|
31
31
|
puts "ERB: #{VCR.current_cassette.erb}"
|
32
32
|
end
|
33
33
|
"""
|
34
|
-
When I run
|
34
|
+
When I run `ruby default_cassette_options.rb`
|
35
35
|
Then the output should contain:
|
36
36
|
"""
|
37
37
|
Record Mode: new_episodes
|
@@ -47,7 +47,7 @@ Feature: default_cassette_options
|
|
47
47
|
puts "Match Requests On: #{VCR.current_cassette.match_requests_on.inspect}"
|
48
48
|
end
|
49
49
|
"""
|
50
|
-
When I run
|
50
|
+
When I run `ruby default_cassette_options.rb`
|
51
51
|
Then the output should contain "Match Requests On: [:method, :uri]"
|
52
52
|
|
53
53
|
Scenario: `:record` defaults to `:once` when it has not been set
|
@@ -65,7 +65,7 @@ Feature: default_cassette_options
|
|
65
65
|
puts "Record mode: #{VCR.current_cassette.record_mode.inspect}"
|
66
66
|
end
|
67
67
|
"""
|
68
|
-
When I run
|
68
|
+
When I run `ruby default_record_mode.rb`
|
69
69
|
Then the output should contain "Record mode: :once"
|
70
70
|
|
71
71
|
Scenario: cassettes can set their own options
|
@@ -77,7 +77,7 @@ Feature: default_cassette_options
|
|
77
77
|
puts "Re-record Interval: #{VCR.current_cassette.re_record_interval}"
|
78
78
|
end
|
79
79
|
"""
|
80
|
-
When I run
|
80
|
+
When I run `ruby default_cassette_options.rb`
|
81
81
|
Then the output should contain "Re-record Interval: 10000"
|
82
82
|
|
83
83
|
Scenario: cassettes can override default options
|
@@ -90,7 +90,7 @@ Feature: default_cassette_options
|
|
90
90
|
puts "ERB: #{VCR.current_cassette.erb}"
|
91
91
|
end
|
92
92
|
"""
|
93
|
-
When I run
|
93
|
+
When I run `ruby default_cassette_options.rb`
|
94
94
|
Then the output should contain:
|
95
95
|
"""
|
96
96
|
Record Mode: none
|
@@ -48,13 +48,13 @@ Feature: Filter sensitive data
|
|
48
48
|
puts "Response: #{response.body}"
|
49
49
|
end
|
50
50
|
"""
|
51
|
-
When I run
|
51
|
+
When I run `ruby filtering.rb --with-server`
|
52
52
|
Then the output should contain "Response: Hello World"
|
53
53
|
And the file "cassettes/filtering.yml" should contain "body: <GREETING> <LOCATION>"
|
54
54
|
And the file "cassettes/filtering.yml" should not contain "Hello"
|
55
55
|
And the file "cassettes/filtering.yml" should not contain "World"
|
56
56
|
|
57
|
-
When I run
|
57
|
+
When I run `ruby filtering.rb`
|
58
58
|
Then the output should contain "Hello World"
|
59
59
|
|
60
60
|
Scenario: Filter tagged cassettes
|
@@ -87,14 +87,14 @@ Feature: Filter sensitive data
|
|
87
87
|
puts "Untagged Response: #{response.body}"
|
88
88
|
end
|
89
89
|
"""
|
90
|
-
When I run
|
90
|
+
When I run `ruby tagged_filtering.rb --with-server`
|
91
91
|
Then the output should contain each of the following:
|
92
92
|
| Tagged Response: Hello World 1 |
|
93
93
|
| Untagged Response: Hello World 2 |
|
94
94
|
And the file "cassettes/tagged.yml" should contain "body: Hello <LOCATION> 1"
|
95
95
|
And the file "cassettes/untagged.yml" should contain "body: Hello World 2"
|
96
96
|
|
97
|
-
When I run
|
97
|
+
When I run `ruby tagged_filtering.rb`
|
98
98
|
Then the output should contain each of the following:
|
99
99
|
| Tagged Response: Hello World 1 |
|
100
100
|
| Untagged Response: Hello World 2 |
|
@@ -141,7 +141,7 @@ Feature: Filter sensitive data
|
|
141
141
|
)
|
142
142
|
end
|
143
143
|
"""
|
144
|
-
When I run
|
144
|
+
When I run `ruby dynamic_filtering.rb --with-server`
|
145
145
|
Then the output should contain "john.doe/monkey"
|
146
146
|
And the file "cassettes/example.yml" should contain "body: john.doe/<PASSWORD>"
|
147
147
|
And the file "cassettes/example.yml" should contain a YAML fragment like:
|
@@ -150,5 +150,5 @@ Feature: Filter sensitive data
|
|
150
150
|
- <PASSWORD>
|
151
151
|
"""
|
152
152
|
|
153
|
-
When I run
|
153
|
+
When I run `ruby dynamic_filtering.rb`
|
154
154
|
Then the output should contain "john.doe/monkey"
|
@@ -83,7 +83,7 @@ Feature: Hooks
|
|
83
83
|
Net::HTTP.get_response('localhost', '/', 7777)
|
84
84
|
end
|
85
85
|
"""
|
86
|
-
When I run
|
86
|
+
When I run `ruby before_record_example.rb`
|
87
87
|
Then the file "cassettes/recording_example.yml" should contain "body: Hello World"
|
88
88
|
And the file "cassettes/recording_example.yml" should not contain "secret"
|
89
89
|
|
@@ -109,7 +109,7 @@ Feature: Hooks
|
|
109
109
|
puts "Response: #{response.body}"
|
110
110
|
end
|
111
111
|
"""
|
112
|
-
When I run
|
112
|
+
When I run `ruby before_record_ignore.rb`
|
113
113
|
Then it should pass with "Response: Hello World"
|
114
114
|
And the file "cassettes/recording_example.yml" should not exist
|
115
115
|
|
@@ -132,7 +132,7 @@ Feature: Hooks
|
|
132
132
|
puts "Response: #{response.body}"
|
133
133
|
end
|
134
134
|
"""
|
135
|
-
When I run
|
135
|
+
When I run `ruby before_playback_example.rb`
|
136
136
|
Then it should pass with "Response: response from before_playback"
|
137
137
|
|
138
138
|
Scenario: Prevent playback by ignoring interaction in before_playback hook
|
@@ -178,7 +178,7 @@ Feature: Hooks
|
|
178
178
|
puts "Response: #{response.body}"
|
179
179
|
end
|
180
180
|
"""
|
181
|
-
When I run
|
181
|
+
When I run `ruby before_playback_ignore.rb`
|
182
182
|
Then it should pass with "Response: sinatra response"
|
183
183
|
|
184
184
|
Scenario: Multiple hooks are run in order
|
@@ -211,7 +211,7 @@ Feature: Hooks
|
|
211
211
|
puts "Response 2: #{response.body}"
|
212
212
|
end
|
213
213
|
"""
|
214
|
-
When I run
|
214
|
+
When I run `ruby multiple_hooks.rb`
|
215
215
|
Then it should pass with:
|
216
216
|
"""
|
217
217
|
In before_playback hook 1
|
@@ -254,7 +254,7 @@ Feature: Hooks
|
|
254
254
|
end
|
255
255
|
end
|
256
256
|
"""
|
257
|
-
When I run
|
257
|
+
When I run `ruby tagged_hooks.rb`
|
258
258
|
Then it should pass with:
|
259
259
|
"""
|
260
260
|
Using tag: :tag_1
|