From 13590263c048cace75508091758bc063ffbc7d78 Mon Sep 17 00:00:00 2001 From: Ivan Gonzalez Date: Wed, 9 Aug 2017 09:51:49 +0200 Subject: [PATCH] Add some additional assertions in tests 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. --- example/test/multi_tenant_company_test.exs | 12 ++++++++++++ example/test/multi_tenant_person_test.exs | 12 ++++++++++++ .../bang_functions_simple_mode_test.exs | 17 +++++++++++++++++ .../bang_functions_strict_mode_test.exs | 15 +++++++++++++++ test/paper_trail/paper_trail_version_test.exs | 3 +++ test/paper_trail/version_queries_test.exs | 2 ++ 6 files changed, 61 insertions(+) diff --git a/example/test/multi_tenant_company_test.exs b/example/test/multi_tenant_company_test.exs index b55ccf95..beb9b570 100644 --- a/example/test/multi_tenant_company_test.exs +++ b/example/test/multi_tenant_company_test.exs @@ -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) @@ -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", @@ -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", @@ -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", diff --git a/example/test/multi_tenant_person_test.exs b/example/test/multi_tenant_person_test.exs index 04a23280..c6fab082 100644 --- a/example/test/multi_tenant_person_test.exs +++ b/example/test/multi_tenant_person_test.exs @@ -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]) @@ -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", @@ -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, @@ -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", diff --git a/test/paper_trail/bang_functions_simple_mode_test.exs b/test/paper_trail/bang_functions_simple_mode_test.exs index 00831204..39a1ee79 100644 --- a/test/paper_trail/bang_functions_simple_mode_test.exs +++ b/test/paper_trail/bang_functions_simple_mode_test.exs @@ -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]) == %{ @@ -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]) == %{ @@ -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]) == %{ @@ -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]) == %{ @@ -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) @@ -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 @@ -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 diff --git a/test/paper_trail/bang_functions_strict_mode_test.exs b/test/paper_trail/bang_functions_strict_mode_test.exs index e9fb16c2..a430cdf0 100644 --- a/test/paper_trail/bang_functions_strict_mode_test.exs +++ b/test/paper_trail/bang_functions_strict_mode_test.exs @@ -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]) == %{ @@ -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]) == %{ @@ -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]) == %{ @@ -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]) == %{ @@ -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]) == %{ @@ -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 @@ -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 diff --git a/test/paper_trail/paper_trail_version_test.exs b/test/paper_trail/paper_trail_version_test.exs index 0fa1a97e..2f4a2fc7 100644 --- a/test/paper_trail/paper_trail_version_test.exs +++ b/test/paper_trail/paper_trail_version_test.exs @@ -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 @@ -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 diff --git a/test/paper_trail/version_queries_test.exs b/test/paper_trail/version_queries_test.exs index ecc35660..37b52ed9 100644 --- a/test/paper_trail/version_queries_test.exs +++ b/test/paper_trail/version_queries_test.exs @@ -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 @@ -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