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/assert_receive.ex
defmodule ESpec.Assertions.AssertReceive do
@moduledoc """
Defines 'assert_receive' and 'assert_received' assertions.
it do: assert_receive :hello
"""
use ESpec.Assertions.Interface
@join_sym "\n\t"
defp match(subject, [pattern, _pins, _mailbox_messages]) do
case subject do
{:error, :timeout} -> {false, pattern}
{pattern, _vars} -> {true, pattern}
end
end
defp success_message(_subject, _val, result, _positive) do
"Received `#{inspect(result)}`."
end
defp error_message(_subject, [_pattern, pins, mailbox_messages], result, _positive) do
[
"Expected to receive `#{inspect(result)}` but it doesn't.",
"Pinned variables: #{inspect(pins)}",
"Process mailbox:",
messages(mailbox_messages)
]
|> Enum.join(@join_sym)
end
defp messages(mailbox_messages), do: Enum.map_join(mailbox_messages, @join_sym, &inspect/1)
end