Packages
espec
1.8.1
1.10.0
1.9.2
1.9.1
1.9.0
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
0.8.28
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.2
0.4.1
0.4.0
0.3.7
0.3.5
0.3.0
0.2.0
0.1.0
BDD testing framework for Elixir inspired by RSpec.
Current section
Files
Jump to
Current section
Files
lib/espec/assertions/list_string/have_first.ex
defmodule ESpec.Assertions.ListString.HaveFirst do
@moduledoc """
Defines 'have_first' assertion.
it do: expect(list).to have_first(value)
it do: expect(string).to have_first(value)
"""
use ESpec.Assertions.Interface
defp match(list, val) when is_binary(list) do
result = String.first(list)
{result == val, result}
end
defp match(list, val) do
result = List.first(list)
{result == val, result}
end
defp success_message(list, val, _result, positive) do
to = if positive, do: "has", else: "doesn't have"
"`#{inspect(list)}` #{to} first element `#{inspect(val)}`."
end
defp error_message(list, val, result, positive) do
to = if positive, do: "to", else: "not to"
m =
"Expected `#{inspect(list)}` #{to} have first element `#{inspect(val)}` but it has `#{
inspect(result)
}`."
if positive and not is_binary(list) do
{m, %{diff_fn: fn -> ESpec.Diff.diff(List.first(list), val) end}}
else
m
end
end
end