Packages

An Elixir Ecto Package to Boost Your Productivity and Achieve 90% throughput in Just 10% of the Time.

Current section

Files

Jump to
entity test entity_test.exs
Raw

test/entity_test.exs

defmodule Entity.AppHelpersTest do
use ExUnit.Case
alias Person # Represent Any Schema using Ecto
# TEST HELPER FUNCTIONS
def person_attrs do
%{
first_name: Faker.first_name,
last_name: Faker.last_name,
age: Faker.random_digit
}
end
def seed_people(count \\ 1) do
1..count
|> Enum.each(fn _ -> Person.insert(person_attrs()) end)
end
test "gets ecto repo" do
assert Person.get_repo == Entity.Repo
end
test "create/1 stores data." do
assert {:ok, %Person{}} = Person.create(person_attrs())
end
test "insert/1 stores data." do
assert {:ok, %Person{}} = Person.insert(person_attrs())
end
test "truncate/0 empties table" do
# Create records
seed_people(5)
# Truncate the table
assert {:ok, _} = Person.truncate()
end
# Many records are previous created, so no need to seed database
test "first/0 returns first records" do
seed_people(10)
assert Person.first.id == 1
end
test "find!/1 raises Ecto.NoResultsError for non-existing entity" do
assert_raise Ecto.NoResultsError, fn ->
Person.find!(1999999999)
end
end
test "Retrieves the last record in the table" do
# Seed database
Person.create(person_attrs())
Person.create(person_attrs())
# Assert
assert %Person{} = Person.last
assert Person.last.id > Person.first.id
end
test "Retrieves a record by id" do
seed_people(4)
assert %Person{} = Person.find(1)
assert Person.find(1).id == 1
end
end