From 152ca611e7728f2ee1af3dcd0adf9d8c61449435 Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 20 Oct 2025 14:53:38 +0200 Subject: [PATCH 1/2] add seed test --- test/seeds_test.exs | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/seeds_test.exs diff --git a/test/seeds_test.exs b/test/seeds_test.exs new file mode 100644 index 0000000..c6b69b4 --- /dev/null +++ b/test/seeds_test.exs @@ -0,0 +1,47 @@ +defmodule Mv.SeedsTest do + use Mv.DataCase, async: false + + describe "Seeds script" do + test "runs successfully without errors" do + # Run the seeds script - should not raise any errors + assert Code.eval_file("priv/repo/seeds.exs") + + # Basic smoke test: ensure some data was created + {:ok, users} = Ash.read(Mv.Accounts.User) + {:ok, members} = Ash.read(Mv.Membership.Member) + {:ok, property_types} = Ash.read(Mv.Membership.PropertyType) + + assert length(users) > 0, "Seeds should create at least one user" + assert length(members) > 0, "Seeds should create at least one member" + assert length(property_types) > 0, "Seeds should create at least one property type" + end + + test "can be run multiple times (idempotent)" do + # Run seeds first time + assert Code.eval_file("priv/repo/seeds.exs") + + # Count records + {:ok, users_count_1} = Ash.read(Mv.Accounts.User) + {:ok, members_count_1} = Ash.read(Mv.Membership.Member) + {:ok, property_types_count_1} = Ash.read(Mv.Membership.PropertyType) + + # Run seeds second time - should not raise errors + assert Code.eval_file("priv/repo/seeds.exs") + + # Count records again - should be the same (upsert, not duplicate) + {:ok, users_count_2} = Ash.read(Mv.Accounts.User) + {:ok, members_count_2} = Ash.read(Mv.Membership.Member) + {:ok, property_types_count_2} = Ash.read(Mv.Membership.PropertyType) + + assert length(users_count_1) == length(users_count_2), + "Users count should remain same after re-running seeds" + + assert length(members_count_1) == length(members_count_2), + "Members count should remain same after re-running seeds" + + assert length(property_types_count_1) == length(property_types_count_2), + "PropertyTypes count should remain same after re-running seeds" + end + end +end + From abe1c9605051881f77f9791e0b78ce07f6bc840a Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 20 Oct 2025 14:53:38 +0200 Subject: [PATCH 2/2] add seed test --- test/seeds_test.exs | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/seeds_test.exs diff --git a/test/seeds_test.exs b/test/seeds_test.exs new file mode 100644 index 0000000..5c589ae --- /dev/null +++ b/test/seeds_test.exs @@ -0,0 +1,46 @@ +defmodule Mv.SeedsTest do + use Mv.DataCase, async: false + + describe "Seeds script" do + test "runs successfully without errors" do + # Run the seeds script - should not raise any errors + assert Code.eval_file("priv/repo/seeds.exs") + + # Basic smoke test: ensure some data was created + {:ok, users} = Ash.read(Mv.Accounts.User) + {:ok, members} = Ash.read(Mv.Membership.Member) + {:ok, property_types} = Ash.read(Mv.Membership.PropertyType) + + assert length(users) > 0, "Seeds should create at least one user" + assert length(members) > 0, "Seeds should create at least one member" + assert length(property_types) > 0, "Seeds should create at least one property type" + end + + test "can be run multiple times (idempotent)" do + # Run seeds first time + assert Code.eval_file("priv/repo/seeds.exs") + + # Count records + {:ok, users_count_1} = Ash.read(Mv.Accounts.User) + {:ok, members_count_1} = Ash.read(Mv.Membership.Member) + {:ok, property_types_count_1} = Ash.read(Mv.Membership.PropertyType) + + # Run seeds second time - should not raise errors + assert Code.eval_file("priv/repo/seeds.exs") + + # Count records again - should be the same (upsert, not duplicate) + {:ok, users_count_2} = Ash.read(Mv.Accounts.User) + {:ok, members_count_2} = Ash.read(Mv.Membership.Member) + {:ok, property_types_count_2} = Ash.read(Mv.Membership.PropertyType) + + assert length(users_count_1) == length(users_count_2), + "Users count should remain same after re-running seeds" + + assert length(members_count_1) == length(members_count_2), + "Members count should remain same after re-running seeds" + + assert length(property_types_count_1) == length(property_types_count_2), + "PropertyTypes count should remain same after re-running seeds" + end + end +end