Files
fluxer/fluxer_gateway/test/presence_manager_tests.erl
T

43 lines
1.5 KiB
Erlang

%% SPDX-License-Identifier: AGPL-3.0-or-later
-module(presence_manager_tests).
-typing([eqwalizer]).
-include_lib("eunit/include/eunit.hrl").
start_or_lookup_rejects_missing_user_id_test() ->
?assertEqual({error, invalid_user_id}, presence_manager:start_or_lookup(#{})).
track_untrack_shard_user_test() ->
ensure_shard_user_table(),
?assertEqual(ok, presence_manager:track_shard_user(0, 42)),
?assertEqual(ok, presence_manager:track_shard_user(0, 43)),
UserIds = presence_manager:get_shard_user_ids(0),
?assert(lists:member(42, UserIds)),
?assert(lists:member(43, UserIds)),
?assertEqual(ok, presence_manager:untrack_shard_user(0, 42)),
UserIds2 = presence_manager:get_shard_user_ids(0),
?assertNot(lists:member(42, UserIds2)),
?assert(lists:member(43, UserIds2)),
cleanup_shard_user_table().
clear_shard_user_ids_test() ->
ensure_shard_user_table(),
presence_manager:track_shard_user(1, 100),
presence_manager:track_shard_user(1, 101),
presence_manager:track_shard_user(2, 200),
?assertEqual(ok, presence_manager:clear_shard_user_ids(1)),
?assertEqual([], presence_manager:get_shard_user_ids(1)),
?assertEqual([200], presence_manager:get_shard_user_ids(2)),
cleanup_shard_user_table().
get_shard_user_ids_no_table_test() ->
cleanup_shard_user_table(),
?assertEqual([], presence_manager:get_shard_user_ids(0)).
ensure_shard_user_table() ->
presence_manager:ensure_shard_user_table().
cleanup_shard_user_table() ->
presence_manager:delete_shard_user_table().