diff --git a/apps/emqx_bridge/test/emqx_bridge_v2_testlib.erl b/apps/emqx_bridge/test/emqx_bridge_v2_testlib.erl index 7fef33115..6e731cb80 100644 --- a/apps/emqx_bridge/test/emqx_bridge_v2_testlib.erl +++ b/apps/emqx_bridge/test/emqx_bridge_v2_testlib.erl @@ -119,11 +119,13 @@ delete_all_connectors() -> ). %% test helpers -parse_and_check(BridgeType, BridgeName, ConfigString) -> - {ok, RawConf} = hocon:binary(ConfigString, #{format => map}), - hocon_tconf:check_plain(emqx_bridge_schema, RawConf, #{required => false, atom_key => false}), - #{<<"bridges">> := #{BridgeType := #{BridgeName := BridgeConfig}}} = RawConf, - BridgeConfig. +parse_and_check(Type, Name, InnerConfigMap0) -> + TypeBin = emqx_utils_conv:bin(Type), + RawConf = #{<<"actions">> => #{TypeBin => #{Name => InnerConfigMap0}}}, + #{<<"actions">> := #{TypeBin := #{Name := InnerConfigMap}}} = hocon_tconf:check_plain( + emqx_bridge_v2_schema, RawConf, #{required => false, atom_key => false} + ), + InnerConfigMap. bridge_id(Config) -> BridgeType = ?config(bridge_type, Config), diff --git a/apps/emqx_bridge_azure_event_hub/test/emqx_bridge_azure_event_hub_v2_SUITE.erl b/apps/emqx_bridge_azure_event_hub/test/emqx_bridge_azure_event_hub_v2_SUITE.erl index 9661004d0..0a3d75427 100644 --- a/apps/emqx_bridge_azure_event_hub/test/emqx_bridge_azure_event_hub_v2_SUITE.erl +++ b/apps/emqx_bridge_azure_event_hub/test/emqx_bridge_azure_event_hub_v2_SUITE.erl @@ -212,10 +212,7 @@ serde_roundtrip(InnerConfigMap0) -> InnerConfigMap. parse_and_check_bridge_config(InnerConfigMap, Name) -> - TypeBin = ?BRIDGE_TYPE_BIN, - RawConf = #{<<"bridges">> => #{TypeBin => #{Name => InnerConfigMap}}}, - hocon_tconf:check_plain(emqx_bridge_v2_schema, RawConf, #{required => false, atom_key => false}), - InnerConfigMap. + emqx_bridge_v2_testlib:parse_and_check(?BRIDGE_TYPE_BIN, Name, InnerConfigMap). shared_secret_path() -> os:getenv("CI_SHARED_SECRET_PATH", "/var/lib/secret"). diff --git a/apps/emqx_bridge_confluent/test/emqx_bridge_confluent_producer_SUITE.erl b/apps/emqx_bridge_confluent/test/emqx_bridge_confluent_producer_SUITE.erl index 420da1275..f530749ac 100644 --- a/apps/emqx_bridge_confluent/test/emqx_bridge_confluent_producer_SUITE.erl +++ b/apps/emqx_bridge_confluent/test/emqx_bridge_confluent_producer_SUITE.erl @@ -212,10 +212,7 @@ serde_roundtrip(InnerConfigMap0) -> InnerConfigMap. parse_and_check_bridge_config(InnerConfigMap, Name) -> - TypeBin = ?ACTION_TYPE_BIN, - RawConf = #{<<"bridges">> => #{TypeBin => #{Name => InnerConfigMap}}}, - hocon_tconf:check_plain(emqx_bridge_v2_schema, RawConf, #{required => false, atom_key => false}), - InnerConfigMap. + emqx_bridge_v2_testlib:parse_and_check(?ACTION_TYPE_BIN, Name, InnerConfigMap). shared_secret_path() -> os:getenv("CI_SHARED_SECRET_PATH", "/var/lib/secret"). diff --git a/apps/emqx_bridge_iotdb/test/emqx_bridge_iotdb_impl_SUITE.erl b/apps/emqx_bridge_iotdb/test/emqx_bridge_iotdb_impl_SUITE.erl index 1093993b2..b33370d45 100644 --- a/apps/emqx_bridge_iotdb/test/emqx_bridge_iotdb_impl_SUITE.erl +++ b/apps/emqx_bridge_iotdb/test/emqx_bridge_iotdb_impl_SUITE.erl @@ -165,7 +165,8 @@ bridge_config(TestCase, Config) -> Version ] ), - {Name, ConfigString, emqx_bridge_v2_testlib:parse_and_check(Type, Name, ConfigString)}. + {ok, InnerConfigMap} = hocon:binary(ConfigString), + {Name, ConfigString, emqx_bridge_v2_testlib:parse_and_check(Type, Name, InnerConfigMap)}. make_iotdb_payload(DeviceId, Measurement, Type, Value) -> #{ diff --git a/apps/emqx_bridge_mongodb/test/emqx_bridge_v2_mongodb_SUITE.erl b/apps/emqx_bridge_mongodb/test/emqx_bridge_v2_mongodb_SUITE.erl index 879b1d375..991d78ff1 100644 --- a/apps/emqx_bridge_mongodb/test/emqx_bridge_v2_mongodb_SUITE.erl +++ b/apps/emqx_bridge_mongodb/test/emqx_bridge_v2_mongodb_SUITE.erl @@ -197,10 +197,7 @@ serde_roundtrip(InnerConfigMap0) -> InnerConfigMap. parse_and_check_bridge_config(InnerConfigMap, Name) -> - TypeBin = ?BRIDGE_TYPE_BIN, - RawConf = #{<<"bridges">> => #{TypeBin => #{Name => InnerConfigMap}}}, - hocon_tconf:check_plain(emqx_bridge_v2_schema, RawConf, #{required => false, atom_key => false}), - InnerConfigMap. + emqx_bridge_v2_testlib:parse_and_check(?BRIDGE_TYPE_BIN, Name, InnerConfigMap). shared_secret_path() -> os:getenv("CI_SHARED_SECRET_PATH", "/var/lib/secret"). diff --git a/apps/emqx_bridge_pgsql/test/emqx_bridge_v2_pgsql_SUITE.erl b/apps/emqx_bridge_pgsql/test/emqx_bridge_v2_pgsql_SUITE.erl index d077cece7..cf84bebab 100644 --- a/apps/emqx_bridge_pgsql/test/emqx_bridge_v2_pgsql_SUITE.erl +++ b/apps/emqx_bridge_pgsql/test/emqx_bridge_v2_pgsql_SUITE.erl @@ -193,10 +193,7 @@ serde_roundtrip(InnerConfigMap0) -> InnerConfigMap. parse_and_check_bridge_config(InnerConfigMap, Name) -> - TypeBin = ?BRIDGE_TYPE_BIN, - RawConf = #{<<"bridges">> => #{TypeBin => #{Name => InnerConfigMap}}}, - hocon_tconf:check_plain(emqx_bridge_v2_schema, RawConf, #{required => false, atom_key => false}), - InnerConfigMap. + emqx_bridge_v2_testlib:parse_and_check(?BRIDGE_TYPE_BIN, Name, InnerConfigMap). make_message() -> ClientId = emqx_guid:to_hexstr(emqx_guid:gen()), diff --git a/apps/emqx_bridge_redis/test/emqx_bridge_v2_redis_SUITE.erl b/apps/emqx_bridge_redis/test/emqx_bridge_v2_redis_SUITE.erl index 18cbc126d..cfcbc8e92 100644 --- a/apps/emqx_bridge_redis/test/emqx_bridge_v2_redis_SUITE.erl +++ b/apps/emqx_bridge_redis/test/emqx_bridge_v2_redis_SUITE.erl @@ -259,10 +259,7 @@ serde_roundtrip(InnerConfigMap0) -> InnerConfigMap. parse_and_check_bridge_config(InnerConfigMap, Name) -> - TypeBin = ?BRIDGE_TYPE_BIN, - RawConf = #{<<"bridges">> => #{TypeBin => #{Name => InnerConfigMap}}}, - hocon_tconf:check_plain(emqx_bridge_v2_schema, RawConf, #{required => false, atom_key => false}), - InnerConfigMap. + emqx_bridge_v2_testlib:parse_and_check(?BRIDGE_TYPE_BIN, Name, InnerConfigMap). make_message() -> ClientId = emqx_guid:to_hexstr(emqx_guid:gen()),