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

chore(message transformation): allow empty operation list

Fixes https://emqx.atlassian.net/browse/EMQX-12682
Thales Macedo Garitezi 1 год назад
Родитель
Сommit
5f595966d8

+ 1 - 7
apps/emqx_message_transformation/src/emqx_message_transformation_schema.erl

@@ -108,8 +108,7 @@ fields(transformation) ->
                 hoconsc:array(ref(operation)),
                 #{
                     desc => ?DESC("operation"),
-                    required => true,
-                    validator => fun validate_operations/1
+                    default => []
                 }
             )}
     ];
@@ -253,11 +252,6 @@ validate_unique_topics(Topics) ->
             {error, Msg}
     end.
 
-validate_operations([]) ->
-    {error, <<"at least one operation must be defined">>};
-validate_operations([_ | _]) ->
-    ok.
-
 compile_variform(Expression, #{make_serializable := true}) ->
     case is_binary(Expression) of
         true ->

+ 3 - 8
apps/emqx_message_transformation/test/emqx_message_transformation_tests.erl

@@ -114,14 +114,9 @@ schema_test_() ->
                     transformation(<<"foo">>, [dummy_operation()])
                 ])
             )},
-        {"operations must be non-empty",
-            ?_assertThrow(
-                {_Schema, [
-                    #{
-                        reason := <<"at least one operation must be defined">>,
-                        kind := validation_error
-                    }
-                ]},
+        {"operations may be empty",
+            ?_assertMatch(
+                [#{<<"operations">> := []}],
                 parse_and_check([
                     transformation(
                         <<"foo">>,