mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
43 lines
1.5 KiB
Erlang
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().
|