fix(schema validation): forbid empty topic filter list

This commit is contained in:
Thales Macedo Garitezi 2024-07-05 09:49:09 -03:00
parent e99fee68c0
commit e7351d949d
4 changed files with 17 additions and 1 deletions

View File

@ -1,6 +1,6 @@
{application, emqx_schema_validation, [
{description, "EMQX Schema Validation"},
{vsn, "0.1.1"},
{vsn, "0.1.2"},
{registered, [emqx_schema_validation_sup, emqx_schema_validation_registry]},
{mod, {emqx_schema_validation_app, []}},
{applications, [

View File

@ -259,6 +259,8 @@ do_validate_unique_schema_checks(
do_validate_unique_schema_checks([_Check | Rest], Seen, Duplicated) ->
do_validate_unique_schema_checks(Rest, Seen, Duplicated).
validate_unique_topics([]) ->
{error, <<"at least one topic filter must be defined">>};
validate_unique_topics(Topics) ->
Grouped = maps:groups_from_list(
fun(T) -> T end,

View File

@ -117,6 +117,19 @@ schema_test_() ->
)
])
)},
{"topics must be non-empty",
?_assertThrow(
{_Schema, [
#{
reason := <<"at least one topic filter must be defined", _/binary>>,
value := [],
kind := validation_error
}
]},
parse_and_check([
validation(<<"foo">>, [sql_check()], #{<<"topics">> => []})
])
)},
{"foreach expression is not allowed",
?_assertThrow(
{_Schema, [

View File

@ -0,0 +1 @@
Added a schema validation to forbid empty topic filter lists when configuring a Schema Validation.