Merge pull request #150 from iamvery/format-match-failures
Format match failures
This commit is contained in:
@@ -27,8 +27,7 @@ end
|
||||
|
||||
defmodule Display.Uncoloured do
|
||||
def red(str), do: str
|
||||
|
||||
def cyan(str), do: str
|
||||
|
||||
def green(str), do: str
|
||||
def yellow(str), do: str
|
||||
end
|
||||
|
||||
@@ -26,6 +26,12 @@ defmodule Display.Failure do
|
||||
defp format_inequality(message, %{left: @no_value, right: @no_value}) do
|
||||
message
|
||||
end
|
||||
defp format_inequality(message, %{left: @no_value, right: match_value}) do
|
||||
"""
|
||||
#{message}
|
||||
value does not match: #{match_value |> inspect |> Paint.yellow}
|
||||
"""
|
||||
end
|
||||
defp format_inequality(message, %{left: left, right: right}) do
|
||||
"""
|
||||
#{message}
|
||||
|
||||
@@ -5,13 +5,36 @@ defmodule FailureTests do
|
||||
test "assertion failure with proper expression" do
|
||||
error = error(%ExUnit.AssertionError{expr: "hi"})
|
||||
|
||||
assert Failure.format_failure(error) == "Assertion failed in some_file.ex:42\n\"hi\"\n"
|
||||
assert Failure.format_failure(error) == "Assertion failed in some_file.ex:42\n\"hi\"\n"
|
||||
end
|
||||
|
||||
test "assertion failure with message" do
|
||||
error = error(%ExUnit.AssertionError{expr: :ex_unit_no_meaningful_value, message: "hola"})
|
||||
|
||||
assert Failure.format_failure(error) == "Assertion failed in some_file.ex:42\nhola\n"
|
||||
assert Failure.format_failure(error) == "Assertion failed in some_file.ex:42\nhola\n"
|
||||
end
|
||||
|
||||
test "equality failure" do
|
||||
error = error(%ExUnit.AssertionError{expr: quote(do: :lol == :wat), left: :lol, right: :wat})
|
||||
|
||||
assert Failure.format_failure(error) == """
|
||||
Assertion failed in some_file.ex:42
|
||||
:lol == :wat
|
||||
|
||||
left: :lol
|
||||
right: :wat
|
||||
"""
|
||||
end
|
||||
|
||||
test "match failure" do
|
||||
error = error(%ExUnit.AssertionError{expr: quote(do: match?(:lol,:wat)), right: :wat})
|
||||
|
||||
assert Failure.format_failure(error) == """
|
||||
Assertion failed in some_file.ex:42
|
||||
match?(:lol, :wat)
|
||||
|
||||
value does not match: :wat
|
||||
"""
|
||||
end
|
||||
|
||||
defp error(error) do
|
||||
|
||||
Reference in New Issue
Block a user