blob: cfbd64738f2080f7167b2138aadd2f9c15bdc29f [file] [log] [blame]
defmodule Couch.Test.Asserts do
@moduledoc """
Custom asserts.
"""
defmacro assert_on_status(resp, expected, failure_message) do
expected_list = List.wrap(expected)
expected_msg = case expected_list do
[single] -> "Expected #{single}"
multiple -> "Expected one of #{inspect(multiple)}"
end
quote do
status_code = unquote(resp).status_code
body = unquote(resp).body
message = "#{unquote(failure_message)} #{unquote(expected_msg)}, got: #{status_code}, body: #{inspect(body)}"
ExUnit.Assertions.assert(status_code in unquote(expected_list), "#{message}")
end
end
end