Files
fluxer/fluxer_gateway/test/gateway_rpc_guild_channels_tests.erl
T

56 lines
2.1 KiB
Erlang

%% SPDX-License-Identifier: AGPL-3.0-or-later
-module(gateway_rpc_guild_channels_tests).
-typing([eqwalizer]).
-include_lib("eunit/include/eunit.hrl").
get_viewable_channels_rejects_zero_guild_id_test() ->
Params = #{<<"guild_id">> => <<"0">>, <<"user_id">> => <<"1">>},
?assertError(
{gateway_rpc_error, <<"guild_id_invalid">>},
gateway_rpc_guild_channels:handle(<<"guild.get_viewable_channels">>, Params)
).
get_viewable_channels_rejects_leading_zero_user_id_test() ->
Params = #{<<"guild_id">> => <<"1">>, <<"user_id">> => <<"001">>},
?assertError(
{gateway_rpc_error, <<"user_id_invalid">>},
gateway_rpc_guild_channels:handle(<<"guild.get_viewable_channels">>, Params)
).
resolve_channel_mentions_skips_invalid_channel_ids_test() ->
Params = #{<<"guild_id">> => <<"1">>, <<"channel_ids">> => [<<"0">>, <<"001">>, <<"-1">>]},
?assertEqual(
#{<<"channels">> => []},
gateway_rpc_guild_channels:handle(<<"guild.resolve_channel_mentions">>, Params)
).
resolve_channel_mentions_from_snapshot_skips_forum_and_media_test() ->
GuildId = 7301,
ok = guild_permission_cache:put_data(GuildId, #{
<<"guild">> => #{<<"owner_id">> => <<"1">>},
<<"roles">> => [#{<<"id">> => <<"7301">>, <<"permissions">> => <<"1024">>}],
<<"members">> => [],
<<"channels">> => [
#{<<"id">> => <<"10">>, <<"name">> => <<"text">>, <<"type">> => 0},
#{<<"id">> => <<"11">>, <<"name">> => <<"forum">>, <<"type">> => 15},
#{<<"id">> => <<"12">>, <<"name">> => <<"media">>, <<"type">> => 16}
]
}),
try
Params = #{
<<"guild_id">> => <<"7301">>, <<"channel_ids">> => [<<"10">>, <<"11">>, <<"12">>]
},
?assertEqual(
#{
<<"channels">> => [
#{<<"id">> => <<"10">>, <<"name">> => <<"text">>, <<"type">> => 0}
]
},
gateway_rpc_guild_channels:handle(<<"guild.resolve_channel_mentions">>, Params)
)
after
guild_permission_cache:delete(GuildId)
end.