diff --git a/lib/display/colours.ex b/lib/display/colours.ex index d76a0fd..62efcdd 100644 --- a/lib/display/colours.ex +++ b/lib/display/colours.ex @@ -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 diff --git a/lib/display/failure.ex b/lib/display/failure.ex index 855feff..63ed22e 100644 --- a/lib/display/failure.ex +++ b/lib/display/failure.ex @@ -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} diff --git a/test/display/failure_test.exs b/test/display/failure_test.exs index 6d97c0d..4f9cea3 100644 --- a/test/display/failure_test.exs +++ b/test/display/failure_test.exs @@ -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