test(emqx_authz): use snabbkaffe:retry instead of timer:sleep

also use emqx_json rather than jiffy or jsx directly
This commit is contained in:
Stefan Strigler 2023-03-07 11:32:03 +01:00
parent bd7e789bea
commit a7605fba94
1 changed files with 61 additions and 41 deletions

View File

@ -21,7 +21,6 @@
-import(emqx_mgmt_api_test_util, [request/3, uri/1]). -import(emqx_mgmt_api_test_util, [request/3, uri/1]).
-include_lib("eunit/include/eunit.hrl"). -include_lib("eunit/include/eunit.hrl").
-include_lib("common_test/include/ct.hrl").
-include_lib("emqx/include/emqx_placeholder.hrl"). -include_lib("emqx/include/emqx_placeholder.hrl").
-define(MONGO_SINGLE_HOST, "mongo"). -define(MONGO_SINGLE_HOST, "mongo").
@ -183,7 +182,7 @@ t_api(_) ->
{ok, 404, ErrResult} = request(get, uri(["authorization", "sources", "http"]), []), {ok, 404, ErrResult} = request(get, uri(["authorization", "sources", "http"]), []),
?assertMatch( ?assertMatch(
#{<<"code">> := <<"NOT_FOUND">>, <<"message">> := <<"Not found: http">>}, #{<<"code">> := <<"NOT_FOUND">>, <<"message">> := <<"Not found: http">>},
jsx:decode(ErrResult) emqx_json:decode(ErrResult, [return_maps])
), ),
[ [
@ -215,7 +214,9 @@ t_api(_) ->
?SOURCE1#{<<"enable">> := false} ?SOURCE1#{<<"enable">> := false}
), ),
{ok, 200, Result3} = request(get, uri(["authorization", "sources", "http"]), []), {ok, 200, Result3} = request(get, uri(["authorization", "sources", "http"]), []),
?assertMatch(#{<<"type">> := <<"http">>, <<"enable">> := false}, jsx:decode(Result3)), ?assertMatch(
#{<<"type">> := <<"http">>, <<"enable">> := false}, emqx_json:decode(Result3, [return_maps])
),
Keyfile = emqx_common_test_helpers:app_path( Keyfile = emqx_common_test_helpers:app_path(
emqx, emqx,
@ -252,7 +253,7 @@ t_api(_) ->
<<"total">> := 0, <<"total">> := 0,
<<"nomatch">> := 0 <<"nomatch">> := 0
} }
} = jiffy:decode(Status4, [return_maps]), } = emqx_json:decode(Status4, [return_maps]),
?assertMatch( ?assertMatch(
#{ #{
<<"type">> := <<"mongodb">>, <<"type">> := <<"mongodb">>,
@ -264,7 +265,7 @@ t_api(_) ->
<<"verify">> := <<"verify_none">> <<"verify">> := <<"verify_none">>
} }
}, },
jsx:decode(Result4) emqx_json:decode(Result4, [return_maps])
), ),
{ok, Cacert} = file:read_file(Cacertfile), {ok, Cacert} = file:read_file(Cacertfile),
@ -296,7 +297,7 @@ t_api(_) ->
<<"verify">> := <<"verify_none">> <<"verify">> := <<"verify_none">>
} }
}, },
jsx:decode(Result5) emqx_json:decode(Result5, [return_maps])
), ),
{ok, 200, Status5_1} = request(get, uri(["authorization", "sources", "mongodb", "status"]), []), {ok, 200, Status5_1} = request(get, uri(["authorization", "sources", "mongodb", "status"]), []),
@ -307,7 +308,7 @@ t_api(_) ->
<<"total">> := 0, <<"total">> := 0,
<<"nomatch">> := 0 <<"nomatch">> := 0
} }
} = jiffy:decode(Status5_1, [return_maps]), } = emqx_json:decode(Status5_1, [return_maps]),
#{ #{
ssl := #{ ssl := #{
@ -354,7 +355,7 @@ t_api(_) ->
<<"code">> := <<"BAD_REQUEST">>, <<"code">> := <<"BAD_REQUEST">>,
<<"message">> := <<"Type mismatch", _/binary>> <<"message">> := <<"Type mismatch", _/binary>>
}, },
jiffy:decode(TypeMismatch, [return_maps]) emqx_json:decode(TypeMismatch, [return_maps])
), ),
lists:foreach( lists:foreach(
@ -382,7 +383,6 @@ t_api(_) ->
] ]
), ),
emqtt:connect(Client), emqtt:connect(Client),
timer:sleep(50),
emqtt:publish( emqtt:publish(
Client, Client,
@ -392,7 +392,13 @@ t_api(_) ->
[{qos, 1}] [{qos, 1}]
), ),
{ok, 200, Status5} = request(get, uri(["authorization", "sources", "file", "status"]), []), snabbkaffe:retry(
10,
3,
fun() ->
{ok, 200, Status5} = request(
get, uri(["authorization", "sources", "file", "status"]), []
),
#{ #{
<<"metrics">> := #{ <<"metrics">> := #{
<<"allow">> := 1, <<"allow">> := 1,
@ -400,9 +406,10 @@ t_api(_) ->
<<"total">> := 1, <<"total">> := 1,
<<"nomatch">> := 0 <<"nomatch">> := 0
} }
} = jiffy:decode(Status5, [return_maps]), } = emqx_json:decode(Status5, [return_maps])
end
),
timer:sleep(50),
emqtt:publish( emqtt:publish(
Client, Client,
<<"t2">>, <<"t2">>,
@ -411,7 +418,13 @@ t_api(_) ->
[{qos, 1}] [{qos, 1}]
), ),
{ok, 200, Status6} = request(get, uri(["authorization", "sources", "file", "status"]), []), snabbkaffe:retry(
10,
3,
fun() ->
{ok, 200, Status6} = request(
get, uri(["authorization", "sources", "file", "status"]), []
),
#{ #{
<<"metrics">> := #{ <<"metrics">> := #{
<<"allow">> := 2, <<"allow">> := 2,
@ -419,9 +432,10 @@ t_api(_) ->
<<"total">> := 2, <<"total">> := 2,
<<"nomatch">> := 0 <<"nomatch">> := 0
} }
} = jiffy:decode(Status6, [return_maps]), } = emqx_json:decode(Status6, [return_maps])
end
),
timer:sleep(50),
emqtt:publish( emqtt:publish(
Client, Client,
<<"t3">>, <<"t3">>,
@ -430,8 +444,13 @@ t_api(_) ->
[{qos, 1}] [{qos, 1}]
), ),
timer:sleep(50), snabbkaffe:retry(
{ok, 200, Status7} = request(get, uri(["authorization", "sources", "file", "status"]), []), 10,
3,
fun() ->
{ok, 200, Status7} = request(
get, uri(["authorization", "sources", "file", "status"]), []
),
#{ #{
<<"metrics">> := #{ <<"metrics">> := #{
<<"allow">> := 3, <<"allow">> := 3,
@ -439,8 +458,9 @@ t_api(_) ->
<<"total">> := 3, <<"total">> := 3,
<<"nomatch">> := 0 <<"nomatch">> := 0
} }
} = jiffy:decode(Status7, [return_maps]), } = emqx_json:decode(Status7, [return_maps])
end
),
ok. ok.
t_move_source(_) -> t_move_source(_) ->
@ -564,7 +584,7 @@ t_aggregate_metrics(_) ->
). ).
get_sources(Result) -> get_sources(Result) ->
maps:get(<<"sources">>, jsx:decode(Result), []). maps:get(<<"sources">>, emqx_json:decode(Result, [return_maps])).
data_dir() -> emqx:data_dir(). data_dir() -> emqx:data_dir().