vcr 2.4.0 → 2.5.0
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 +15 -0
- data/.gitignore +3 -0
- data/.travis.yml +2 -0
- data/CHANGELOG.md +31 -0
- data/Gemfile +1 -2
- data/Gemfile.lock +63 -46
- data/README.md +5 -2
- data/features/cassettes/allow_unused_http_interactions.feature +1 -1
- data/features/cassettes/automatic_re_recording.feature +1 -1
- data/features/cassettes/decompress.feature +3 -3
- data/features/cassettes/dynamic_erb.feature +2 -2
- data/features/cassettes/exclusive.feature +1 -1
- data/features/cassettes/naming.feature +1 -1
- data/features/cassettes/no_cassette.feature +6 -3
- data/features/cassettes/persistence.feature +1 -1
- data/features/cassettes/update_content_length_header.feature +1 -1
- data/features/configuration/allow_http_connections_when_no_cassette.feature +1 -1
- data/features/configuration/cassette_library_dir.feature +1 -1
- data/features/configuration/debug_logging.feature +5 -5
- data/features/configuration/filter_sensitive_data.feature +2 -2
- data/features/configuration/hook_into.feature +4 -7
- data/features/getting_started.md +2 -2
- data/features/hooks/before_playback.feature +5 -5
- data/features/hooks/before_record.feature +5 -5
- data/features/middleware/rack.feature +2 -2
- data/features/record_modes/all.feature +1 -1
- data/features/record_modes/new_episodes.feature +1 -1
- data/features/record_modes/none.feature +1 -1
- data/features/record_modes/once.feature +1 -1
- data/features/request_matching/custom_matcher.feature +1 -1
- data/features/request_matching/headers.feature +0 -2
- data/features/request_matching/playback_repeats.feature +1 -1
- data/features/request_matching/uri_without_param.feature +1 -1
- data/features/support/env.rb +1 -0
- data/features/test_frameworks/cucumber.feature +8 -8
- data/features/test_frameworks/rspec_macro.feature +2 -2
- data/features/test_frameworks/rspec_metadata.feature +1 -1
- data/gemfiles/typhoeus_old.gemfile +1 -1
- data/gemfiles/typhoeus_old.gemfile.lock +31 -57
- data/lib/vcr/cassette/migrator.rb +8 -1
- data/lib/vcr/configuration.rb +9 -2
- data/lib/vcr/library_hooks/excon.rb +2 -184
- data/lib/vcr/library_hooks/typhoeus.rb +1 -1
- data/lib/vcr/library_hooks/typhoeus_0.4.rb +4 -0
- data/lib/vcr/library_hooks/webmock.rb +1 -1
- data/lib/vcr/middleware/excon.rb +226 -0
- data/lib/vcr/version.rb +1 -1
- data/spec/acceptance/threading_spec.rb +28 -0
- data/spec/monkey_patches.rb +3 -7
- data/spec/quality_spec.rb +1 -1
- data/spec/spec_helper.rb +7 -4
- data/spec/support/http_library_adapters.rb +4 -3
- data/spec/support/shared_example_groups/excon.rb +22 -0
- data/spec/support/shared_example_groups/hook_into_http_library.rb +46 -46
- data/spec/support/shared_example_groups/request_hooks.rb +8 -8
- data/spec/vcr/cassette/erb_renderer_spec.rb +5 -5
- data/spec/vcr/cassette/http_interaction_list_spec.rb +52 -40
- data/spec/vcr/cassette/migrator_spec.rb +11 -11
- data/spec/vcr/cassette/persisters/file_system_spec.rb +11 -11
- data/spec/vcr/cassette/persisters_spec.rb +2 -2
- data/spec/vcr/cassette/serializers_spec.rb +13 -12
- data/spec/vcr/cassette_spec.rb +58 -58
- data/spec/vcr/configuration_spec.rb +43 -31
- data/spec/vcr/deprecations_spec.rb +3 -3
- data/spec/vcr/errors_spec.rb +25 -25
- data/spec/vcr/extensions/net_http_response_spec.rb +7 -7
- data/spec/vcr/library_hooks/excon_spec.rb +7 -85
- data/spec/vcr/library_hooks/fakeweb_spec.rb +15 -13
- data/spec/vcr/library_hooks/faraday_spec.rb +4 -4
- data/spec/vcr/library_hooks/typhoeus_0.4_spec.rb +5 -0
- data/spec/vcr/library_hooks/typhoeus_spec.rb +3 -3
- data/spec/vcr/library_hooks/webmock_spec.rb +13 -5
- data/spec/vcr/library_hooks_spec.rb +9 -9
- data/spec/vcr/middleware/faraday_spec.rb +10 -10
- data/spec/vcr/middleware/rack_spec.rb +20 -15
- data/spec/vcr/request_ignorer_spec.rb +3 -3
- data/spec/vcr/request_matcher_registry_spec.rb +88 -61
- data/spec/vcr/structs_spec.rb +85 -85
- data/spec/vcr/test_frameworks/cucumber_spec.rb +7 -7
- data/spec/vcr/test_frameworks/rspec_spec.rb +10 -10
- data/spec/vcr/util/hooks_spec.rb +20 -20
- data/spec/vcr/util/internet_connection_spec.rb +2 -2
- data/spec/vcr_spec.rb +50 -48
- data/vcr.gemspec +4 -4
- metadata +308 -372
@@ -21,13 +21,13 @@ describe VCR::CucumberTags do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_tag(cassette_attribute, tag, expected_value, scenario=current_scenario)
|
24
|
-
VCR.current_cassette.
|
24
|
+
expect(VCR.current_cassette).to be_nil
|
25
25
|
|
26
26
|
before_blocks_for_tags[tag].call(scenario)
|
27
|
-
VCR.current_cassette.send(cassette_attribute).
|
27
|
+
expect(VCR.current_cassette.send(cassette_attribute)).to eq(expected_value)
|
28
28
|
after_blocks_for_tags[tag].call(scenario)
|
29
29
|
|
30
|
-
VCR.current_cassette.
|
30
|
+
expect(VCR.current_cassette).to be_nil
|
31
31
|
end
|
32
32
|
|
33
33
|
%w(tags tag).each do |tag_method|
|
@@ -82,9 +82,9 @@ describe VCR::CucumberTags do
|
|
82
82
|
subject.send(tag_method, 'tag1', original_options)
|
83
83
|
before_blocks_for_tags['tag1'].call(current_scenario)
|
84
84
|
|
85
|
-
original_options.
|
86
|
-
original_options[:use_scenario_name].
|
87
|
-
original_options[:record].
|
85
|
+
expect(original_options).to have(2).items
|
86
|
+
expect(original_options[:use_scenario_name]).to eq(true)
|
87
|
+
expect(original_options[:record]).to eq(:none)
|
88
88
|
end
|
89
89
|
|
90
90
|
it "works properly when multiple scenarios use the tag" do
|
@@ -101,7 +101,7 @@ describe VCR::CucumberTags do
|
|
101
101
|
it 'returns the list of cucumber tags' do
|
102
102
|
subject.tags 'tag1', 'tag2'
|
103
103
|
subject.tags 'tag3', 'tag4'
|
104
|
-
described_class.tags[-4, 4].
|
104
|
+
expect(described_class.tags[-4, 4]).to eq(%w(@tag1 @tag2 @tag3 @tag4))
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
@@ -9,7 +9,7 @@ describe VCR::RSpec::Metadata, :skip_vcr_reset do
|
|
9
9
|
context 'an example group', :vcr do
|
10
10
|
context 'with a nested example group' do
|
11
11
|
it 'uses a cassette for any examples' do
|
12
|
-
VCR.current_cassette.name.split('/').
|
12
|
+
expect(VCR.current_cassette.name.split('/')).to eq([
|
13
13
|
'VCR::RSpec::Metadata',
|
14
14
|
'an example group',
|
15
15
|
'with a nested example group',
|
@@ -21,20 +21,20 @@ describe VCR::RSpec::Metadata, :skip_vcr_reset do
|
|
21
21
|
|
22
22
|
context 'with the cassette name overridden at the example group level', :vcr => { :cassette_name => 'foo' } do
|
23
23
|
it 'overrides the cassette name for an example' do
|
24
|
-
VCR.current_cassette.name.
|
24
|
+
expect(VCR.current_cassette.name).to eq('foo')
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'overrides the cassette name for another example' do
|
28
|
-
VCR.current_cassette.name.
|
28
|
+
expect(VCR.current_cassette.name).to eq('foo')
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'allows the cassette name to be overriden', :vcr => { :cassette_name => 'foo' } do
|
33
|
-
VCR.current_cassette.name.
|
33
|
+
expect(VCR.current_cassette.name).to eq('foo')
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'allows the cassette options to be set', :vcr => { :match_requests_on => [:method] } do
|
37
|
-
VCR.current_cassette.match_requests_on.
|
37
|
+
expect(VCR.current_cassette.match_requests_on).to eq([:method])
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -46,18 +46,18 @@ describe VCR::RSpec::Macros do
|
|
46
46
|
context context_name do
|
47
47
|
after(:each) do
|
48
48
|
if example.metadata[:test_ejection]
|
49
|
-
VCR.current_cassette.
|
49
|
+
expect(VCR.current_cassette).to be_nil
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
53
|
use_vcr_cassette(*args)
|
54
54
|
|
55
55
|
it 'ejects the cassette in an after hook', :test_ejection do
|
56
|
-
VCR.current_cassette.
|
56
|
+
expect(VCR.current_cassette).to be_a(VCR::Cassette)
|
57
57
|
end
|
58
58
|
|
59
59
|
it "creates a cassette named '#{expected_cassette_name}" do
|
60
|
-
VCR.current_cassette.name.
|
60
|
+
expect(VCR.current_cassette.name).to eq(expected_cassette_name)
|
61
61
|
end
|
62
62
|
|
63
63
|
module_eval(&block) if block
|
@@ -68,7 +68,7 @@ describe VCR::RSpec::Macros do
|
|
68
68
|
|
69
69
|
perform_test 'when called with an explicit name and some options', 'explicit_name', 'explicit_name', :match_requests_on => [:method, :host] do
|
70
70
|
it 'uses the provided cassette options' do
|
71
|
-
VCR.current_cassette.match_requests_on.
|
71
|
+
expect(VCR.current_cassette.match_requests_on).to eq([:method, :host])
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
@@ -76,7 +76,7 @@ describe VCR::RSpec::Macros do
|
|
76
76
|
|
77
77
|
perform_test 'when called with some options', 'VCR::RSpec::Macros/#use_vcr_cassette/when called with some options', :match_requests_on => [:method, :host] do
|
78
78
|
it 'uses the provided cassette options' do
|
79
|
-
VCR.current_cassette.match_requests_on.
|
79
|
+
expect(VCR.current_cassette.match_requests_on).to eq([:method, :host])
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
data/spec/vcr/util/hooks_spec.rb
CHANGED
@@ -6,21 +6,21 @@ describe VCR::Hooks::FilteredHook do
|
|
6
6
|
called = false
|
7
7
|
subject.hook = lambda { called = true }
|
8
8
|
subject.conditionally_invoke
|
9
|
-
called.
|
9
|
+
expect(called).to be_true
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'forwards the given arguments to the hook' do
|
13
13
|
args = nil
|
14
14
|
subject.hook = lambda { |a, b| args = [a, b] }
|
15
15
|
subject.conditionally_invoke(3, 5)
|
16
|
-
args.
|
16
|
+
expect(args).to eq([3, 5])
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'forwards only as many arguments as the hook block accepts' do
|
20
20
|
args = nil
|
21
21
|
subject.hook = lambda { |a| args = [a] }
|
22
22
|
subject.conditionally_invoke(3, 5)
|
23
|
-
args.
|
23
|
+
expect(args).to eq([3])
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'does not invoke the hook if all of the filters return false' do
|
@@ -28,7 +28,7 @@ describe VCR::Hooks::FilteredHook do
|
|
28
28
|
subject.hook = lambda { called = true }
|
29
29
|
subject.filters = lambda { false }
|
30
30
|
subject.conditionally_invoke
|
31
|
-
called.
|
31
|
+
expect(called).to be_false
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'does not invoke the hook if any of the filters returns false' do
|
@@ -36,21 +36,21 @@ describe VCR::Hooks::FilteredHook do
|
|
36
36
|
subject.hook = lambda { called = true }
|
37
37
|
subject.filters = [lambda { false }, lambda { true }]
|
38
38
|
subject.conditionally_invoke
|
39
|
-
called.
|
39
|
+
expect(called).to be_false
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'forwards arguments to the filters' do
|
43
43
|
filter_args = nil
|
44
44
|
subject.filters = lambda { |a, b| filter_args = [a, b]; false }
|
45
45
|
subject.conditionally_invoke(3, 5)
|
46
|
-
filter_args.
|
46
|
+
expect(filter_args).to eq([3, 5])
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'handles splat args properly' do
|
50
50
|
filter_args = nil
|
51
51
|
subject.filters = lambda { |*args| filter_args = args; false }
|
52
52
|
subject.conditionally_invoke(3, 5)
|
53
|
-
filter_args.
|
53
|
+
expect(filter_args).to eq([3, 5])
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'forwards only as many arguments as the filter blocks accept' do
|
@@ -61,8 +61,8 @@ describe VCR::Hooks::FilteredHook do
|
|
61
61
|
]
|
62
62
|
|
63
63
|
subject.conditionally_invoke(3, 5)
|
64
|
-
args1.
|
65
|
-
args2.
|
64
|
+
expect(args1).to eq([3])
|
65
|
+
expect(args2).to eq([3, 5])
|
66
66
|
end
|
67
67
|
|
68
68
|
it '#to_procs the filter objects' do
|
@@ -70,7 +70,7 @@ describe VCR::Hooks::FilteredHook do
|
|
70
70
|
subject.hook = lambda { }
|
71
71
|
subject.filters = [stub(:to_proc => lambda { filter_called = true })]
|
72
72
|
subject.conditionally_invoke
|
73
|
-
filter_called.
|
73
|
+
expect(filter_called).to be_true
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
@@ -99,7 +99,7 @@ describe VCR::Hooks do
|
|
99
99
|
end
|
100
100
|
|
101
101
|
subject.before_foo { }
|
102
|
-
override_called.
|
102
|
+
expect(override_called).to be_true
|
103
103
|
end
|
104
104
|
|
105
105
|
describe '#clear_hooks' do
|
@@ -107,7 +107,7 @@ describe VCR::Hooks do
|
|
107
107
|
subject.before_foo { invocations << :callback }
|
108
108
|
subject.clear_hooks
|
109
109
|
subject.invoke_hook(:before_foo)
|
110
|
-
invocations.
|
110
|
+
expect(invocations).to be_empty
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
@@ -116,42 +116,42 @@ describe VCR::Hooks do
|
|
116
116
|
subject.before_foo { invocations << :callback_1 }
|
117
117
|
subject.before_foo { invocations << :callback_2 }
|
118
118
|
|
119
|
-
invocations.
|
119
|
+
expect(invocations).to be_empty
|
120
120
|
subject.invoke_hook(:before_foo)
|
121
|
-
invocations.
|
121
|
+
expect(invocations).to eq([:callback_1, :callback_2])
|
122
122
|
end
|
123
123
|
|
124
124
|
it 'maps the return value of each callback' do
|
125
125
|
subject.before_foo { 17 }
|
126
126
|
subject.before_foo { 12 }
|
127
|
-
subject.invoke_hook(:before_foo).
|
127
|
+
expect(subject.invoke_hook(:before_foo)).to eq([17, 12])
|
128
128
|
end
|
129
129
|
|
130
130
|
it 'does not invoke any filtered callbacks' do
|
131
131
|
subject.before_foo(:real?) { invocations << :blue_callback }
|
132
132
|
subject.invoke_hook(:before_foo, stub(:real? => false))
|
133
|
-
invocations.
|
133
|
+
expect(invocations).to be_empty
|
134
134
|
end
|
135
135
|
|
136
136
|
it 'invokes them in reverse order if the hook was defined with :prepend' do
|
137
137
|
subject.before_bar { 17 }
|
138
138
|
subject.before_bar { 12 }
|
139
|
-
subject.invoke_hook(:before_bar).
|
139
|
+
expect(subject.invoke_hook(:before_bar)).to eq([12, 17])
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
143
|
describe "#has_hooks_for?" do
|
144
144
|
it 'returns false when given an unrecognized hook name' do
|
145
|
-
subject.
|
145
|
+
expect(subject).not_to have_hooks_for(:abcd)
|
146
146
|
end
|
147
147
|
|
148
148
|
it 'returns false when given the name of a defined hook that has no registered callbacks' do
|
149
|
-
subject.
|
149
|
+
expect(subject).not_to have_hooks_for(:before_foo)
|
150
150
|
end
|
151
151
|
|
152
152
|
it 'returns true when given the name of a defined hook that has registered callbacks' do
|
153
153
|
subject.before_foo { }
|
154
|
-
subject.
|
154
|
+
expect(subject).to have_hooks_for(:before_foo)
|
155
155
|
end
|
156
156
|
end
|
157
157
|
end
|
@@ -13,7 +13,7 @@ describe VCR::InternetConnection do
|
|
13
13
|
context 'when pinging example.com succeeds' do
|
14
14
|
it 'returns true' do
|
15
15
|
stub_pingecho_with(true)
|
16
|
-
described_class.
|
16
|
+
expect(described_class).to be_available
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'memoizes the value so no extra pings are made' do
|
@@ -25,7 +25,7 @@ describe VCR::InternetConnection do
|
|
25
25
|
context 'when pinging example.com fails' do
|
26
26
|
it 'returns false' do
|
27
27
|
stub_pingecho_with(false)
|
28
|
-
described_class.
|
28
|
+
expect(described_class).not_to be_available
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'memoizes the value so no extra pings are made' do
|
data/spec/vcr_spec.rb
CHANGED
@@ -7,14 +7,14 @@ describe VCR do
|
|
7
7
|
|
8
8
|
describe '.insert_cassette' do
|
9
9
|
it 'creates a new cassette' do
|
10
|
-
insert_cassette.
|
10
|
+
expect(insert_cassette).to be_instance_of(VCR::Cassette)
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'takes over as the #current_cassette' do
|
14
14
|
orig_cassette = VCR.current_cassette
|
15
15
|
new_cassette = insert_cassette
|
16
|
-
new_cassette.
|
17
|
-
VCR.current_cassette.
|
16
|
+
expect(new_cassette).not_to eq(orig_cassette)
|
17
|
+
expect(VCR.current_cassette).to eq(new_cassette)
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'raises an error if the stack of inserted cassettes already contains a cassette with the same name' do
|
@@ -34,7 +34,7 @@ describe VCR do
|
|
34
34
|
|
35
35
|
it 'returns the ejected cassette' do
|
36
36
|
cassette = insert_cassette
|
37
|
-
VCR.eject_cassette.
|
37
|
+
expect(VCR.eject_cassette).to eq(cassette)
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'returns the #current_cassette to the previous one' do
|
@@ -49,15 +49,15 @@ describe VCR do
|
|
49
49
|
|
50
50
|
VCR.eject_cassette
|
51
51
|
|
52
|
-
current.
|
53
|
-
VCR.current_cassette.
|
52
|
+
expect(current).to be(cassette)
|
53
|
+
expect(VCR.current_cassette).not_to be(cassette)
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'properly pops the cassette off the stack even if an error occurs' do
|
57
57
|
cassette = insert_cassette
|
58
58
|
cassette.stub(:eject) { raise "boom" }
|
59
59
|
expect { VCR.eject_cassette }.to raise_error("boom")
|
60
|
-
VCR.current_cassette.
|
60
|
+
expect(VCR.current_cassette).to be_nil
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -71,19 +71,19 @@ describe VCR do
|
|
71
71
|
it 'yields' do
|
72
72
|
yielded = false
|
73
73
|
VCR.use_cassette(:cassette_test, &lambda { yielded = true })
|
74
|
-
yielded.
|
74
|
+
expect(yielded).to be_true
|
75
75
|
end
|
76
76
|
|
77
77
|
it 'yields the cassette instance if the block expects an argument' do
|
78
78
|
VCR.use_cassette('name', :record => :new_episodes, &lambda do |cassette|
|
79
|
-
cassette.
|
79
|
+
expect(cassette).to equal(VCR.current_cassette)
|
80
80
|
end)
|
81
81
|
end
|
82
82
|
|
83
83
|
it 'yields the cassette instance if the block expects a variable number of args' do
|
84
84
|
VCR.use_cassette('name', :record => :new_episodes) do |*args|
|
85
|
-
args.size.
|
86
|
-
args.first.
|
85
|
+
expect(args.size).to eq(1)
|
86
|
+
expect(args.first).to equal(VCR.current_cassette)
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -113,12 +113,12 @@ describe VCR do
|
|
113
113
|
describe '.http_interactions' do
|
114
114
|
it 'returns the current_cassette.http_interactions when there is a current cassette' do
|
115
115
|
cassette = VCR.insert_cassette("a cassette")
|
116
|
-
VCR.http_interactions.
|
116
|
+
expect(VCR.http_interactions).to be(cassette.http_interactions)
|
117
117
|
end
|
118
118
|
|
119
119
|
it 'returns a null list when there is no current cassette' do
|
120
|
-
VCR.current_cassette.
|
121
|
-
VCR.http_interactions.
|
120
|
+
expect(VCR.current_cassette).to be_nil
|
121
|
+
expect(VCR.http_interactions).to be(VCR::Cassette::HTTPInteractionList::NullList)
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
@@ -126,82 +126,84 @@ describe VCR do
|
|
126
126
|
context 'when a cassette is inserted' do
|
127
127
|
it 'returns true if the cassette is recording' do
|
128
128
|
VCR.insert_cassette('foo', :record => :all)
|
129
|
-
VCR.current_cassette.
|
130
|
-
VCR.real_http_connections_allowed
|
129
|
+
expect(VCR.current_cassette).to be_recording
|
130
|
+
expect(VCR.real_http_connections_allowed?).to be_true
|
131
131
|
end
|
132
132
|
|
133
133
|
it 'returns false if the cassette is not recording' do
|
134
134
|
VCR.insert_cassette('foo', :record => :none)
|
135
|
-
VCR.current_cassette.
|
136
|
-
VCR.real_http_connections_allowed
|
135
|
+
expect(VCR.current_cassette).not_to be_recording
|
136
|
+
expect(VCR.real_http_connections_allowed?).to be_false
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
140
|
context 'when no cassette is inserted' do
|
141
|
-
before(:each)
|
141
|
+
before(:each) do
|
142
|
+
expect(VCR.current_cassette).to be_nil
|
143
|
+
end
|
142
144
|
|
143
145
|
it 'returns true if the allow_http_connections_when_no_cassette option is set to true' do
|
144
|
-
VCR.
|
146
|
+
expect(VCR).to be_turned_on
|
145
147
|
VCR.configure { |c| c.allow_http_connections_when_no_cassette = true }
|
146
|
-
VCR.real_http_connections_allowed
|
148
|
+
expect(VCR.real_http_connections_allowed?).to be_true
|
147
149
|
end
|
148
150
|
|
149
151
|
it 'returns true if VCR is turned off' do
|
150
152
|
VCR.turn_off!
|
151
153
|
VCR.configure { |c| c.allow_http_connections_when_no_cassette = false }
|
152
|
-
VCR.real_http_connections_allowed
|
154
|
+
expect(VCR.real_http_connections_allowed?).to be_true
|
153
155
|
end
|
154
156
|
|
155
157
|
it 'returns false if the allow_http_connections_when_no_cassette option is set to false and VCR is turned on' do
|
156
|
-
VCR.
|
158
|
+
expect(VCR).to be_turned_on
|
157
159
|
VCR.configure { |c| c.allow_http_connections_when_no_cassette = false }
|
158
|
-
VCR.real_http_connections_allowed
|
160
|
+
expect(VCR.real_http_connections_allowed?).to be_false
|
159
161
|
end
|
160
162
|
end
|
161
163
|
end
|
162
164
|
|
163
165
|
describe '.request_matchers' do
|
164
166
|
it 'always returns the same memoized request matcher registry instance' do
|
165
|
-
VCR.request_matchers.
|
166
|
-
VCR.request_matchers.
|
167
|
+
expect(VCR.request_matchers).to be_a(VCR::RequestMatcherRegistry)
|
168
|
+
expect(VCR.request_matchers).to be(VCR.request_matchers)
|
167
169
|
end
|
168
170
|
end
|
169
171
|
|
170
172
|
describe '.request_ignorer' do
|
171
173
|
it 'always returns the same memoized request ignorer instance' do
|
172
|
-
VCR.request_ignorer.
|
173
|
-
VCR.request_ignorer.
|
174
|
+
expect(VCR.request_ignorer).to be_a(VCR::RequestIgnorer)
|
175
|
+
expect(VCR.request_ignorer).to be(VCR.request_ignorer)
|
174
176
|
end
|
175
177
|
end
|
176
178
|
|
177
179
|
describe '.library_hooks' do
|
178
180
|
it 'always returns the same memoized LibraryHooks instance' do
|
179
|
-
VCR.library_hooks.
|
180
|
-
VCR.library_hooks.
|
181
|
+
expect(VCR.library_hooks).to be_a(VCR::LibraryHooks)
|
182
|
+
expect(VCR.library_hooks).to be(VCR.library_hooks)
|
181
183
|
end
|
182
184
|
end
|
183
185
|
|
184
186
|
describe '.cassette_serializers' do
|
185
187
|
it 'always returns the same memoized cassette serializers instance' do
|
186
|
-
VCR.cassette_serializers.
|
187
|
-
VCR.cassette_serializers.
|
188
|
+
expect(VCR.cassette_serializers).to be_a(VCR::Cassette::Serializers)
|
189
|
+
expect(VCR.cassette_serializers).to be(VCR.cassette_serializers)
|
188
190
|
end
|
189
191
|
end
|
190
192
|
|
191
193
|
describe ".cassette_persisters" do
|
192
194
|
it "always returns the same memoized Cassette::Persisters instance" do
|
193
|
-
VCR.cassette_persisters.
|
194
|
-
VCR.cassette_persisters.
|
195
|
+
expect(VCR.cassette_persisters).to be_a(VCR::Cassette::Persisters)
|
196
|
+
expect(VCR.cassette_persisters).to be(VCR.cassette_persisters)
|
195
197
|
end
|
196
198
|
end
|
197
199
|
|
198
200
|
describe '.configuration' do
|
199
201
|
it 'returns the configuration object' do
|
200
|
-
VCR.configuration.
|
202
|
+
expect(VCR.configuration).to be_a(VCR::Configuration)
|
201
203
|
end
|
202
204
|
|
203
205
|
it 'memoizes the instance' do
|
204
|
-
VCR.configuration.
|
206
|
+
expect(VCR.configuration).to be(VCR.configuration)
|
205
207
|
end
|
206
208
|
end
|
207
209
|
|
@@ -211,7 +213,7 @@ describe VCR do
|
|
211
213
|
VCR.configure do |obj|
|
212
214
|
yielded_object = obj
|
213
215
|
end
|
214
|
-
yielded_object.
|
216
|
+
expect(yielded_object).to eq(VCR.configuration)
|
215
217
|
end
|
216
218
|
end
|
217
219
|
|
@@ -221,7 +223,7 @@ describe VCR do
|
|
221
223
|
VCR.cucumber_tags do |obj|
|
222
224
|
yielded_object = obj
|
223
225
|
end
|
224
|
-
yielded_object.
|
226
|
+
expect(yielded_object).to be_instance_of(VCR::CucumberTags)
|
225
227
|
end
|
226
228
|
end
|
227
229
|
|
@@ -259,7 +261,7 @@ describe VCR do
|
|
259
261
|
describe '.turn_off!' do
|
260
262
|
it 'indicates it is turned off' do
|
261
263
|
VCR.turn_off!
|
262
|
-
VCR.
|
264
|
+
expect(VCR).not_to be_turned_on
|
263
265
|
end
|
264
266
|
|
265
267
|
it 'raises an error if a cassette is in use' do
|
@@ -287,7 +289,7 @@ describe VCR do
|
|
287
289
|
|
288
290
|
it 'ignores cassette insertions' do
|
289
291
|
VCR.insert_cassette('foo')
|
290
|
-
VCR.current_cassette.
|
292
|
+
expect(VCR.current_cassette).to be_nil
|
291
293
|
end
|
292
294
|
|
293
295
|
it 'still runs a block passed to use_cassette' do
|
@@ -295,10 +297,10 @@ describe VCR do
|
|
295
297
|
|
296
298
|
VCR.use_cassette('foo') do
|
297
299
|
yielded = true
|
298
|
-
VCR.current_cassette.
|
300
|
+
expect(VCR.current_cassette).to be_nil
|
299
301
|
end
|
300
302
|
|
301
|
-
yielded.
|
303
|
+
expect(yielded).to be_true
|
302
304
|
end
|
303
305
|
end
|
304
306
|
end
|
@@ -308,22 +310,22 @@ describe VCR do
|
|
308
310
|
|
309
311
|
it 'indicates it is turned on' do
|
310
312
|
VCR.turn_on!
|
311
|
-
VCR.
|
313
|
+
expect(VCR).to be_turned_on
|
312
314
|
end
|
313
315
|
end
|
314
316
|
|
315
317
|
describe '.turned_off' do
|
316
318
|
it 'yields with VCR turned off' do
|
317
|
-
VCR.
|
319
|
+
expect(VCR).to be_turned_on
|
318
320
|
yielded = false
|
319
321
|
|
320
322
|
VCR.turned_off do
|
321
323
|
yielded = true
|
322
|
-
VCR.
|
324
|
+
expect(VCR).not_to be_turned_on
|
323
325
|
end
|
324
326
|
|
325
|
-
yielded.
|
326
|
-
VCR.
|
327
|
+
expect(yielded).to eq(true)
|
328
|
+
expect(VCR).to be_turned_on
|
327
329
|
end
|
328
330
|
|
329
331
|
it 'passes options through to .turn_off!' do
|
@@ -335,7 +337,7 @@ describe VCR do
|
|
335
337
|
describe '.turned_on?' do
|
336
338
|
it 'is on by default' do
|
337
339
|
VCR.send(:initialize_ivars) # clear internal state
|
338
|
-
VCR.
|
340
|
+
expect(VCR).to be_turned_on
|
339
341
|
end
|
340
342
|
end
|
341
343
|
end
|