test(emqx_bridge): increase coverage by adding common edge cases
This commit is contained in:
parent
478601ee41
commit
c1adf0de1f
|
@ -196,6 +196,9 @@ t_http_crud_apis(Config) ->
|
||||||
%% assert we there's no bridges at first
|
%% assert we there's no bridges at first
|
||||||
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
||||||
|
|
||||||
|
{ok, 404, _} = request(get, uri(["bridges", "foo"]), []),
|
||||||
|
{ok, 404, _} = request(get, uri(["bridges", "webhook:foo"]), []),
|
||||||
|
|
||||||
%% then we add a webhook bridge, using POST
|
%% then we add a webhook bridge, using POST
|
||||||
%% POST /bridges/ will create a bridge
|
%% POST /bridges/ will create a bridge
|
||||||
URL1 = ?URL(Port, "path1"),
|
URL1 = ?URL(Port, "path1"),
|
||||||
|
@ -317,6 +320,17 @@ t_http_crud_apis(Config) ->
|
||||||
},
|
},
|
||||||
emqx_json:decode(ErrMsg2, [return_maps])
|
emqx_json:decode(ErrMsg2, [return_maps])
|
||||||
),
|
),
|
||||||
|
|
||||||
|
%% try delete bad bridge id
|
||||||
|
{ok, 404, BadId} = request(delete, uri(["bridges", "foo"]), []),
|
||||||
|
?assertMatch(
|
||||||
|
#{
|
||||||
|
<<"code">> := <<"NOT_FOUND">>,
|
||||||
|
<<"message">> := <<"Invalid bridge ID", _/binary>>
|
||||||
|
},
|
||||||
|
emqx_json:decode(BadId, [return_maps])
|
||||||
|
),
|
||||||
|
|
||||||
%% Deleting a non-existing bridge should result in an error
|
%% Deleting a non-existing bridge should result in an error
|
||||||
{ok, 404, ErrMsg3} = request(delete, uri(["bridges", BridgeID]), []),
|
{ok, 404, ErrMsg3} = request(delete, uri(["bridges", BridgeID]), []),
|
||||||
?assertMatch(
|
?assertMatch(
|
||||||
|
@ -403,13 +417,16 @@ t_check_dependent_actions_on_delete(Config) ->
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
#{<<"id">> := RuleId} = emqx_json:decode(Rule, [return_maps]),
|
#{<<"id">> := RuleId} = emqx_json:decode(Rule, [return_maps]),
|
||||||
%% delete the bridge should fail because there is a rule depenents on it
|
%% deleting the bridge should fail because there is a rule that depends on it
|
||||||
{ok, 400, _} = request(delete, uri(["bridges", BridgeID]), []),
|
{ok, 400, _} = request(
|
||||||
|
delete, uri(["bridges", BridgeID]) ++ "?also_delete_dep_actions=false", []
|
||||||
|
),
|
||||||
%% delete the rule first
|
%% delete the rule first
|
||||||
{ok, 204, <<>>} = request(delete, uri(["rules", RuleId]), []),
|
{ok, 204, <<>>} = request(delete, uri(["rules", RuleId]), []),
|
||||||
%% then delete the bridge is OK
|
%% then delete the bridge is OK
|
||||||
{ok, 204, <<>>} = request(delete, uri(["bridges", BridgeID]), []),
|
{ok, 204, <<>>} = request(delete, uri(["bridges", BridgeID]), []),
|
||||||
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
||||||
|
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
t_cascade_delete_actions(Config) ->
|
t_cascade_delete_actions(Config) ->
|
||||||
|
@ -439,7 +456,9 @@ t_cascade_delete_actions(Config) ->
|
||||||
),
|
),
|
||||||
#{<<"id">> := RuleId} = emqx_json:decode(Rule, [return_maps]),
|
#{<<"id">> := RuleId} = emqx_json:decode(Rule, [return_maps]),
|
||||||
%% delete the bridge will also delete the actions from the rules
|
%% delete the bridge will also delete the actions from the rules
|
||||||
{ok, 204, _} = request(delete, uri(["bridges", BridgeID]) ++ "?also_delete_dep_actions", []),
|
{ok, 204, _} = request(
|
||||||
|
delete, uri(["bridges", BridgeID]) ++ "?also_delete_dep_actions=true", []
|
||||||
|
),
|
||||||
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
||||||
{ok, 200, Rule1} = request(get, uri(["rules", RuleId]), []),
|
{ok, 200, Rule1} = request(get, uri(["rules", RuleId]), []),
|
||||||
?assertMatch(
|
?assertMatch(
|
||||||
|
@ -449,6 +468,25 @@ t_cascade_delete_actions(Config) ->
|
||||||
emqx_json:decode(Rule1, [return_maps])
|
emqx_json:decode(Rule1, [return_maps])
|
||||||
),
|
),
|
||||||
{ok, 204, <<>>} = request(delete, uri(["rules", RuleId]), []),
|
{ok, 204, <<>>} = request(delete, uri(["rules", RuleId]), []),
|
||||||
|
|
||||||
|
{ok, 201, _} = request(
|
||||||
|
post,
|
||||||
|
uri(["bridges"]),
|
||||||
|
?HTTP_BRIDGE(URL1, ?BRIDGE_TYPE, Name)
|
||||||
|
),
|
||||||
|
{ok, 201, _} = request(
|
||||||
|
post,
|
||||||
|
uri(["rules"]),
|
||||||
|
#{
|
||||||
|
<<"name">> => <<"t_http_crud_apis">>,
|
||||||
|
<<"enable">> => true,
|
||||||
|
<<"actions">> => [BridgeID],
|
||||||
|
<<"sql">> => <<"SELECT * from \"t\"">>
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
{ok, 204, _} = request(delete, uri(["bridges", BridgeID]) ++ "?also_delete_dep_actions", []),
|
||||||
|
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
t_broken_bpapi_vsn(Config) ->
|
t_broken_bpapi_vsn(Config) ->
|
||||||
|
@ -547,6 +585,9 @@ do_start_stop_bridges(Type, Config) ->
|
||||||
{ok, 204, <<>>} = request(post, operation_path(Type, restart, BridgeID), <<"">>),
|
{ok, 204, <<>>} = request(post, operation_path(Type, restart, BridgeID), <<"">>),
|
||||||
{ok, 200, Bridge4} = request(get, uri(["bridges", BridgeID]), []),
|
{ok, 200, Bridge4} = request(get, uri(["bridges", BridgeID]), []),
|
||||||
?assertMatch(#{<<"status">> := <<"connected">>}, emqx_json:decode(Bridge4, [return_maps])),
|
?assertMatch(#{<<"status">> := <<"connected">>}, emqx_json:decode(Bridge4, [return_maps])),
|
||||||
|
|
||||||
|
{ok, 404, _} = request(post, operation_path(Type, invalidop, BridgeID), <<"">>),
|
||||||
|
|
||||||
%% delete the bridge
|
%% delete the bridge
|
||||||
{ok, 204, <<>>} = request(delete, uri(["bridges", BridgeID]), []),
|
{ok, 204, <<>>} = request(delete, uri(["bridges", BridgeID]), []),
|
||||||
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
||||||
|
@ -619,6 +660,11 @@ t_enable_disable_bridges(Config) ->
|
||||||
%% disable it again
|
%% disable it again
|
||||||
{ok, 204, <<>>} = request(put, enable_path(false, BridgeID), <<"">>),
|
{ok, 204, <<>>} = request(put, enable_path(false, BridgeID), <<"">>),
|
||||||
|
|
||||||
|
%% bad param
|
||||||
|
{ok, 404, _} = request(put, enable_path(foo, BridgeID), <<"">>),
|
||||||
|
{ok, 404, _} = request(put, enable_path(true, "foo"), <<"">>),
|
||||||
|
{ok, 404, _} = request(put, enable_path(true, "webhook:foo"), <<"">>),
|
||||||
|
|
||||||
{ok, 400, Res} = request(post, operation_path(node, start, BridgeID), <<"">>),
|
{ok, 400, Res} = request(post, operation_path(node, start, BridgeID), <<"">>),
|
||||||
?assertEqual(
|
?assertEqual(
|
||||||
<<"{\"code\":\"BAD_REQUEST\",\"message\":\"Forbidden operation, bridge not enabled\"}">>,
|
<<"{\"code\":\"BAD_REQUEST\",\"message\":\"Forbidden operation, bridge not enabled\"}">>,
|
||||||
|
|
Loading…
Reference in New Issue