From 482eee1f6b99acb2d4034924a33b81f80f9ec954 Mon Sep 17 00:00:00 2001 From: Jay Hayes Date: Fri, 23 Dec 2016 08:19:21 -0600 Subject: [PATCH 1/3] whitespace --- lib/display/colours.ex | 2 -- test/display/failure_test.exs | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/display/colours.ex b/lib/display/colours.ex index d76a0fd..3b5baf3 100644 --- a/lib/display/colours.ex +++ b/lib/display/colours.ex @@ -27,8 +27,6 @@ end defmodule Display.Uncoloured do def red(str), do: str - def cyan(str), do: str - def green(str), do: str end diff --git a/test/display/failure_test.exs b/test/display/failure_test.exs index 6d97c0d..d3dce26 100644 --- a/test/display/failure_test.exs +++ b/test/display/failure_test.exs @@ -5,13 +5,13 @@ 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 defp error(error) do From 08973f4b54b5446ca66cda9542992401ecf07be8 Mon Sep 17 00:00:00 2001 From: Jay Hayes Date: Fri, 23 Dec 2016 08:28:16 -0600 Subject: [PATCH 2/3] Add test for equality failure This also revealed that the "test painter" has a missing interface, yellow/0. Fixed! [#144] --- lib/display/colours.ex | 1 + test/display/failure_test.exs | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/lib/display/colours.ex b/lib/display/colours.ex index 3b5baf3..62efcdd 100644 --- a/lib/display/colours.ex +++ b/lib/display/colours.ex @@ -29,4 +29,5 @@ 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/test/display/failure_test.exs b/test/display/failure_test.exs index d3dce26..da8d242 100644 --- a/test/display/failure_test.exs +++ b/test/display/failure_test.exs @@ -14,6 +14,17 @@ defmodule FailureTests do 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 defp error(error) do %{ error: error, From 4bb0b06471c70c52ac26717d62821e088aac7f63 Mon Sep 17 00:00:00 2001 From: Jay Hayes Date: Fri, 23 Dec 2016 08:19:30 -0600 Subject: [PATCH 3/3] Format match? failures more elegantly [#144] --- lib/display/failure.ex | 6 ++++++ test/display/failure_test.exs | 12 ++++++++++++ 2 files changed, 18 insertions(+) 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 da8d242..4f9cea3 100644 --- a/test/display/failure_test.exs +++ b/test/display/failure_test.exs @@ -25,6 +25,18 @@ defmodule FailureTests do 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 %{ error: error,