Files
fluxer/fluxer_gateway/test/rpc_client_tests.erl
T

27 lines
1.1 KiB
Erlang

%% SPDX-License-Identifier: AGPL-3.0-or-later
-module(rpc_client_tests).
-typing([eqwalizer]).
-include_lib("eunit/include/eunit.hrl").
rpc_headers_uses_request_ip_test() ->
Headers = rpc_client:rpc_headers(#{
<<"type">> => <<"session">>,
<<"ip">> => <<"203.0.113.7">>
}),
?assertEqual(<<"203.0.113.7">>, proplists:get_value(<<"x-forwarded-for">>, Headers)).
rpc_headers_falls_back_to_loopback_without_request_ip_test() ->
Headers = rpc_client:rpc_headers(#{<<"type">> => <<"guild_collection">>}),
?assertEqual(<<"127.0.0.1">>, proplists:get_value(<<"x-forwarded-for">>, Headers)).
is_retryable_5xx_test() ->
?assert(rpc_client:is_retryable({rpc_error, 500, <<"Internal server error">>})),
?assert(rpc_client:is_retryable({rpc_error, 502, <<"Bad gateway">>})),
?assert(rpc_client:is_retryable({rpc_error, 503, <<"Service unavailable">>})).
is_retryable_4xx_test() ->
?assertNot(rpc_client:is_retryable({rpc_error, 401, <<"Unauthorized">>})),
?assertNot(rpc_client:is_retryable({rpc_error, 404, <<"Not found">>})),
?assertNot(rpc_client:is_retryable({rpc_error, 429, <<"Rate limited">>})).