Feng Lee 6 лет назад
Родитель
Сommit
65cb9dbf38
2 измененных файлов с 10 добавлено и 0 удалено
  1. 4 0
      src/emqx_mod_presence.erl
  2. 6 0
      test/emqx_modules_SUITE.erl

+ 4 - 0
src/emqx_mod_presence.erl

@@ -32,6 +32,10 @@
         , on_client_disconnected/4
         ]).
 
+-ifdef(TEST).
+-export([ reason/1 ]).
+-endif.
+
 load(Env) ->
     emqx_hooks:add('client.connected',    {?MODULE, on_client_connected, [Env]}),
     emqx_hooks:add('client.disconnected', {?MODULE, on_client_disconnected, [Env]}).

+ 6 - 0
test/emqx_modules_SUITE.erl

@@ -69,6 +69,12 @@ t_mod_presence(_) ->
     ok = emqtt:disconnect(C1),
     ok = emqx_mod_presence:unload([{qos, ?QOS_1}]).
 
+t_mod_presence_reason(_) ->
+    ?assertEqual(normal, emqx_mod_presence:reason(normal)),
+    ?assertEqual(discarded, emqx_mod_presence:reason({shutdown, discarded})),
+    ?assertEqual(tcp_error, emqx_mod_presence:reason({tcp_error, einval})),
+    ?assertEqual(internal_error, emqx_mod_presence:reason(<<"unknown error">>)).
+
 recv_and_check_presence(ClientId, Presence) ->
     {ok, #{qos := ?QOS_1, topic := Topic, payload := Payload}} = receive_publish(100),
     ?assertMatch([<<"$SYS">>, <<"brokers">>, _Node, <<"clients">>, ClientId, Presence],