feat: make all member fields optional, so member creation can be continued later
This commit is contained in:
parent
d4c7af558d
commit
800a55d42f
8 changed files with 286 additions and 40 deletions
52
test/accounts/empty_member_creation_test.exs
Normal file
52
test/accounts/empty_member_creation_test.exs
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
defmodule Mv.Accounts.EmptyMemberCreationTest do
|
||||
use Mv.DataCase, async: true
|
||||
alias Mv.Accounts
|
||||
alias Mv.Membership
|
||||
|
||||
describe "Empty Member Creation" do
|
||||
test "can create completely empty member" do
|
||||
{:ok, member} = Membership.create_member(%{})
|
||||
|
||||
assert member.id
|
||||
assert member.first_name == nil
|
||||
assert member.last_name == nil
|
||||
assert member.member_email == nil
|
||||
assert member.birth_date == nil
|
||||
assert member.paid == nil
|
||||
assert member.phone_number == nil
|
||||
assert member.join_date == nil
|
||||
assert member.exit_date == nil
|
||||
assert member.notes == nil
|
||||
assert member.city == nil
|
||||
assert member.street == nil
|
||||
assert member.house_number == nil
|
||||
assert member.postal_code == nil
|
||||
end
|
||||
|
||||
test "user creation creates empty member automatically" do
|
||||
{:ok, user} = Accounts.create_user(%{email: "test@example.com"})
|
||||
|
||||
# Reload user to get the member_id
|
||||
user = Ash.reload!(user, domain: Mv.Accounts)
|
||||
assert user.member_id
|
||||
|
||||
# Get the created member
|
||||
member = Ash.get!(Mv.Membership.Member, user.member_id, domain: Mv.Membership)
|
||||
|
||||
# Member should be mostly empty except for email
|
||||
assert member.member_email == "test@example.com"
|
||||
assert member.first_name == nil
|
||||
assert member.last_name == nil
|
||||
assert member.birth_date == nil
|
||||
assert member.paid == nil
|
||||
assert member.phone_number == nil
|
||||
assert member.join_date == nil
|
||||
assert member.exit_date == nil
|
||||
assert member.notes == nil
|
||||
assert member.city == nil
|
||||
assert member.street == nil
|
||||
assert member.house_number == nil
|
||||
assert member.postal_code == nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -8,8 +8,6 @@ defmodule Mv.Accounts.UserMemberIntegrationTest do
|
|||
test "ein User kann einem Member zugeordnet werden" do
|
||||
{:ok, member} =
|
||||
Membership.create_member(%{
|
||||
first_name: "Max",
|
||||
last_name: "Mustermann",
|
||||
member_email: "max@example.com"
|
||||
})
|
||||
|
||||
|
|
@ -20,8 +18,6 @@ defmodule Mv.Accounts.UserMemberIntegrationTest do
|
|||
test "ein Member kann nur einem User zugeordnet werden (unique constraint)" do
|
||||
{:ok, member} =
|
||||
Membership.create_member(%{
|
||||
first_name: "Anna",
|
||||
last_name: "Test",
|
||||
member_email: "anna@example.com"
|
||||
})
|
||||
|
||||
|
|
@ -66,12 +62,10 @@ defmodule Mv.Accounts.UserMemberIntegrationTest do
|
|||
test "ein Member kann ohne User existieren" do
|
||||
{:ok, member} =
|
||||
Membership.create_member(%{
|
||||
first_name: "Lisa",
|
||||
last_name: "Solo",
|
||||
member_email: "lisa@example.com"
|
||||
})
|
||||
|
||||
assert member.id
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue