feat(emqx_rule_engine): decompose error tuples
sqltester for instance returns sth like {"...sytnax error...", OrigSql}
This commit is contained in:
parent
44eca1fa72
commit
6ebd3dc747
|
@ -425,6 +425,8 @@ param_path_id() ->
|
||||||
|
|
||||||
err_msg({RuleError, {_E, Reason, _S}}) ->
|
err_msg({RuleError, {_E, Reason, _S}}) ->
|
||||||
emqx_misc:readable_error_msg(encode_nested_error(RuleError, Reason));
|
emqx_misc:readable_error_msg(encode_nested_error(RuleError, Reason));
|
||||||
|
err_msg({Reason, _Details}) ->
|
||||||
|
emqx_misc:readable_error_msg(Reason);
|
||||||
err_msg(Msg) ->
|
err_msg(Msg) ->
|
||||||
emqx_misc:readable_error_msg(Msg).
|
emqx_misc:readable_error_msg(Msg).
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,9 @@ end_per_suite(_Config) ->
|
||||||
init_per_testcase(_, Config) ->
|
init_per_testcase(_, Config) ->
|
||||||
Config.
|
Config.
|
||||||
|
|
||||||
|
end_per_testcase(t_crud_rule_api, Config) ->
|
||||||
|
meck:unload(emqx_json),
|
||||||
|
end_per_testcase(common, Config);
|
||||||
end_per_testcase(_, _Config) ->
|
end_per_testcase(_, _Config) ->
|
||||||
{200, #{data := Rules}} =
|
{200, #{data := Rules}} =
|
||||||
emqx_rule_engine_api:'/rules'(get, #{query_string => #{}}),
|
emqx_rule_engine_api:'/rules'(get, #{query_string => #{}}),
|
||||||
|
@ -145,6 +148,29 @@ t_crud_rule_api(_Config) ->
|
||||||
#{<<"select_and_transform_error">> := <<"badarg">>},
|
#{<<"select_and_transform_error">> := <<"badarg">>},
|
||||||
emqx_json:decode(SelectAndTransformBadArgError, [return_maps])
|
emqx_json:decode(SelectAndTransformBadArgError, [return_maps])
|
||||||
),
|
),
|
||||||
|
{400, #{
|
||||||
|
code := 'BAD_REQUEST',
|
||||||
|
message := BadSqlMessage
|
||||||
|
}} = emqx_rule_engine_api:'/rule_test'(
|
||||||
|
post,
|
||||||
|
test_rule_params(
|
||||||
|
<<"BAD_SQL">>, <<"{\"msg\": \"hello\"}">>
|
||||||
|
)
|
||||||
|
),
|
||||||
|
?assertMatch({match, _}, re:run(BadSqlMessage, "syntax error")),
|
||||||
|
meck:expect(emqx_json, safe_encode, 1, {error, foo}),
|
||||||
|
?assertMatch(
|
||||||
|
{400, #{
|
||||||
|
code := 'BAD_REQUEST',
|
||||||
|
message := <<"{select_and_transform_error,badarg}">>
|
||||||
|
}},
|
||||||
|
emqx_rule_engine_api:'/rule_test'(
|
||||||
|
post,
|
||||||
|
test_rule_params(
|
||||||
|
<<"SELECT\n payload.msg > 1\nFROM\n \"t/#\"">>, <<"{\"msg\": \"hello\"}">>
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
t_list_rule_api(_Config) ->
|
t_list_rule_api(_Config) ->
|
||||||
|
|
Loading…
Reference in New Issue