test: handle bad payload

This commit is contained in:
Stefan Strigler 2023-05-30 14:44:26 +02:00
parent 860d7b169a
commit 938d62a666
3 changed files with 31 additions and 2 deletions

View File

@ -116,6 +116,7 @@ create_bridge(Config, Overrides) ->
Name = ?config(bridge_name, Config),
BridgeConfig0 = ?config(bridge_config, Config),
BridgeConfig = emqx_utils_maps:deep_merge(BridgeConfig0, Overrides),
ct:pal("creating bridge with config: ~p", [BridgeConfig]),
emqx_bridge:create(BridgeType, Name, BridgeConfig).
create_bridge_api(Config) ->

View File

@ -403,8 +403,6 @@ device_id(Message, State) ->
case maps:get(payload, Message) of
#{<<"device_id">> := DeviceId} ->
DeviceId;
#{device_id := DeviceId} ->
DeviceId;
_NotFound ->
Topic = maps:get(topic, Message),
case re:replace(Topic, "/", ".", [global, {return, binary}]) of

View File

@ -326,6 +326,36 @@ t_sync_query_fail(Config) ->
end,
emqx_bridge_testlib:t_sync_query(Config, MakeMessageFun, IsSuccessCheck, iotdb_bridge_on_query).
t_sync_query_badpayload(Config) ->
DeviceId = iotdb_device(Config),
BadPayload = #{foo => bar},
IsSuccessCheck =
fun(Result) ->
?assertEqual({error, invalid_data}, Result)
end,
emqx_bridge_testlib:t_sync_query(
Config,
make_message_fun(DeviceId, BadPayload),
IsSuccessCheck,
iotdb_bridge_on_query
),
ok.
t_async_query_badpayload(Config) ->
DeviceId = iotdb_device(Config),
BadPayload = #{foo => bar},
IsSuccessCheck =
fun(Result) ->
?assertEqual({error, invalid_data}, Result)
end,
emqx_bridge_testlib:t_async_query(
Config,
make_message_fun(DeviceId, BadPayload),
IsSuccessCheck,
iotdb_bridge_on_query_async
),
ok.
t_create_via_http(Config) ->
emqx_bridge_testlib:t_create_via_http(Config).