test: add zones udpate/delete common test

This commit is contained in:
Zhongwen Deng 2022-03-18 15:20:59 +08:00
parent be0c26130a
commit f051424b3b
1 changed files with 19 additions and 17 deletions

View File

@ -97,34 +97,36 @@ t_log(_Config) ->
?assertEqual({error, {not_found, new}}, logger:get_handler_config(new)),
ok.
t_zones(_Config) ->
{ok, Zones} = get_zones(),
t_global_zone(_Config) ->
{ok, Zones} = get_global_zone(),
ZonesKeys = lists:map(fun({K, _}) -> K end, hocon_schema:roots(emqx_zone_schema)),
?assertEqual(lists:usort(ZonesKeys), lists:usort(maps:keys(Zones))),
?assertEqual(emqx_config:get_zone_conf(no_default, [mqtt, max_qos_allowed]),
emqx_map_lib:deep_get([<<"mqtt">>, <<"max_qos_allowed">>], Zones)),
NewZones = emqx_map_lib:deep_put([<<"mqtt">>, <<"max_qos_allowed">>], Zones, 1),
{ok, #{}} = update_zones(NewZones),
{ok, #{}} = update_global_zone(NewZones),
?assertEqual(1, emqx_config:get_zone_conf(no_default, [mqtt, max_qos_allowed])),
BadZones = emqx_map_lib:deep_put([<<"mqtt">>, <<"max_qos_allowed">>], Zones, 3),
?assertMatch({error, {"HTTP/1.1", 400, _}}, update_zones(BadZones)),
?assertMatch({error, {"HTTP/1.1", 400, _}}, update_global_zone(BadZones)),
ok.
get_zones() ->
Path = emqx_mgmt_api_test_util:api_path(["configs", "global_zone"]),
case emqx_mgmt_api_test_util:request_api(get, Path) of
{ok, Res} -> {ok, emqx_json:decode(Res, [return_maps])};
Error -> Error
end.
get_global_zone() ->
get_config("global_zone").
update_zones(Change) ->
AuthHeader = emqx_mgmt_api_test_util:auth_header_(),
UpdatePath = emqx_mgmt_api_test_util:api_path(["configs", "global_zone"]),
case emqx_mgmt_api_test_util:request_api(put, UpdatePath, "", AuthHeader, Change) of
{ok, Update} -> {ok, emqx_json:decode(Update, [return_maps])};
Error -> Error
end.
update_global_zone(Change) ->
update_config("global_zone", Change).
t_zones(_Config) ->
{ok, Zones} = get_config("zones"),
{ok, #{<<"mqtt">> := OldMqtt} = Zone1} = get_global_zone(),
{ok, #{}} = update_config("zones", Zones#{<<"new_zone">> => Zone1}),
NewMqtt = emqx_config:get_raw([zones, new_zone, mqtt]),
?assertEqual(OldMqtt, NewMqtt),
%% delete the new zones
{ok, #{}} = update_config("zones", Zones),
?assertEqual(undefined, emqx_config:get_raw([new_zone, mqtt], undefined)),
ok.
get_config(Name) ->
Path = emqx_mgmt_api_test_util:api_path(["configs", Name]),