Skip to content

Commit 03ecfa1

Browse files
authored
Fixes for recent Elixir versions (#129)
1 parent be379df commit 03ecfa1

File tree

2 files changed

+25
-22
lines changed

2 files changed

+25
-22
lines changed

lib/mox.ex

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -388,19 +388,8 @@ defmodule Mox do
388388
name
389389
end
390390

391-
@compile {:no_warn_undefined, {Code, :ensure_compiled!, 1}}
392391
defp validate_module!(behaviour) do
393-
cond do
394-
function_exported?(Code, :ensure_compiled!, 1) ->
395-
Code.ensure_compiled!(behaviour)
396-
397-
Code.ensure_compiled(behaviour) == {:module, behaviour} ->
398-
behaviour
399-
400-
true ->
401-
raise ArgumentError,
402-
"module #{inspect(behaviour)} is not available, please pass an existing module to :for"
403-
end
392+
ensure_compiled!(behaviour)
404393
end
405394

406395
defp validate_behaviour!(behaviour) do
@@ -769,15 +758,29 @@ defmodule Mox do
769758
end
770759

771760
defp validate_mock!(mock) do
772-
cond do
773-
Code.ensure_compiled(mock) != {:module, mock} ->
774-
raise ArgumentError, "module #{inspect(mock)} is not available"
761+
ensure_compiled!(mock)
775762

776-
not function_exported?(mock, :__mock_for__, 0) ->
777-
raise ArgumentError, "module #{inspect(mock)} is not a mock"
763+
unless function_exported?(mock, :__mock_for__, 0) do
764+
raise ArgumentError, "module #{inspect(mock)} is not a mock"
765+
end
778766

779-
true ->
780-
:ok
767+
:ok
768+
end
769+
770+
@compile {:no_warn_undefined, {Code, :ensure_compiled!, 1}}
771+
772+
defp ensure_compiled!(mod) do
773+
if function_exported?(Code, :ensure_compiled!, 1) do
774+
Code.ensure_compiled!(mod)
775+
else
776+
case Code.ensure_compiled(mod) do
777+
{:module, mod} ->
778+
mod
779+
780+
{:error, reason} ->
781+
raise ArgumentError,
782+
"could not load module #{inspect(mod)} due to reason #{inspect(reason)}"
783+
end
781784
end
782785
end
783786

test/mox_test.exs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ defmodule MoxTest do
270270
end
271271

272272
test "raises if a non-mock is given" do
273-
assert_raise ArgumentError, ~r"module Unknown is not available", fn ->
273+
assert_raise ArgumentError, ~r"could not load module Unknown", fn ->
274274
expect(Unknown, :add, fn x, y -> x + y end)
275275
end
276276

@@ -426,7 +426,7 @@ defmodule MoxTest do
426426
end
427427

428428
test "raises if a non-mock is given" do
429-
assert_raise ArgumentError, ~r"module Unknown is not available", fn ->
429+
assert_raise ArgumentError, ~r"could not load module Unknown", fn ->
430430
verify!(Unknown)
431431
end
432432

@@ -555,7 +555,7 @@ defmodule MoxTest do
555555

556556
test "raises if a non-mock is given" do
557557
in_all_modes(fn ->
558-
assert_raise ArgumentError, ~r"module Unknown is not available", fn ->
558+
assert_raise ArgumentError, ~r"could not load module Unknown", fn ->
559559
stub(Unknown, :add, fn x, y -> x + y end)
560560
end
561561

0 commit comments

Comments
 (0)