From 05c956040dc58c69ba7c83c69c0e539e0a7b8cee Mon Sep 17 00:00:00 2001 From: Izel Nakri Date: Sun, 1 Mar 2020 05:55:50 +0100 Subject: [PATCH] seperating UUID tests from the test trial --- .circleci/config.yml | 6 ++- Dockerfile | 2 +- test/paper_trail/uuid_test.exs | 99 +++++++++++++++++----------------- 3 files changed, 56 insertions(+), 51 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8a1e0730..785e9ee6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,8 +31,10 @@ jobs: command: | apk add docker-compose sed -i $(echo "s/\$CIRCLE_BRANCH/$CIRCLE_BRANCH/g") /code/.env - docker-compose up -d - - run: docker-compose exec -T backend mix test --trace + - run: docker-compose run backend mix test --only describe:"PaperTrailTest.UUIDTest" --trace + - run: docker-compose run backend mix test --exclude describe:"PaperTrailTest.UUIDTest" --trace + - run: exit 0 + workflows: version: 2 diff --git a/Dockerfile b/Dockerfile index c1539cd1..15553586 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ ADD . /code/ RUN mix compile -ENTRYPOINT "/bin/sh" +CMD ["/bin/sh"] # mix ecto.create # mix ecto.migrate diff --git a/test/paper_trail/uuid_test.exs b/test/paper_trail/uuid_test.exs index 56410fc7..9d900add 100644 --- a/test/paper_trail/uuid_test.exs +++ b/test/paper_trail/uuid_test.exs @@ -17,6 +17,7 @@ defmodule PaperTrailTest.UUIDTest do Code.eval_file("lib/paper_trail.ex") Code.eval_file("lib/version.ex") + repo().delete_all(Version) repo().delete_all(Admin) repo().delete_all(Product) @@ -24,68 +25,70 @@ defmodule PaperTrailTest.UUIDTest do :ok end - test "creates versions with models that have a UUID primary key" do - product = - %Product{} - |> Product.changeset(%{name: "Hair Cream"}) - |> PaperTrail.insert!() - - version = Version |> last |> repo().one - - assert version.item_id == product.id - assert version.item_type == "Product" - end + describe "PaperTrailTest.UUIDTest" do + test "creates versions with models that have a UUID primary key" do + product = + %Product{} + |> Product.changeset(%{name: "Hair Cream"}) + |> PaperTrail.insert!() - test "handles originators with a UUID primary key" do - admin = - %Admin{} - |> Admin.changeset(%{email: "admin@example.com"}) - |> repo().insert! + version = Version |> last |> repo().one - %Product{} - |> Product.changeset(%{name: "Hair Cream"}) - |> PaperTrail.insert!(originator: admin) + assert version.item_id == product.id + assert version.item_type == "Product" + end - version = - Version - |> last - |> repo().one - |> repo().preload(:admin) + test "handles originators with a UUID primary key" do + admin = + %Admin{} + |> Admin.changeset(%{email: "admin@example.com"}) + |> repo().insert! - assert version.admin == admin - end + %Product{} + |> Product.changeset(%{name: "Hair Cream"}) + |> PaperTrail.insert!(originator: admin) - test "versioning models that have a non-regular primary key" do - item = - %Item{} - |> Item.changeset(%{title: "hello"}) - |> PaperTrail.insert!() + version = + Version + |> last + |> repo().one + |> repo().preload(:admin) - version = Version |> last |> repo().one - assert version.item_id == item.item_id - end + assert version.admin == admin + end - test "test INTEGER primary key for item_type == :string" do - if PaperTrail.Version.__schema__(:type, :item_id) == :string do + test "versioning models that have a non-regular primary key" do item = - %FooItem{} - |> FooItem.changeset(%{title: "hello"}) + %Item{} + |> Item.changeset(%{title: "hello"}) |> PaperTrail.insert!() version = Version |> last |> repo().one - assert version.item_id == "#{item.id}" + assert version.item_id == item.item_id end - end - test "test STRING primary key for item_type == :string" do - if PaperTrail.Version.__schema__(:type, :item_id) == :string do - item = - %BarItem{} - |> BarItem.changeset(%{item_id: "#{:os.system_time()}", title: "hello"}) - |> PaperTrail.insert!() + test "test INTEGER primary key for item_type == :string" do + if PaperTrail.Version.__schema__(:type, :item_id) == :string do + item = + %FooItem{} + |> FooItem.changeset(%{title: "hello"}) + |> PaperTrail.insert!() - version = Version |> last |> repo().one - assert version.item_id == item.item_id + version = Version |> last |> repo().one + assert version.item_id == "#{item.id}" + end + end + + test "test STRING primary key for item_type == :string" do + if PaperTrail.Version.__schema__(:type, :item_id) == :string do + item = + %BarItem{} + |> BarItem.changeset(%{item_id: "#{:os.system_time()}", title: "hello"}) + |> PaperTrail.insert!() + + version = Version |> last |> repo().one + assert version.item_id == item.item_id + end end end end