Просмотр исходного кода

test(bridge_v2): actually check schema

Thales Macedo Garitezi 2 лет назад
Родитель
Сommit
64367d834b

+ 7 - 5
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),

+ 1 - 4
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").

+ 1 - 4
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").

+ 2 - 1
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) ->
     #{

+ 1 - 4
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").

+ 1 - 4
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()),

+ 1 - 4
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()),