fix: resolve notification handling and maintain after_action for cycle regeneration

This commit is contained in:
Moritz 2025-12-15 15:26:05 +01:00
parent 6a91f7c711
commit f7c33bfc7d
Signed by: moritz
GPG key ID: 1020A035E5DD0824
3 changed files with 108 additions and 57 deletions

View file

@ -90,13 +90,13 @@ defmodule Mv.Membership.MemberTypeChangeIntegrationTest do
case MembershipFeeCycle
|> Ash.Query.filter(member_id == ^member.id and cycle_start == ^past_cycle_start)
|> Ash.read_one() do
{:ok, existing_cycle} ->
{:ok, existing_cycle} when not is_nil(existing_cycle) ->
# Update to paid
existing_cycle
|> Ash.Changeset.for_update(:update, %{status: :paid})
|> Ash.update!()
{:error, _} ->
_ ->
create_cycle(member, yearly_type1, %{
cycle_start: past_cycle_start,
status: :paid,
@ -109,10 +109,10 @@ defmodule Mv.Membership.MemberTypeChangeIntegrationTest do
case MembershipFeeCycle
|> Ash.Query.filter(member_id == ^member.id and cycle_start == ^current_cycle_start)
|> Ash.read_one() do
{:ok, existing_cycle} ->
{:ok, existing_cycle} when not is_nil(existing_cycle) ->
Ash.destroy!(existing_cycle)
{:error, _} ->
_ ->
:ok
end
@ -297,10 +297,10 @@ defmodule Mv.Membership.MemberTypeChangeIntegrationTest do
case MembershipFeeCycle
|> Ash.Query.filter(member_id == ^member.id and cycle_start == ^past_cycle_start)
|> Ash.read_one() do
{:ok, existing_cycle} ->
{:ok, existing_cycle} when not is_nil(existing_cycle) ->
Ash.destroy!(existing_cycle)
{:error, _} ->
_ ->
:ok
end
@ -316,10 +316,10 @@ defmodule Mv.Membership.MemberTypeChangeIntegrationTest do
case MembershipFeeCycle
|> Ash.Query.filter(member_id == ^member.id and cycle_start == ^current_cycle_start)
|> Ash.read_one() do
{:ok, existing_cycle} ->
{:ok, existing_cycle} when not is_nil(existing_cycle) ->
Ash.destroy!(existing_cycle)
{:error, _} ->
_ ->
:ok
end
@ -409,7 +409,7 @@ defmodule Mv.Membership.MemberTypeChangeIntegrationTest do
case MembershipFeeCycle
|> Ash.Query.filter(member_id == ^member.id and cycle_start == ^current_cycle_start)
|> Ash.read_one() do
{:ok, existing_cycle} ->
{:ok, existing_cycle} when not is_nil(existing_cycle) ->
# Update to unpaid if it's not
if existing_cycle.status != :unpaid do
existing_cycle
@ -417,7 +417,7 @@ defmodule Mv.Membership.MemberTypeChangeIntegrationTest do
|> Ash.update!()
end
{:error, _} ->
_ ->
# Create if it doesn't exist
create_cycle(member, yearly_type1, %{
cycle_start: current_cycle_start,