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