1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
Feature: default_cassette_options
The `default_cassette_options` configuration option takes a hash
that provides defaults for each cassette you use. Any cassette
can override the defaults as well as set additional options.
The `:match_requests_on` option defaults to `[:method, :uri]` when
it has not been set.
The `:record` option defaults to `:once` when it has not been set.
Background:
Given a file named "vcr_setup.rb" with:
"""ruby
require 'vcr'
VCR.configure do |c|
c.default_cassette_options = { :record => :new_episodes, :erb => true }
# not important for this example, but must be set to something
c.hook_into :webmock
c.cassette_library_dir = 'cassettes'
end
"""
Scenario: cassettes get default values from configured `default_cassette_options`
Given a file named "default_cassette_options.rb" with:
"""ruby
require 'vcr_setup.rb'
VCR.use_cassette('example') do
puts "Record Mode: #{VCR.current_cassette.record_mode}"
puts "ERB: #{VCR.current_cassette.erb}"
end
"""
When I run `ruby default_cassette_options.rb`
Then the output should contain:
"""
Record Mode: new_episodes
ERB: true
"""
Scenario: `:match_requests_on` defaults to `[:method, :uri]` when it has not been set
Given a file named "default_cassette_options.rb" with:
"""ruby
require 'vcr_setup.rb'
VCR.use_cassette('example') do
puts "Match Requests On: #{VCR.current_cassette.match_requests_on.inspect}"
end
"""
When I run `ruby default_cassette_options.rb`
Then the output should contain "Match Requests On: [:method, :uri]"
Scenario: `:record` defaults to `:once` when it has not been set
Given a file named "default_record_mode.rb" with:
"""ruby
require 'vcr'
VCR.configure do |c|
# not important for this example, but must be set to something
c.hook_into :webmock
c.cassette_library_dir = 'cassettes'
end
VCR.use_cassette('example') do
puts "Record mode: #{VCR.current_cassette.record_mode.inspect}"
end
"""
When I run `ruby default_record_mode.rb`
Then the output should contain "Record mode: :once"
Scenario: cassettes can set their own options
Given a file named "default_cassette_options.rb" with:
"""ruby
require 'vcr_setup.rb'
VCR.use_cassette('example', :re_record_interval => 10000) do
puts "Re-record Interval: #{VCR.current_cassette.re_record_interval}"
end
"""
When I run `ruby default_cassette_options.rb`
Then the output should contain "Re-record Interval: 10000"
Scenario: cassettes can override default options
Given a file named "default_cassette_options.rb" with:
"""ruby
require 'vcr_setup.rb'
VCR.use_cassette('example', :record => :none, :erb => false) do
puts "Record Mode: #{VCR.current_cassette.record_mode}"
puts "ERB: #{VCR.current_cassette.erb}"
end
"""
When I run `ruby default_cassette_options.rb`
Then the output should contain:
"""
Record Mode: none
ERB: false
"""
|