From 0604631e10330645473d0d5dbce0fbcadb2df2a4 Mon Sep 17 00:00:00 2001 From: Ivan Gonzalez Date: Sat, 5 Aug 2017 16:13:48 +0200 Subject: [PATCH] Remove changeset_helper.exs and query_helper.exs from example/test/support Now the aux functions used on the example app tests are located in each test file in stead of in one separated module. --- example/test/company_test.exs | 31 ++++++---- example/test/multi_tenant_company_test.exs | 49 +++++++++++---- example/test/multi_tenant_person_test.exs | 71 +++++++++++++++++----- example/test/person_test.exs | 44 +++++++++----- example/test/support/changeset_helper.exs | 24 -------- example/test/support/query_helper.exs | 24 -------- example/test/test_helper.exs | 2 - 7 files changed, 141 insertions(+), 104 deletions(-) delete mode 100644 example/test/support/changeset_helper.exs delete mode 100644 example/test/support/query_helper.exs diff --git a/example/test/company_test.exs b/example/test/company_test.exs index 2c123ec3..73421c2d 100644 --- a/example/test/company_test.exs +++ b/example/test/company_test.exs @@ -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]) @@ -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]) @@ -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]) @@ -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 diff --git a/example/test/multi_tenant_company_test.exs b/example/test/multi_tenant_company_test.exs index 01bc0f13..01db36bd 100644 --- a/example/test/multi_tenant_company_test.exs +++ b/example/test/multi_tenant_company_test.exs @@ -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]) @@ -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]) @@ -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]) @@ -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 diff --git a/example/test/multi_tenant_person_test.exs b/example/test/multi_tenant_person_test.exs index b9dc7dff..310d79e3 100644 --- a/example/test/multi_tenant_person_test.exs +++ b/example/test/multi_tenant_person_test.exs @@ -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] @@ -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]) @@ -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]) @@ -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 diff --git a/example/test/person_test.exs b/example/test/person_test.exs index 08edfd4b..6859a1ef 100644 --- a/example/test/person_test.exs +++ b/example/test/person_test.exs @@ -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] @@ -60,15 +60,15 @@ 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], @@ -76,8 +76,8 @@ defmodule PersonTest do }) |> 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]) @@ -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]) @@ -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 diff --git a/example/test/support/changeset_helper.exs b/example/test/support/changeset_helper.exs deleted file mode 100644 index 68fa269e..00000000 --- a/example/test/support/changeset_helper.exs +++ /dev/null @@ -1,24 +0,0 @@ -defmodule ChangesetHelper do - - # Company related changeset functions - def new_company(attrs), do: Company.changeset(%Company{}, attrs) - def new_company(attrs, :multitenant) do - new_company(attrs) |> MultiTenantHelper.add_prefix_to_changeset() - end - - def update_company(company, attrs), do: Company.changeset(company, attrs) - def update_company(company, attrs, :multitenant) do - update_company(company, attrs) |> MultiTenantHelper.add_prefix_to_changeset() - end - - # Person related changeset functions - def new_person(attrs), do: Person.changeset(%Person{}, attrs) - def new_person(attrs, :multitenant) do - new_person(attrs) |> MultiTenantHelper.add_prefix_to_changeset() - end - - def update_person(person, attrs), do: Person.changeset(person, attrs) - def update_person(person, attrs, :multitenant) do - update_person(person, attrs) |> MultiTenantHelper.add_prefix_to_changeset() - end -end diff --git a/example/test/support/query_helper.exs b/example/test/support/query_helper.exs deleted file mode 100644 index 72a17740..00000000 --- a/example/test/support/query_helper.exs +++ /dev/null @@ -1,24 +0,0 @@ -defmodule QueryHelper do - import Ecto.Query - - # Company related query functions - def company_count(), do: (from company in Company, select: count(company.id)) - def company_count(:multitenant), do: company_count() |> MultiTenantHelper.add_prefix_to_query() - - def first_company(), do: (first(Company, :id) |> preload(:people)) - def first_company(:multitenant), do: first_company() |> MultiTenantHelper.add_prefix_to_query() - - def filter_company(opts), do: (from c in Company, where: c.name == ^opts[:name], limit: ^opts[:limit]) - def filter_company(opts, :multitenant), do: filter_company(opts) |> MultiTenantHelper.add_prefix_to_query() - - # Person related query functions - def person_count(), do: (from person in Person, select: count(person.id)) - def person_count(:multitenant), do: person_count() |> MultiTenantHelper.add_prefix_to_query() - - def first_person(), do: (first(Person, :id) |> preload(:company)) - def first_person(:multitenant), do: first_person() |> MultiTenantHelper.add_prefix_to_query() - - # Version related query functions - def version_count(), do: (from version in PaperTrail.Version, select: count(version.id)) - def version_count(:multitenant), do: version_count() |> MultiTenantHelper.add_prefix_to_query() -end diff --git a/example/test/test_helper.exs b/example/test/test_helper.exs index 434cc696..0191ced3 100644 --- a/example/test/test_helper.exs +++ b/example/test/test_helper.exs @@ -4,7 +4,5 @@ Mix.Task.run "ecto.create", ~w(-r Repo) Mix.Task.run "ecto.migrate", ~w(-r Repo) Code.require_file("test/support/multi_tenant_helper.exs") -Code.require_file("test/support/query_helper.exs") -Code.require_file("test/support/changeset_helper.exs") ExUnit.start