mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 21:15:32 +09:00
58 lines
2.1 KiB
Erlang
58 lines
2.1 KiB
Erlang
%% SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
-module(list_ops_extract_tests).
|
|
-typing([eqwalizer]).
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
|
|
extract_user_id_valid_structure_test() ->
|
|
Item = #{<<"user">> => #{<<"id">> => <<"12345">>}},
|
|
?assertEqual(12345, list_ops:extract_user_id(Item)).
|
|
|
|
extract_user_id_missing_user_test() ->
|
|
Item = #{<<"other">> => <<"field">>},
|
|
?assertEqual(undefined, list_ops:extract_user_id(Item)).
|
|
|
|
extract_user_id_missing_id_test() ->
|
|
Item = #{<<"user">> => #{<<"name">> => <<"alice">>}},
|
|
?assertEqual(undefined, list_ops:extract_user_id(Item)).
|
|
|
|
extract_user_id_non_map_test() ->
|
|
?assertEqual(undefined, list_ops:extract_user_id(<<"string">>)),
|
|
?assertEqual(undefined, list_ops:extract_user_id([list])),
|
|
?assertEqual(undefined, list_ops:extract_user_id({tuple})),
|
|
?assertEqual(undefined, list_ops:extract_user_id(undefined)),
|
|
?assertEqual(undefined, list_ops:extract_user_id(123)).
|
|
|
|
extract_user_id_user_not_map_test() ->
|
|
Item = #{<<"user">> => <<"not_a_map">>},
|
|
?assertEqual(undefined, list_ops:extract_user_id(Item)).
|
|
|
|
extract_user_id_nested_structure_test() ->
|
|
Item = #{
|
|
<<"user">> => #{
|
|
<<"id">> => <<"999">>,
|
|
<<"name">> => <<"bob">>,
|
|
<<"extra">> => #{<<"nested">> => <<"data">>}
|
|
},
|
|
<<"role">> => <<"admin">>
|
|
},
|
|
?assertEqual(999, list_ops:extract_user_id(Item)).
|
|
|
|
extract_user_id_empty_id_test() ->
|
|
Item = #{<<"user">> => #{<<"id">> => <<>>}},
|
|
?assertEqual(undefined, list_ops:extract_user_id(Item)).
|
|
|
|
extract_user_id_empty_user_map_test() ->
|
|
Item = #{<<"user">> => #{}},
|
|
?assertEqual(undefined, list_ops:extract_user_id(Item)).
|
|
|
|
extract_user_id_invalid_id_format_test() ->
|
|
Item = #{<<"user">> => #{<<"id">> => <<"not_a_number">>}},
|
|
?assertEqual(undefined, list_ops:extract_user_id(Item)).
|
|
|
|
extract_user_id_rejects_zero_and_leading_zero_test() ->
|
|
?assertEqual(undefined, list_ops:extract_user_id(#{<<"user">> => #{<<"id">> => <<"0">>}})),
|
|
?assertEqual(
|
|
undefined, list_ops:extract_user_id(#{<<"user">> => #{<<"id">> => <<"001">>}})
|
|
).
|