Skip to content

Commit

Permalink
Remove changeset_helper.exs and query_helper.exs from example/test/su…
Browse files Browse the repository at this point in the history
…pport

Now the aux functions used on the example app tests are located in each
test file in stead of in one separated module.
  • Loading branch information
dreamingechoes committed Aug 5, 2017
1 parent c50eef8 commit 0604631
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 104 deletions.
31 changes: 20 additions & 11 deletions example/test/company_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ defmodule CompanyTest do
test "creating a company creates a company version with correct attributes" do
{:ok, result} =
%{name: "Acme LLC", is_active: true, city: "Greenwich", people: []}
|> ChangesetHelper.new_company()
|> new_company()
|> PaperTrail.insert(origin: "test")

company_count = QueryHelper.company_count() |> Repo.all()
version_count = QueryHelper.version_count() |> Repo.all()
first_company = QueryHelper.first_company() |> Repo.one()
company_count = company_count() |> Repo.all()
version_count = version_count() |> Repo.all()
first_company = first_company() |> Repo.one()

company = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand Down Expand Up @@ -51,17 +51,17 @@ defmodule CompanyTest do
end

test "updating a company creates a company version with correct item_changes" do
first_company = QueryHelper.first_company() |> Repo.one()
first_company = first_company() |> Repo.one()

{:ok, result} =
ChangesetHelper.update_company(first_company, %{
update_company(first_company, %{
city: "Hong Kong",
website: "http://www.acme.com",
facebook: "acme.llc"
}) |> PaperTrail.update()

company_count = QueryHelper.company_count() |> Repo.all()
version_count = QueryHelper.version_count() |> Repo.all()
company_count = company_count() |> Repo.all()
version_count = version_count() |> Repo.all()

company = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand Down Expand Up @@ -93,14 +93,14 @@ defmodule CompanyTest do
end

test "deleting a company creates a company version with correct attributes" do
company = QueryHelper.first_company() |> Repo.one()
company = first_company() |> Repo.one()

{:ok, result} =
company
|> PaperTrail.delete()

company_count = QueryHelper.company_count() |> Repo.all()
version_count = QueryHelper.version_count() |> Repo.all()
company_count = company_count() |> Repo.all()
version_count = version_count() |> Repo.all()

company_ref = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand Down Expand Up @@ -142,4 +142,13 @@ defmodule CompanyTest do
meta: nil
}
end

# Company related functions
def company_count(), do: (from company in Company, select: count(company.id))
def first_company(), do: (first(Company, :id) |> preload(:people))
def new_company(attrs), do: Company.changeset(%Company{}, attrs)
def update_company(company, attrs), do: Company.changeset(company, attrs)

# Version related functions
def version_count(), do: (from version in PaperTrail.Version, select: count(version.id))
end
49 changes: 37 additions & 12 deletions example/test/multi_tenant_company_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ defmodule MultiTenantCompanyTest do
test "[multi tenant] creating a company creates a company version with correct attributes" do
{:ok, result} =
%{name: "Acme LLC", is_active: true, city: "Greenwich", people: []}
|> ChangesetHelper.new_company(:multitenant)
|> new_company()
|> PaperTrail.insert(origin: "test", prefix: MultiTenantHelper.tenant())

company_count = QueryHelper.company_count(:multitenant) |> Repo.all()
version_count = QueryHelper.version_count(:multitenant) |> Repo.all()
first_company = QueryHelper.first_company(:multitenant) |> Repo.one()
company_count = company_count() |> Repo.all()
version_count = version_count() |> Repo.all()
first_company = first_company() |> Repo.one()

company = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand Down Expand Up @@ -47,17 +47,17 @@ defmodule MultiTenantCompanyTest do
end

test "[multi tenant] updating a company creates a company version with correct item_changes" do
first_company = QueryHelper.first_company(:multitenant) |> Repo.one()
first_company = first_company() |> Repo.one()

{:ok, result} =
ChangesetHelper.update_company(first_company, %{
update_company(first_company, %{
city: "Hong Kong",
website: "http://www.acme.com",
facebook: "acme.llc"
}, :multitenant) |> PaperTrail.update(prefix: MultiTenantHelper.tenant())
}) |> PaperTrail.update(prefix: MultiTenantHelper.tenant())

company_count = QueryHelper.company_count(:multitenant) |> Repo.all()
version_count = QueryHelper.version_count(:multitenant) |> Repo.all()
company_count = company_count() |> Repo.all()
version_count = version_count() |> Repo.all()

company = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand Down Expand Up @@ -89,14 +89,14 @@ defmodule MultiTenantCompanyTest do
end

test "[multi tenant] deleting a company creates a company version with correct attributes" do
company = QueryHelper.first_company(:multitenant) |> Repo.one()
company = first_company() |> Repo.one()

{:ok, result} =
company
|> PaperTrail.delete(prefix: MultiTenantHelper.tenant())

company_count = QueryHelper.company_count(:multitenant) |> Repo.all()
version_count = QueryHelper.version_count(:multitenant) |> Repo.all()
company_count = company_count() |> Repo.all()
version_count = version_count() |> Repo.all()

company_ref = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand Down Expand Up @@ -138,4 +138,29 @@ defmodule MultiTenantCompanyTest do
meta: nil
}
end

# Company related functions
def company_count() do
(from company in Company, select: count(company.id))
|> MultiTenantHelper.add_prefix_to_query()
end
def first_company() do
(first(Company, :id)
|> preload(:people))
|> MultiTenantHelper.add_prefix_to_query()
end
def new_company(attrs) do
Company.changeset(%Company{}, attrs)
|> MultiTenantHelper.add_prefix_to_changeset()
end
def update_company(company, attrs) do
Company.changeset(company, attrs)
|> MultiTenantHelper.add_prefix_to_changeset()
end

# Version related functions
def version_count() do
(from version in PaperTrail.Version, select: count(version.id))
|> MultiTenantHelper.add_prefix_to_query()
end
end
71 changes: 55 additions & 16 deletions example/test/multi_tenant_person_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,31 @@ defmodule MultiTenantPersonTest do
MultiTenantHelper.setup_tenant(Repo)

%{name: "Acme LLC", website: "http://www.acme.com"}
|> ChangesetHelper.new_company(:multitenant)
|> new_company()
|> Repo.insert()

%{name: "Another Company Corp.", is_active: true, address: "Sesame street 100/3, 101010"}
|> ChangesetHelper.new_company(:multitenant)
|> new_company()
|> Repo.insert()

:ok
end

test "[multi tenant] creating a person with meta tag creates a person version with correct attributes" do
company = QueryHelper.first_company(:multitenant) |> Repo.one()
company = first_company() |> Repo.one()

{:ok, result} =
%{first_name: "Izel", last_name: "Nakri", gender: true, company_id: company.id}
|> ChangesetHelper.new_person(:multitenant)
|> new_person()
|> PaperTrail.insert(origin: "admin", meta: %{}, prefix: MultiTenantHelper.tenant())

person_count = QueryHelper.person_count(:multitenant) |> Repo.all()
version_count = QueryHelper.version_count(:multitenant) |> Repo.all()
person_count = person_count() |> Repo.all()
version_count = version_count() |> Repo.all()

person = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])

first_person = QueryHelper.first_person(:multitenant) |> Repo.one()
first_person = first_person() |> Repo.one()

assert person_count == [1]
assert version_count == [1]
Expand All @@ -56,25 +56,25 @@ defmodule MultiTenantPersonTest do
end

test "[multi tenant] updating a person creates a person version with correct attributes" do
first_person = QueryHelper.first_person(:multitenant) |> Repo.one()
first_person = first_person() |> Repo.one()

target_company =
[name: "Another Company Corp.", limit: 1]
|> QueryHelper.filter_company(:multitenant)
|> filter_company()
|> Repo.one()

{:ok, result} =
ChangesetHelper.update_person(first_person, %{
update_person(first_person, %{
first_name: "Isaac",
visit_count: 10,
birthdate: ~D[1992-04-01],
company_id: target_company.id
}, :multitenant)
})
|> PaperTrail.update([origin: "user:1", meta: %{linkname: "izelnakri"},
prefix: MultiTenantHelper.tenant()])

person_count = QueryHelper.person_count(:multitenant) |> Repo.all()
version_count = QueryHelper.version_count(:multitenant) |> Repo.all()
person_count = person_count() |> Repo.all()
version_count = version_count() |> Repo.all()

person = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand Down Expand Up @@ -110,14 +110,14 @@ defmodule MultiTenantPersonTest do
end

test "[multi tenant] deleting a person creates a person version with correct attributes" do
person = QueryHelper.first_person(:multitenant) |> Repo.one()
person = first_person() |> Repo.one()

{:ok, result} =
person
|> PaperTrail.delete(prefix: MultiTenantHelper.tenant())

person_count = QueryHelper.person_count(:multitenant) |> Repo.all()
version_count = QueryHelper.version_count(:multitenant) |> Repo.all()
person_count = person_count() |> Repo.all()
version_count = version_count() |> Repo.all()

version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])

Expand All @@ -144,4 +144,43 @@ defmodule MultiTenantPersonTest do
meta: nil
}
end

# Person related functions
def person_count() do
(from person in Person, select: count(person.id))
|> MultiTenantHelper.add_prefix_to_query()
end
def first_person() do
(first(Person, :id) |> preload(:company))
|> MultiTenantHelper.add_prefix_to_query()
end
def new_person(attrs) do
Person.changeset(%Person{}, attrs)
|> MultiTenantHelper.add_prefix_to_changeset()
end
def update_person(person, attrs) do
Person.changeset(person, attrs)
|> MultiTenantHelper.add_prefix_to_changeset()
end

# Company related functions
def first_company() do
(first(Company, :id)
|> preload(:people))
|> MultiTenantHelper.add_prefix_to_query()
end
def new_company(attrs) do
Company.changeset(%Company{}, attrs)
|> MultiTenantHelper.add_prefix_to_changeset()
end
def filter_company(opts) do
(from c in Company, where: c.name == ^opts[:name], limit: ^opts[:limit])
|> MultiTenantHelper.add_prefix_to_query()
end

# Version related functions
def version_count() do
(from version in PaperTrail.Version, select: count(version.id))
|> MultiTenantHelper.add_prefix_to_query()
end
end
44 changes: 29 additions & 15 deletions example/test/person_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,31 @@ defmodule PersonTest do
Repo.delete_all(PaperTrail.Version)

%{name: "Acme LLC", website: "http://www.acme.com"}
|> ChangesetHelper.new_company()
|> new_company()
|> Repo.insert()

%{name: "Another Company Corp.", is_active: true, address: "Sesame street 100/3, 101010"}
|> ChangesetHelper.new_company()
|> new_company()
|> Repo.insert()

:ok
end

test "[multi tenant] creating a person with meta tag creates a person version with correct attributes" do
company = QueryHelper.first_company() |> Repo.one()
company = first_company() |> Repo.one()

{:ok, result} =
%{first_name: "Izel", last_name: "Nakri", gender: true, company_id: company.id}
|> ChangesetHelper.new_person()
|> new_person()
|> PaperTrail.insert(origin: "admin", meta: %{})

person_count = QueryHelper.person_count() |> Repo.all()
version_count = QueryHelper.version_count() |> Repo.all()
person_count = person_count() |> Repo.all()
version_count = version_count() |> Repo.all()

person = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])

first_person = QueryHelper.first_person() |> Repo.one()
first_person = first_person() |> Repo.one()

assert person_count == [1]
assert version_count == [1]
Expand All @@ -60,24 +60,24 @@ defmodule PersonTest do
end

test "[multi tenant] updating a person creates a person version with correct attributes" do
first_person = QueryHelper.first_person() |> Repo.one()
first_person = first_person() |> Repo.one()

target_company =
[name: "Another Company Corp.", limit: 1]
|> QueryHelper.filter_company()
|> filter_company()
|> Repo.one()

{:ok, result} =
ChangesetHelper.update_person(first_person, %{
update_person(first_person, %{
first_name: "Isaac",
visit_count: 10,
birthdate: ~D[1992-04-01],
company_id: target_company.id
})
|> PaperTrail.update(origin: "user:1", meta: %{linkname: "izelnakri"})

person_count = QueryHelper.person_count() |> Repo.all()
version_count = QueryHelper.version_count() |> Repo.all()
person_count = person_count() |> Repo.all()
version_count = version_count() |> Repo.all()

person = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand Down Expand Up @@ -113,14 +113,14 @@ defmodule PersonTest do
end

test "[multi tenant] deleting a person creates a person version with correct attributes" do
person = QueryHelper.first_person() |> Repo.one()
person = first_person() |> Repo.one()

{:ok, result} =
person
|> PaperTrail.delete()

person_count = QueryHelper.person_count() |> Repo.all()
version_count = QueryHelper.version_count() |> Repo.all()
person_count = person_count() |> Repo.all()
version_count = version_count() |> Repo.all()

version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])

Expand All @@ -147,4 +147,18 @@ defmodule PersonTest do
meta: nil
}
end

# Person related functions
def person_count(), do: (from person in Person, select: count(person.id))
def first_person(), do: (first(Person, :id) |> preload(:company))
def new_person(attrs), do: Person.changeset(%Person{}, attrs)
def update_person(person, attrs), do: Person.changeset(person, attrs)

# Company related functions
def first_company(), do: (first(Company, :id) |> preload(:people))
def new_company(attrs), do: Company.changeset(%Company{}, attrs)
def filter_company(opts), do: (from c in Company, where: c.name == ^opts[:name], limit: ^opts[:limit])

# Version related functions
def version_count(), do: (from version in PaperTrail.Version, select: count(version.id))
end
Loading

0 comments on commit 0604631

Please sign in to comment.