From 9b089a4e5aa44c3013743a325002c21d1a0e5bc0 Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Wed, 29 May 2024 10:20:15 +0200 Subject: [PATCH] fix: use explain instead of msg as error explanation and add test --- .../src/emqx_schema_registry_serde.erl | 2 +- .../test/emqx_schema_registry_SUITE.erl | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/apps/emqx_schema_registry/src/emqx_schema_registry_serde.erl b/apps/emqx_schema_registry/src/emqx_schema_registry_serde.erl index 96c5816ba..e8da35449 100644 --- a/apps/emqx_schema_registry/src/emqx_schema_registry_serde.erl +++ b/apps/emqx_schema_registry/src/emqx_schema_registry_serde.erl @@ -74,7 +74,7 @@ handle_rule_function(schema_decode, [SchemaId, Data | MoreArgs]) -> schema_id => SchemaId, data => Data, more_args => MoreArgs, - msg => + explain => <<"The given data could not be decoded. Please check the input data and the schema.">> }} ) diff --git a/apps/emqx_schema_registry/test/emqx_schema_registry_SUITE.erl b/apps/emqx_schema_registry/test/emqx_schema_registry_SUITE.erl index 22252b7c3..d9286f266 100644 --- a/apps/emqx_schema_registry/test/emqx_schema_registry_SUITE.erl +++ b/apps/emqx_schema_registry/test/emqx_schema_registry_SUITE.erl @@ -44,7 +44,8 @@ sparkplug_tests() -> t_sparkplug_decode, t_sparkplug_encode, t_sparkplug_decode_encode_with_message_name, - t_sparkplug_encode_float_to_uint64_key + t_sparkplug_encode_float_to_uint64_key, + t_decode_fail ]. init_per_suite(Config) -> @@ -532,6 +533,23 @@ t_encode(Config) -> end, ok. +t_decode_fail(_Config) -> + SerdeName = my_serde, + SerdeType = protobuf, + ok = create_serde(SerdeType, SerdeName), + Payload = <<"ss">>, + ?assertThrow( + {schema_decode_error, #{ + data := <<"ss">>, + error_type := decoding_failure, + explain := _, + more_args := [<<"Person">>], + schema_id := <<"my_serde">> + }}, + emqx_rule_funcs:schema_decode(<<"my_serde">>, Payload, <<"Person">>) + ), + ok. + t_decode(Config) -> SerdeType = ?config(serde_type, Config), SerdeName = my_serde,