fix: resolve notification handling and maintain after_action for cycle regeneration
This commit is contained in:
parent
6a91f7c711
commit
f7c33bfc7d
3 changed files with 108 additions and 57 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue