From 7e243a01dace8921abd727aa302226f1f6a917f6 Mon Sep 17 00:00:00 2001 From: Izel Nakri Date: Thu, 16 Mar 2017 09:44:00 +0100 Subject: [PATCH] tests updated for originator params feature --- README.md | 4 +-- mix.exs | 2 +- test/paper_trail_strict_mode_test.exs | 4 +-- test/paper_trail_test.exs | 42 +++++++++++++++++++++++++-- 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index eca07ab7..bce95e9f 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,7 @@ user = create_user() # all these set originator_id's for the version records PaperTrail.insert(changeset, originator: user) {:ok, result} = PaperTrail.update(edit_changeset, originator: user) -# or you can use :user instead of :originator if this is your config: +# or you can use :user in the params instead of :originator if this is your config: # paper_trail originator: [name: :user, model: YourApplication.User] {:ok, result} = PaperTrail.update(edit_changeset, user: user) result[:version] |> Repo.preload(:user) |> Map.get(:user) # we can access the user who made the change from the version thanks to originator relationships! @@ -278,7 +278,7 @@ edited_company = Company.changeset(company, %{name: "Acme LLC"}) # or even with an originator: user = create_user() deleted_company = Company.changeset(edited_company, %{}) - |> PaperTrail.delete(origin: "worker:github", originator: user.id, meta: %{slug: "acme-llc", important: true}) + |> PaperTrail.delete(origin: "worker:github", originator: user, meta: %{slug: "acme-llc", important: true}) ``` ## Suggestions diff --git a/mix.exs b/mix.exs index e4bbf7cd..461b9609 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule PaperTrail.Mixfile do def project do [ app: :paper_trail, - version: "0.6.3", + version: "0.7.0", elixir: "~> 1.4", description: description(), build_embedded: Mix.env == :prod, diff --git a/test/paper_trail_strict_mode_test.exs b/test/paper_trail_strict_mode_test.exs index c9971543..103574d6 100644 --- a/test/paper_trail_strict_mode_test.exs +++ b/test/paper_trail_strict_mode_test.exs @@ -33,7 +33,7 @@ defmodule PaperTrailStrictModeTest do test "creating a company creates a company version with correct attributes" do user = create_user() - {:ok, result} = create_company_with_version(@create_company_params, originator: user) + {:ok, result} = create_company_with_version(@create_company_params, user: user) company_count = Company.count() version_count = Version.count() @@ -138,7 +138,7 @@ defmodule PaperTrailStrictModeTest do {:ok, insert_company_result} = create_company_with_version() {:ok, update_company_result} = update_company_with_version(insert_company_result[:model]) company_before_deletion = first(Company, :id) |> @repo.one |> serialize - {:ok, result} = PaperTrail.delete(update_company_result[:model], originator: user) + {:ok, result} = PaperTrail.delete(update_company_result[:model], user: user) company_count = Company.count() version_count = Version.count() diff --git a/test/paper_trail_test.exs b/test/paper_trail_test.exs index 98b794e1..be2e4800 100644 --- a/test/paper_trail_test.exs +++ b/test/paper_trail_test.exs @@ -1,4 +1,3 @@ -# test one with user:, one with originator defmodule PaperTrailTest do use ExUnit.Case @@ -73,7 +72,46 @@ defmodule PaperTrailTest do assert result == ecto_result end - test "updating a company creates a company version with correct item_changes" do + test "updating a company with originator creates a correct company version" do + user = create_user() + {:ok, insert_result} = create_company_with_version() + {:ok, result} = update_company_with_version( + insert_result[:model], @update_company_params, user: user + ) + + company_count = Company.count() + version_count = Version.count() + + company = result[:model] |> serialize + version = result[:version] |> serialize + + assert Map.keys(result) == [:model, :version] + assert company_count == 1 + assert version_count == 2 + assert Map.drop(company, [:id, :inserted_at, :updated_at]) == %{ + name: "Acme LLC", + is_active: true, + city: "Hong Kong", + website: "http://www.acme.com", + address: nil, + facebook: "acme.llc", + twitter: nil, + founded_in: nil + } + assert Map.drop(version, [:id, :inserted_at]) == %{ + event: "update", + item_type: "SimpleCompany", + item_id: company.id, + item_changes: %{city: "Hong Kong", website: "http://www.acme.com", facebook: "acme.llc"}, + originator_id: user.id, + origin: nil, + meta: nil + } + assert company == first(Company, :id) |> @repo.one |> serialize + end + + + test "updating a company with originator[user] creates a correct company version" do user = create_user() {:ok, insert_result} = create_company_with_version() {:ok, result} = update_company_with_version(