From 687506796159b65b4b0461c45cd85e65dc12d0af Mon Sep 17 00:00:00 2001 From: Izel Nakri Date: Sat, 16 Jul 2016 12:01:28 +0200 Subject: [PATCH] person test added --- example/.iex.exs | 1 + example/test/person_test.exs | 64 +++++++++++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 example/.iex.exs diff --git a/example/.iex.exs b/example/.iex.exs new file mode 100644 index 00000000..32247b27 --- /dev/null +++ b/example/.iex.exs @@ -0,0 +1 @@ +import Ecto.Query diff --git a/example/test/person_test.exs b/example/test/person_test.exs index 34da77eb..676f4443 100644 --- a/example/test/person_test.exs +++ b/example/test/person_test.exs @@ -1,9 +1,71 @@ defmodule PersonTest do use ExUnit.Case + import Ecto.Query + doctest Person - test "creating a person creates a person version with correct attributes" do + setup_all do + Repo.delete_all(Company) + Repo.delete_all(PaperTrail.Version) + + Company.changeset(%Company{}, %{ + name: "Acme LLC", + website: "http://www.acme.com" + }) |> Repo.insert + + Company.changeset(%Company{}, %{ + name: "Another Company Corp.", + is_active: true, + address: "Sesame street 100/3, 101010" + }) |> Repo.insert + + :ok + end + + test "creating a person with meta tag creates a person version with correct attributes" do + company = first(Company, :id) |> Repo.one + + new_person = Person.changeset(%Person{}, %{ + first_name: "Izel", + last_name: "Nakri", + gender: true, + company_id: company.id + }) + + {:ok, result} = PaperTrail.insert(new_person, %{originator: "admin"}) # add link name later on + + person_count = Repo.all( + from person in Person, + select: count(person.id) + ) + + person = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id]) + + version_count = Repo.all( + from version in PaperTrail.Version, + select: count(version.id) + ) + + version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at]) + + assert person_count == [1] + assert version_count == [1] + + assert person == %{ + first_name: "Izel", + last_name: "Nakri", + gender: true, + visit_count: nil, + birthdate: nil + } + assert Map.drop(version, [:id]) == %{ + event: "create", + item_type: "Person", + item_id: Repo.one(first(Person, :id)).id, + item_changes: Map.drop(result[:model], [:__meta__, :__struct__]), + meta: nil + } end test "updating a person creates a person version with correct attributes" do