Packages
espec
1.9.0
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/string/end_with.ex
defmodule ESpec.Assertions.String.EndWith do
@moduledoc """
Defines 'end_with' assertion.
it do: expect(string).to end_with(value)
"""
use ESpec.Assertions.Interface
defp match(string, val) do
result = String.ends_with?(string, val)
if result do
{result, val}
else
val = if is_list(val), do: List.first(val), else: val
length_l = String.length(string)
length_r = String.length(val)
if length_l <= length_r do
{result, string}
else
{_, ends} = String.split_at(string, length_l - length_r)
{result, ends}
end
end
end
defp success_message(string, val, _result, positive) do
to = if positive, do: "ends", else: "doesn't end"
"`#{inspect(string)}` #{to} with `#{inspect(val)}`."
end
defp error_message(string, val, result, positive) do
to = if positive, do: "to", else: "not to"
m = "Expected `#{inspect(string)}` #{to} end with `#{val}` but it ends with `#{result}`."
if positive do
{m, %{diff_fn: fn -> ESpec.Diff.diff(result, val) end}}
else
m
end
end
end