Merge pull request #68 from ukutaht/fix_assert_receive
Fixes the reported line for failures using assert_receive
This commit is contained in:
@@ -1,6 +1,4 @@
|
|||||||
defmodule BlankAssertions do
|
defmodule BlankAssertions do
|
||||||
require ExUnit.Assertions
|
|
||||||
|
|
||||||
defmacro assert(expr) do
|
defmacro assert(expr) do
|
||||||
if contains_blank?(expr) do
|
if contains_blank?(expr) do
|
||||||
code = Macro.escape(expr)
|
code = Macro.escape(expr)
|
||||||
@@ -27,14 +25,15 @@ defmodule BlankAssertions do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def assert_receive(expr) do
|
defmacro assert_receive(expr) do
|
||||||
if expr == :__ do
|
code = Macro.escape(expr)
|
||||||
raise ExUnit.AssertionError, expr: expr
|
if contains_blank?(expr) do
|
||||||
|
quote do
|
||||||
|
raise ExUnit.AssertionError, expr: {:assert_receive, [], [unquote(code)]}
|
||||||
|
end
|
||||||
else
|
else
|
||||||
receive do
|
quote do
|
||||||
^expr -> true
|
ExUnit.Assertions.assert_receive(var!(expr), 100)
|
||||||
after
|
|
||||||
100 -> flunk("No message matching #{expr} found in mailbox")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -48,13 +48,14 @@ defmodule Koans do
|
|||||||
end
|
end
|
||||||
|
|
||||||
defp create_vars(amount) do
|
defp create_vars(amount) do
|
||||||
Enum.map(0..amount, fn (idx) -> quote do: elem(converted, unquote(idx)) end)
|
for id <- 0..amount, do: quote do: elem(converted, unquote(id))
|
||||||
end
|
end
|
||||||
|
|
||||||
defmacro __using__(_opts) do
|
defmacro __using__(_opts) do
|
||||||
quote do
|
quote do
|
||||||
@compile :nowarn_unused_vars
|
@compile :nowarn_unused_vars
|
||||||
Module.register_attribute(__MODULE__, :koans, accumulate: true)
|
Module.register_attribute(__MODULE__, :koans, accumulate: true)
|
||||||
|
|
||||||
require ExUnit.Assertions
|
require ExUnit.Assertions
|
||||||
import Koans
|
import Koans
|
||||||
import BlankAssertions
|
import BlankAssertions
|
||||||
|
|||||||
Reference in New Issue
Block a user