FlowAssertions
This is a library of assertions for Elixir's ExUnit. It emphasizes two things:
Making tests easier to scan by capturing frequently-used assertions in functions that can be used in a pipeline.
This library will appeal to people who prefer this:
VM.ServiceGap.accept_form(params, @institution)|> ok_content|> assert_valid|> assert_changes(id: 1,in_service_datestring: @iso_date_1,out_of_service_datestring: @iso_date_2,reason: "reason")... to this:
assert {:ok, changeset} = VM.ServiceGap.accept_form(params, @institution)assert changeset.valid?changes = changeset.changesassert changes.id == 1assert changes.in_service_datestring == @iso_date_1assert changes.out_of_service_datestring == @iso_date_2assert changes.reason == "reason"The key point here is that all of the
assert_*functions in this package return their first argument to be used with later chained functions.Error messages as helpful as those in the base ExUnit assertions:
Documentation
https://hexdocs.pm/flow_assertions
See also the change log.
Installation
Add flow_assertions to your list of dependencies in mix.exs:
def deps do
[
{:flow_assertions, "~> 0.4", only: :test},
]
end