Skip to content

Commit

Permalink
Merge debb44e into c485494
Browse files Browse the repository at this point in the history
  • Loading branch information
Aryk committed Jul 3, 2017
2 parents c485494 + debb44e commit 2f0297a
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 26 deletions.
17 changes: 9 additions & 8 deletions lib/minitest-vcr/spec.rb
Expand Up @@ -3,23 +3,24 @@

module MinitestVcr
module Spec

def self.configure!
run_before = lambda do |example|
module SetupAndTeardown
def setup
super
if metadata[:vcr]
options = metadata[:vcr].is_a?(Hash) ? metadata[:vcr] : {}
VCR.insert_cassette StringHelpers.vcr_path(example), options
VCR.insert_cassette StringHelpers.vcr_path(self), options
end
end

run_after = lambda do |example|
def teardown
super
::VCR.eject_cassette if metadata[:vcr]
end

::MiniTest::Spec.before :each, &run_before
::MiniTest::Spec.after :each, &run_after
end

def self.configure!
::MiniTest::Spec.send(:include, SetupAndTeardown)
end
end # Spec

module StringHelpers
Expand Down
2 changes: 1 addition & 1 deletion minitest-vcr.gemspec
Expand Up @@ -28,5 +28,5 @@ Gem::Specification.new do |spec|
spec.add_development_dependency "faraday", "~> 0.9"
spec.add_development_dependency "rubygems-tasks", "~> 0.2"
spec.add_development_dependency "yard", "~> 0.8"
spec.add_development_dependency "webmock", "~> 1.17"
spec.add_development_dependency "webmock"
end

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 2 additions & 6 deletions test/minitest-vcr/spec_test.rb
Expand Up @@ -43,13 +43,9 @@

describe "#configure!", :vcr do

before do
::MiniTest::Spec.expects(:before).with(:each)
::MiniTest::Spec.expects(:after).with(:each)
end

it "should call before and after with proper args and block" do
it "should include setup and teardown module into Minitest::Spec" do
MinitestVcr::Spec.configure!
Minitest::Spec.included_modules.must_include(MinitestVcr::Spec::SetupAndTeardown)
end
end
end

0 comments on commit 2f0297a

Please sign in to comment.