vcr 1.11.1 → 1.11.2
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.
- 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
|