Skip to content

Commit

Permalink
Merge pull request #114 from jeffdeville/ensure_clear_meck_executed
Browse files Browse the repository at this point in the history
!! Ensure clear_mock runs after each test
  • Loading branch information
parroty authored Jul 2, 2017
2 parents 76593d9 + 56ad563 commit 07a41cc
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
9 changes: 4 additions & 5 deletions lib/exvcr/mock.ex
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,11 @@ defmodule ExVCR.Mock do

try do
[do: return_value] = unquote(test)
return_value
after
if options_method()[:clear_mock] || unquote(options)[:clear_mock] do
:meck.unload(adapter_method().module_name)
end
return_value
after
# do nothing
end
end
end
Expand All @@ -59,11 +58,11 @@ defmodule ExVCR.Mock do

try do
[do: return_value] = unquote(test)
return_value
after
if options_method()[:clear_mock] || unquote(options)[:clear_mock] do
:meck.unload(adapter_method().module_name)
end
return_value
after
Recorder.save(recorder)
end
end
Expand Down
16 changes: 16 additions & 0 deletions test/handler_options_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,22 @@ defmodule ExVCR.Adapter.HandlerOptionsTest do
assert HTTPotion.get(@url, []).body == "test_response1"
end
end

test "clear_mock option works even when exceptions are raised" do
# Force an exception to be raised
try do
use_cassette "option_clean_each", clear_mock: true do
assert false
end
rescue
_e in ExUnit.AssertionError -> nil
end

HttpServer.start(path: "/server", port: @port, response: "test_response2")
:timer.sleep(100) # put short sleep.
assert HTTPotion.get(@url, []).body == "test_response2"
HttpServer.stop(@port)
end
end

defmodule MatchRequestsOn do
Expand Down

0 comments on commit 07a41cc

Please sign in to comment.