View Source SeedFactory.Test (SeedFactory v0.5.0)

A helper module for ExUnit.

Usage

Add the following line to your test modules:

use SeedFactory.Test, schema: MySeedFactorySchema

It sets up SeedFactory by invoking SeedFactory.init/2 in ExUnit.Callbacks.setup_all/2 block and imports the following functions:

Summary

Functions

A macro that implicitly passes context and allows usage of SeedFactory.produce/2 outside the test block.

Functions

@spec produce(
  SeedFactory.entity_name()
  | [
      SeedFactory.entity_name()
      | SeedFactory.rebinding_rule()
      | {SeedFactory.entity_name(),
         [trait_name :: atom() | {:as, rebind_as :: atom()}]}
    ]
) :: Macro.t()

A macro that implicitly passes context and allows usage of SeedFactory.produce/2 outside the test block.

Basically, it creates a ExUnit.Callbacks.setup/2 block and calls SeedFactory.produce/2 inside.

Examples

produce :company

test "my test", %{company: company} do
  assert my_function(company)
end
produce [:user, :project]

test "my test", %{user: user, project: project} do
  assert my_function(project, user)
end
produce org: :org1
produce org: :org2

test "my test", %{org1: org1, org2: org2} do
  assert my_function(org2, org1)
end