Packages
espec
1.4.2
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/to.ex
defmodule ESpec.To do
@moduledoc """
Defines `to`, `to_not` and `not_to` helper functions.
The functions implement syntax: 'expect 1 |> to eq 1'
These functions wrap arguments for `ESpec.ExpectTo` module.
Also defines `to` helper function for mocking without parenthesis:
`allow SomeModule |> to accept(:f, fn(a) -> "mock" end)`
These functions wrap arguments for `ESpec.AllowTo` module.
"""
alias ESpec.AllowTo
alias ESpec.ExpectTo
@doc "Wrappers for `ESpec.AllowTo.to`."
def to(module, {:accept, name, function}) when is_atom(name) do
AllowTo.to({:accept, name, function}, {AllowTo, module})
end
@doc false
def to(module, {:accept, name, function, meck_options}) when is_atom(name) and is_list(meck_options) do
AllowTo.to({:accept, name, function, meck_options}, {AllowTo, module})
end
@doc false
def to(module, {:accept, list}) when is_list(list) do
AllowTo.to({:accept, list}, {AllowTo, module})
end
@doc false
def to(module, {:accept, list, meck_options}) when is_list(list) and is_list(meck_options) do
AllowTo.to({:accept, list, meck_options}, {AllowTo, module})
end
@doc false
def to(module, {:accept, name}) when is_atom(name) do
AllowTo.to({:accept, name}, {AllowTo, module})
end
@doc "Special case for `is_expected` when `subject` present."
def to({ExpectTo, subject}, {module, data}), do: to(subject, {module, data})
@doc "Wrapper for `ESpec.ExpectTo.to`."
def to(subject, {module, data}) do
ExpectTo.to({module, data}, {ExpectTo, subject})
end
@doc "Special case for `is_expected` when `subject` present."
def to_not({ExpectTo, subject}, {module, data}), do: to_not(subject, {module, data})
@doc "Wrapper for `ESpec.ExpectTo.to_not`."
def to_not(subject, {module, data}) do
ExpectTo.to_not({module, data}, {ExpectTo, subject})
end
@doc "Special case for `is_expected` when `subject` present."
def not_to({ExpectTo, subject}, {module, data}), do: not_to(subject, {module, data})
@doc "Wrapper for `ESpec.ExpectTo.not_to`."
def not_to(subject, {module, data}), do: to_not(subject, {module, data})
end