fix(gateway): return precise rpc errors and bound snowflakes (#2491)

This commit is contained in:
Hampus
2026-09-06 15:24:54 +02:00
committed by GitHub
parent 214d19d45a
commit 31d7cb81d6
8 changed files with 183 additions and 16 deletions
+19 -1
View File
@@ -22,6 +22,20 @@ to_snowflake_rejects_malformed_values_test() ->
?assertError({invalid_snowflake, <<"abc">>}, snowflake_id:parse(<<"abc">>)),
?assertError({invalid_snowflake, 12.34}, snowflake_id:parse(12.34)).
to_snowflake_rejects_values_above_int64_test() ->
?assertEqual(9223372036854775807, snowflake_id:parse(9223372036854775807)),
?assertEqual(9223372036854775807, snowflake_id:parse(<<"9223372036854775807">>)),
?assertError(
{invalid_snowflake, 9223372036854775808}, snowflake_id:parse(9223372036854775808)
),
?assertError(
{invalid_snowflake, <<"9223372036854775808">>},
snowflake_id:parse(<<"9223372036854775808">>)
),
?assertError(
{invalid_snowflake, "9223372036854775808"}, snowflake_id:parse("9223372036854775808")
).
extract_id_with_atom_key_valid_test() ->
?assertEqual(123, type_conv:extract_id(#{user_id => 123}, user_id)),
?assertEqual(456, type_conv:extract_id(#{user_id => <<"456">>}, user_id)),
@@ -35,7 +49,11 @@ extract_id_with_atom_key_rejects_malformed_ids_test() ->
?assertEqual(undefined, type_conv:extract_id(#{user_id => <<"+1">>}, user_id)),
?assertEqual(undefined, type_conv:extract_id(#{user_id => "001"}, user_id)),
?assertEqual(undefined, type_conv:extract_id(#{user_id => "invalid"}, user_id)),
?assertEqual(undefined, type_conv:extract_id(#{user_id => [1, 2, 3]}, user_id)).
?assertEqual(undefined, type_conv:extract_id(#{user_id => [1, 2, 3]}, user_id)),
?assertEqual(undefined, type_conv:extract_id(#{user_id => 9223372036854775808}, user_id)),
?assertEqual(
undefined, type_conv:extract_id(#{user_id => <<"9223372036854775808">>}, user_id)
).
extract_id_with_atom_key_missing_or_invalid_test() ->
?assertEqual(undefined, type_conv:extract_id(#{other_field => 999}, user_id)),