mirror of
https://github.com/fluxerapp/fluxer.git
synced 2026-09-03 05:10:25 +03:00
fix(gateway): drop the channel engine on an empty range list (#2278)
This commit is contained in:
@@ -179,7 +179,7 @@ maybe_ensure_store(ListId, SubsTab, State) ->
|
||||
ensure_channel_engine_for_subs(ListId, SubsTab, State) ->
|
||||
case map_size(guild_member_list_subs:get_list_subs(ListId, SubsTab)) > 0 of
|
||||
true -> guild_member_list_channel_engine:ensure(ListId, State);
|
||||
false -> State
|
||||
false -> guild_member_list_channel_engine:drop(ListId, State)
|
||||
end.
|
||||
|
||||
-spec compute_ranges_to_sync([range()], [range()], boolean()) -> [range()].
|
||||
|
||||
@@ -96,6 +96,18 @@ unsubscribe_last_session_drops_channel_store_test() ->
|
||||
?assertNot(maps:is_key(<<"500">>, Engines)),
|
||||
?assertEqual(undefined, ets:info(Ref, name)).
|
||||
|
||||
empty_ranges_subscribe_drops_channel_engine_test() ->
|
||||
Ref = guild_member_list_engine:new(),
|
||||
State = (base_state(make_subs_tab([{<<"500">>, <<"s1">>, [{0, 99}]}])))#{
|
||||
channel_member_list_engines => #{<<"500">> => Ref}
|
||||
},
|
||||
{NewState, _ShouldSync, _Ranges} = guild_member_list:subscribe_ranges(
|
||||
<<"s1">>, <<"500">>, [], State
|
||||
),
|
||||
Engines = maps:get(channel_member_list_engines, NewState, #{}),
|
||||
?assertNot(maps:is_key(<<"500">>, Engines)),
|
||||
?assertEqual(undefined, ets:info(Ref, name)).
|
||||
|
||||
broadcast_channel_list_dispatches_sync_immediately_test() ->
|
||||
with_sync_dispatch_mock(fun run_broadcast_channel_list_dispatches_sync_immediately/0).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user