Skip to content

Commit

Permalink
Add some additional assertions in tests
Browse files Browse the repository at this point in the history
This additional assertions will allow us to compare results between regular
behavior and the multi tenant one, and check if multi tenant generates some
conflicts on the public schema/database.
  • Loading branch information
dreamingechoes committed Aug 9, 2017
1 parent 64231d7 commit 1359026
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 0 deletions.
12 changes: 12 additions & 0 deletions example/test/multi_tenant_company_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ defmodule MultiTenantCompanyTest do
from(version in PaperTrail.Version, select: count(version.id))
|> MultiTenantHelper.add_prefix_to_query()
|> Repo.all()
regular_version_count =
from(version in PaperTrail.Version, select: count(version.id))
|> Repo.all()
first_company =
first(Company, :id)
|> preload(:people)
Expand All @@ -33,6 +36,7 @@ defmodule MultiTenantCompanyTest do

assert company_count == [1]
assert version_count == [1]
assert regular_version_count == [0]

assert company == %{
name: "Acme LLC",
Expand Down Expand Up @@ -82,12 +86,16 @@ defmodule MultiTenantCompanyTest do
from(version in PaperTrail.Version, select: count(version.id))
|> MultiTenantHelper.add_prefix_to_query()
|> Repo.all()
regular_version_count =
from(version in PaperTrail.Version, select: count(version.id))
|> Repo.all()

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

assert company_count == [1]
assert version_count == [2]
assert regular_version_count == [0]

assert company == %{
name: "Acme LLC",
Expand Down Expand Up @@ -131,12 +139,16 @@ defmodule MultiTenantCompanyTest do
from(version in PaperTrail.Version, select: count(version.id))
|> MultiTenantHelper.add_prefix_to_query()
|> Repo.all()
regular_version_count =
from(version in PaperTrail.Version, select: count(version.id))
|> Repo.all()

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

assert company_count == [0]
assert version_count == [3]
assert regular_version_count == [0]

assert company_ref == %{
name: "Acme LLC",
Expand Down
12 changes: 12 additions & 0 deletions example/test/multi_tenant_person_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ defmodule MultiTenantPersonTest do
from(version in PaperTrail.Version, select: count(version.id))
|> MultiTenantHelper.add_prefix_to_query()
|> Repo.all()
regular_version_count =
from(version in PaperTrail.Version, select: count(version.id))
|> Repo.all()

person = result[:model] |> Map.drop([:__meta__, :__struct__, :inserted_at, :updated_at, :id])
version = result[:version] |> Map.drop([:__meta__, :__struct__, :inserted_at])
Expand All @@ -51,6 +54,7 @@ defmodule MultiTenantPersonTest do

assert person_count == [1]
assert version_count == [1]
assert regular_version_count == [0]

assert Map.drop(person, [:company]) == %{
first_name: "Izel",
Expand Down Expand Up @@ -104,12 +108,16 @@ defmodule MultiTenantPersonTest do
from(version in PaperTrail.Version, select: count(version.id))
|> MultiTenantHelper.add_prefix_to_query()
|> Repo.all()
regular_version_count =
from(version in PaperTrail.Version, select: count(version.id))
|> Repo.all()

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

assert person_count == [1]
assert version_count == [2]
assert regular_version_count == [0]

assert Map.drop(person, [:company]) == %{
company_id: target_company.id,
Expand Down Expand Up @@ -157,11 +165,15 @@ defmodule MultiTenantPersonTest do
from(version in PaperTrail.Version, select: count(version.id))
|> MultiTenantHelper.add_prefix_to_query()
|> Repo.all()
regular_version_count =
from(version in PaperTrail.Version, select: count(version.id))
|> Repo.all()

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

assert person_count == [0]
assert version_count == [3]
assert regular_version_count == [0]

assert Map.drop(version, [:id]) == %{
event: "delete",
Expand Down
17 changes: 17 additions & 0 deletions test/paper_trail/bang_functions_simple_mode_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,8 @@ defmodule PaperTrailTest.SimpleModeBangFunctions do
version = PaperTrail.get_version(company, prefix: tenant)
|> serialize

assert Company.count() == 0
assert Version.count() == 0
assert company_count == 1
assert version_count == 1
assert company |> serialize |> Map.drop([:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -429,6 +431,8 @@ defmodule PaperTrailTest.SimpleModeBangFunctions do
version = PaperTrail.get_version(updated_company, prefix: tenant)
|> serialize

assert Company.count() == 0
assert Version.count() == 0
assert company_count == 1
assert version_count == 2
assert Map.drop(company, [:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -471,6 +475,8 @@ defmodule PaperTrailTest.SimpleModeBangFunctions do
version = PaperTrail.get_version(updated_company, prefix: tenant)
|> serialize

assert Company.count() == 0
assert Version.count() == 0
assert company_count == 1
assert version_count == 2
assert Map.drop(company, [:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -522,6 +528,8 @@ defmodule PaperTrailTest.SimpleModeBangFunctions do
company = deleted_company |> serialize
version = PaperTrail.get_version(deleted_company, prefix: tenant) |> serialize

assert Company.count() == 0
assert Version.count() == 0
assert company_count == 0
assert version_count == 3
assert Map.drop(company, [:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -600,6 +608,9 @@ defmodule PaperTrailTest.SimpleModeBangFunctions do
|> MultiTenant.add_prefix_to_changeset()
|> PaperTrail.insert!(origin: "admin", meta: %{linkname: "izelnakri"}, prefix: tenant)

assert Person.count() == 0
assert Company.count() == 0
assert Version.count() == 0
person_count = Person.count(:multitenant)
company_count = Company.count(:multitenant)
version_count = Version.count(prefix: tenant)
Expand Down Expand Up @@ -664,6 +675,9 @@ defmodule PaperTrailTest.SimpleModeBangFunctions do
person = updated_person |> serialize
version = PaperTrail.get_version(updated_person, prefix: tenant) |> serialize

assert Person.count() == 0
assert Company.count() == 0
assert Version.count() == 0
assert person_count == 1
assert company_count == 2
assert version_count == 4
Expand Down Expand Up @@ -729,6 +743,9 @@ defmodule PaperTrailTest.SimpleModeBangFunctions do
old_person = updated_person |> serialize
version = PaperTrail.get_version(deleted_person, prefix: tenant) |> serialize

assert Person.count() == 0
assert Company.count() == 0
assert Version.count() == 0
assert person_count == 0
assert company_count == 2
assert version_count == 5
Expand Down
15 changes: 15 additions & 0 deletions test/paper_trail/bang_functions_strict_mode_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,8 @@ defmodule PaperTrailTest.StrictModeBangFunctions do
version = PaperTrail.get_version(inserted_company, prefix: tenant)
|> serialize()

assert Company.count() == 0
assert Version.count() == 0
assert company_count == 1
assert version_count == 1
assert Map.drop(company, [:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -436,6 +438,8 @@ defmodule PaperTrailTest.StrictModeBangFunctions do
version = PaperTrail.get_version(inserted_company, prefix: tenant)
|> serialize

assert Company.count() == 0
assert Version.count() == 0
assert company_count == 1
assert version_count == 1
assert Map.drop(company, [:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -485,6 +489,8 @@ defmodule PaperTrailTest.StrictModeBangFunctions do
updated_company_version = PaperTrail.get_version(updated_company, prefix: tenant)
|> serialize

assert Company.count() == 0
assert Version.count() == 0
assert company_count == 1
assert version_count == 2
assert Map.drop(company, [:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -543,6 +549,8 @@ defmodule PaperTrailTest.StrictModeBangFunctions do
deleted_company_version = PaperTrail.get_version(deleted_company, prefix: tenant)
|> serialize

assert Company.count() == 0
assert Version.count() == 0
assert company_count == 0
assert version_count == 3
assert Map.drop(old_company, [:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -628,6 +636,8 @@ defmodule PaperTrailTest.StrictModeBangFunctions do
person = inserted_person |> serialize
version = PaperTrail.get_version(inserted_person, prefix: tenant) |> serialize

assert Person.count() == 0
assert Version.count() == 0
assert person_count == 1
assert version_count == 3
assert Map.drop(person, [:id, :inserted_at, :updated_at]) == %{
Expand Down Expand Up @@ -689,6 +699,8 @@ defmodule PaperTrailTest.StrictModeBangFunctions do
updated_person_version = PaperTrail.get_version(updated_person, prefix: tenant)
|> serialize

assert Person.count() == 0
assert Version.count() == 0
assert person_count == 1
assert company_count == 2
assert version_count == 4
Expand Down Expand Up @@ -759,6 +771,9 @@ defmodule PaperTrailTest.StrictModeBangFunctions do
company_count = Company.count(:multitenant)
version_count = Version.count(prefix: tenant)

assert Company.count() == 0
assert Person.count() == 0
assert Version.count() == 0
assert person_count == 0
assert company_count == 2
assert version_count == 5
Expand Down
3 changes: 3 additions & 0 deletions test/paper_trail/paper_trail_version_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,13 @@ defmodule PaperTrailTest.Version do
test "[multi tenant] count works" do
versions = add_three_versions(MultiTenant.tenant())
Version.count(prefix: MultiTenant.tenant()) == length(versions)
Version.count() != length(versions)
end

test "[multi tenant] first works" do
add_three_versions(MultiTenant.tenant())
Version.first(prefix: MultiTenant.tenant()) |> serialize == @valid_attrs
Version.first() |> serialize != @valid_attrs
end

test "[multi tenant] last works" do
Expand All @@ -92,6 +94,7 @@ defmodule PaperTrailTest.Version do
origin: "test",
inserted_at: DateTime.from_naive!(~N[1965-04-14 01:00:00.000], "Etc/UTC")
}
Version.last() == nil
end

def add_three_versions(prefix \\ nil) do
Expand Down
2 changes: 2 additions & 0 deletions test/paper_trail/version_queries_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ defmodule PaperTrailTest.VersionQueries do
assert PaperTrail.get_version(Person, last_person.id) == target_version
assert PaperTrail.get_version(last_person_multi, prefix: tenant) == target_version_multi
assert PaperTrail.get_version(Person, last_person_multi.id, prefix: tenant) == target_version_multi
assert target_version != target_version_multi
end

test "get_versions gives us the right versions" do
Expand All @@ -120,6 +121,7 @@ defmodule PaperTrailTest.VersionQueries do
assert PaperTrail.get_versions(Person, last_person.id) == target_versions
assert PaperTrail.get_versions(last_person_multi, prefix: tenant) == target_versions_multi
assert PaperTrail.get_versions(Person, last_person_multi.id, prefix: tenant) == target_versions_multi
assert target_versions != target_versions_multi
end

test "get_current_model/1 gives us the current record of a version" do
Expand Down

0 comments on commit 1359026

Please sign in to comment.