mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
fix(gateway): skip empty dm partner registration casts (#2677)
This commit is contained in:
@@ -29,12 +29,18 @@ register_all(State) ->
|
||||
register_guild(_GuildId, GuildPid, State) ->
|
||||
case enabled(State) of
|
||||
true ->
|
||||
cast_partners({GuildPid, undefined}, partner_ids(State), State),
|
||||
State;
|
||||
maybe_cast_partners({GuildPid, undefined}, partner_ids(State), State);
|
||||
false ->
|
||||
State
|
||||
end.
|
||||
|
||||
-spec maybe_cast_partners(term(), [user_id()], session_state()) -> session_state().
|
||||
maybe_cast_partners(_GuildRef, [], State) ->
|
||||
State;
|
||||
maybe_cast_partners(GuildRef, Partners, State) ->
|
||||
ok = cast_partners(GuildRef, Partners, State),
|
||||
State.
|
||||
|
||||
-spec handle_mutual(guild_id(), [user_id()], session_state()) -> {noreply, session_state()}.
|
||||
handle_mutual(GuildId, PartnerIds, State) ->
|
||||
case maps:get(GuildId, maps:get(guilds, State, #{}), undefined) of
|
||||
|
||||
@@ -41,6 +41,13 @@ register_guild_sends_direct_partners_to_that_guild_test() ->
|
||||
?assertEqual({update_dm_partners, ?SESSION_ID, [2, 3]}, receive_cast())
|
||||
end).
|
||||
|
||||
register_guild_without_direct_partners_stays_silent_test() ->
|
||||
with_flag(true, fun() ->
|
||||
State = (state(#{}))#{channels => #{300 => channel(3, [?SELF, 5, 6])}},
|
||||
_ = session_dm_partners:register_guild(?GUILD, self(), State),
|
||||
?assertEqual(none, receive_cast())
|
||||
end).
|
||||
|
||||
register_all_is_inert_when_disabled_test() ->
|
||||
with_flag(false, fun() ->
|
||||
_ = session_dm_partners:register_all(state(connected())),
|
||||
|
||||
Reference in New Issue
Block a user