diff --git a/apps/emqx_bridge/test/emqx_bridge_testlib.erl b/apps/emqx_bridge/test/emqx_bridge_testlib.erl index 118802551..df4560e6e 100644 --- a/apps/emqx_bridge/test/emqx_bridge_testlib.erl +++ b/apps/emqx_bridge/test/emqx_bridge_testlib.erl @@ -184,6 +184,15 @@ update_bridge_api(Config, Overrides) -> ct:pal("bridge update result: ~p", [Res]), Res. +delete_bridge_http_api_v1(Opts) -> + #{type := Type, name := Name} = Opts, + BridgeId = emqx_bridge_resource:bridge_id(Type, Name), + Path = emqx_mgmt_api_test_util:api_path(["bridges", BridgeId]), + ct:pal("deleting bridge (http v1)"), + Res = emqx_bridge_v2_testlib:request(delete, Path, _Params = []), + ct:pal("bridge delete (http v1) result:\n ~p", [Res]), + Res. + op_bridge_api(Op, BridgeType, BridgeName) -> BridgeId = emqx_bridge_resource:bridge_id(BridgeType, BridgeName), Path = emqx_mgmt_api_test_util:api_path(["bridges", BridgeId, Op]), diff --git a/apps/emqx_bridge_mysql/test/emqx_bridge_mysql_SUITE.erl b/apps/emqx_bridge_mysql/test/emqx_bridge_mysql_SUITE.erl index 8318617eb..468138c2f 100644 --- a/apps/emqx_bridge_mysql/test/emqx_bridge_mysql_SUITE.erl +++ b/apps/emqx_bridge_mysql/test/emqx_bridge_mysql_SUITE.erl @@ -51,6 +51,7 @@ groups() -> t_write_timeout, t_uninitialized_prepared_statement, t_non_batch_update_is_allowed, + t_delete_with_undefined_field_in_sql, t_undefined_field_in_sql ], OnlyBatchCases = [ @@ -989,3 +990,30 @@ t_undefined_field_in_sql(Config) -> [] ), ok. + +t_delete_with_undefined_field_in_sql(Config) -> + ?check_trace( + begin + Name = ?config(bridge_name, Config), + Type = ?config(bridge_type, Config), + Overrides = #{ + <<"sql">> => + << + "INSERT INTO mqtt_test(wrong_column, arrived) " + "VALUES (${payload}, FROM_UNIXTIME(${timestamp}/1000))" + >> + }, + ?assertMatch( + {ok, {{_, 201, _}, _, #{<<"status">> := Status}}} when + Status =:= <<"connecting">> orelse Status =:= <<"disconnected">>, + emqx_bridge_testlib:create_bridge_api(Config, Overrides) + ), + ?assertMatch( + {ok, {{_, 204, _}, _, _}}, + emqx_bridge_testlib:delete_bridge_http_api_v1(#{type => Type, name => Name}) + ), + ok + end, + [] + ), + ok. diff --git a/changes/ee/fix-12281.en.md b/changes/ee/fix-12281.en.md deleted file mode 100644 index a2ad915c5..000000000 --- a/changes/ee/fix-12281.en.md +++ /dev/null @@ -1 +0,0 @@ -Improved HTTP API error message when the creation of a MySQL bridge fails. diff --git a/changes/ee/fix-12282.en.md b/changes/ee/fix-12282.en.md new file mode 100644 index 000000000..34518592b --- /dev/null +++ b/changes/ee/fix-12282.en.md @@ -0,0 +1,3 @@ +Improved HTTP API error message when the creation of a MySQL bridge fails. + +Fixed an issue that prevented removing a MySQL bridge when its SQL contained undefined columns.