Skip to content

Commit

Permalink
Add multi tenancy tests in paper_trail_version_test file
Browse files Browse the repository at this point in the history
  • Loading branch information
dreamingechoes committed Aug 1, 2017
1 parent cf638d6 commit b914cfd
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions test/paper_trail/paper_trail_version_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ defmodule PaperTrailTest.Version do
use ExUnit.Case

alias PaperTrail.Version
alias PaperTrailTest.MultiTenantHelper, as: MultiTenant

@valid_attrs %{
event: "insert",
Expand All @@ -20,13 +21,20 @@ defmodule PaperTrailTest.Version do
Application.put_env(:paper_trail, :repo, PaperTrail.Repo)
Code.eval_file("lib/paper_trail.ex")
Code.eval_file("lib/version.ex")
MultiTenant.setup_tenant(@repo)
:ok
end

setup do
@repo.delete_all(Version)
Version
|> MultiTenant.add_prefix_to_query()
|> @repo.delete_all()
on_exit fn ->
@repo.delete_all(Version)
Version
|> MultiTenant.add_prefix_to_query()
|> @repo.delete_all()
end
:ok
end
Expand Down Expand Up @@ -63,6 +71,29 @@ defmodule PaperTrailTest.Version do
}
end

# Multi tenant tests
test "[multi tenant] count works" do
versions = add_three_versions_multi()
Version.count(prefix: MultiTenant.tenant()) == length(versions)
end

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

test "[multi tenant] last works" do
versions = add_three_versions_multi()
Version.last(prefix: MultiTenant.tenant()) |> serialize != %{
event: "insert",
item_type: "Person",
item_id: 3,
item_changes: %{first_name: "Yukihiro", last_name: "Matsumoto"},
origin: "test",
inserted_at: DateTime.from_naive!(~N[1965-04-14 01:00:00.000], "Etc/UTC")
}
end

def add_three_versions do
@repo.insert_all(Version, [
@valid_attrs,
Expand All @@ -84,6 +115,27 @@ defmodule PaperTrailTest.Version do
}
], returning: true) |> elem(1)
end
def add_three_versions_multi do
@repo.insert_all(Version, [
@valid_attrs,
%{
event: "insert",
item_type: "Person",
item_id: 2,
item_changes: %{first_name: "Brendan", last_name: "Eich"},
origin: "test",
inserted_at: DateTime.from_naive!(~N[1961-07-04 01:00:00.000], "Etc/UTC")
},
%{
event: "insert",
item_type: "Person",
item_id: 3,
item_changes: %{first_name: "Yukihiro", last_name: "Matsumoto"},
origin: "test",
inserted_at: DateTime.from_naive!(~N[1965-04-14 01:00:00.000], "Etc/UTC")
}
], returning: true, prefix: MultiTenant.tenant()) |> elem(1)
end

def serialize(nil), do: nil
def serialize(resource) do
Expand Down

0 comments on commit b914cfd

Please sign in to comment.