test: use unit test to test paginate
This commit is contained in:
parent
9be73bfff0
commit
21b8ff6d14
|
@ -33,6 +33,10 @@
|
|||
b2i/1
|
||||
]).
|
||||
|
||||
-ifdef(TEST).
|
||||
-export([paginate_test_format/1]).
|
||||
-endif.
|
||||
|
||||
-export_type([
|
||||
match_spec_and_filter/0
|
||||
]).
|
||||
|
@ -671,4 +675,48 @@ params2qs_test_() ->
|
|||
)
|
||||
].
|
||||
|
||||
paginate_test_format(Row) ->
|
||||
Row.
|
||||
|
||||
paginate_test_() ->
|
||||
_ = ets:new(?MODULE, [named_table]),
|
||||
Size = 1000,
|
||||
MyLimit = 10,
|
||||
ets:insert(?MODULE, [{I, foo} || I <- lists:seq(1, Size)]),
|
||||
DefaultLimit = emqx_mgmt:max_row_limit(),
|
||||
NoParamsResult = paginate(?MODULE, #{}, {?MODULE, paginate_test_format}),
|
||||
PaginateResults = [
|
||||
paginate(
|
||||
?MODULE, #{<<"page">> => I, <<"limit">> => MyLimit}, {?MODULE, paginate_test_format}
|
||||
)
|
||||
|| I <- lists:seq(1, floor(Size / MyLimit))
|
||||
],
|
||||
[
|
||||
?_assertMatch(
|
||||
#{meta := #{count := Size, page := 1, limit := DefaultLimit}}, NoParamsResult
|
||||
),
|
||||
?_assertEqual(DefaultLimit, length(maps:get(data, NoParamsResult))),
|
||||
?_assertEqual(
|
||||
#{data => [], meta => #{count => Size, limit => DefaultLimit, page => 100}},
|
||||
paginate(?MODULE, #{<<"page">> => <<"100">>}, {?MODULE, paginate_test_format})
|
||||
)
|
||||
] ++ assertPaginateResults(PaginateResults, Size, MyLimit).
|
||||
|
||||
assertPaginateResults(Results, Size, Limit) ->
|
||||
AllData = lists:flatten([Data || #{data := Data} <- Results]),
|
||||
[
|
||||
begin
|
||||
Result = lists:nth(I, Results),
|
||||
[
|
||||
?_assertMatch(#{meta := #{count := Size, limit := Limit, page := I}}, Result),
|
||||
?_assertEqual(Limit, length(maps:get(data, Result)))
|
||||
]
|
||||
end
|
||||
|| I <- lists:seq(1, floor(Size / Limit))
|
||||
] ++
|
||||
[
|
||||
?_assertEqual(floor(Size / Limit), length(Results)),
|
||||
?_assertEqual(Size, length(AllData)),
|
||||
?_assertEqual(Size, sets:size(sets:from_list(AllData)))
|
||||
].
|
||||
-endif.
|
||||
|
|
|
@ -173,17 +173,6 @@ t_cluster_query(_Config) ->
|
|||
end,
|
||||
ok.
|
||||
|
||||
t_paging(_) ->
|
||||
emqx_mgmt_api_test_util:init_suite(),
|
||||
try
|
||||
Path0 = emqx_mgmt_api_test_util:api_path(["banned?page=1"]),
|
||||
{ok, _} = emqx_mgmt_api_test_util:request_api(get, Path0),
|
||||
Path1 = emqx_mgmt_api_test_util:api_path(["banned?page=10"]),
|
||||
{ok, _} = emqx_mgmt_api_test_util:request_api(get, Path1)
|
||||
after
|
||||
emqx_mgmt_api_test_util:end_suite()
|
||||
end.
|
||||
|
||||
t_bad_rpc(_) ->
|
||||
emqx_mgmt_api_test_util:init_suite(),
|
||||
process_flag(trap_exit, true),
|
||||
|
|
Loading…
Reference in New Issue