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/string/start_with.ex
defmodule ESpec.Assertions.String.StartWith do
@moduledoc """
Defines 'start_with' assertion.
it do: expect(string).to start_with(value)
"""
use ESpec.Assertions.Interface
defp match(string, val) do
result = String.starts_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
{start, _} = String.split_at(string, length_r)
{result, start}
end
end
end
defp success_message(string, val, _result, positive) do
to = if positive, do: "starts", else: "doesn't start"
"`#{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} start with `#{val}` but it starts with `#{result}`."
if positive do
{m, %{diff_fn: fn -> ESpec.Diff.diff(result, val) end}}
else
m
end
end
end