test(mgmt_api): bulk/unbulk sub/unsub shared topic filter

This commit is contained in:
JimMoen 2024-02-27 15:54:59 +08:00
parent a76415c4f6
commit c1da7449fe
No known key found for this signature in database
1 changed files with 56 additions and 0 deletions

View File

@ -430,6 +430,62 @@ t_client_id_not_found(_Config) ->
{error, {Http, _, Body}}, PostFun(post, PathFun(["unsubscribe", "bulk"]), [UnsubBody])
).
t_subscribe_shared_topic(_Config) ->
ClientId = <<"client_subscribe_shared">>,
{ok, C} = emqtt:start_link(#{clientid => ClientId}),
{ok, _} = emqtt:connect(C),
{ok, _, _} = emqtt:subscribe(C, <<"topic/1">>, 1),
AuthHeader = emqx_mgmt_api_test_util:auth_header_(),
Http200 = {"HTTP/1.1", 200, "OK"},
Http204 = {"HTTP/1.1", 204, "No Content"},
PathFun = fun(Suffix) ->
emqx_mgmt_api_test_util:api_path(["clients", "client_subscribe_shared"] ++ Suffix)
end,
PostFun = fun(Method, Path, Data) ->
emqx_mgmt_api_test_util:request_api(
Method, Path, "", AuthHeader, Data, #{return_all => true}
)
end,
SharedT = <<"$share/group/testtopic">>,
NonSharedT = <<"t/1">>,
SubBodyFun = fun(T) -> #{topic => T, qos => 1, nl => 1, rh => 1} end,
UnSubBodyFun = fun(T) -> #{topic => T} end,
%% Client Subscribe
?assertMatch(
{ok, {Http200, _, _}},
PostFun(post, PathFun(["subscribe"]), SubBodyFun(SharedT))
),
?assertMatch(
{ok, {Http200, _, _}},
PostFun(
post,
PathFun(["subscribe", "bulk"]),
[SubBodyFun(T) || T <- [SharedT, NonSharedT]]
)
),
%% Client Unsubscribe
?assertMatch(
{ok, {Http204, _, _}},
PostFun(post, PathFun(["unsubscribe"]), UnSubBodyFun(SharedT))
),
?assertMatch(
{ok, {Http204, _, _}},
PostFun(
post,
PathFun(["unsubscribe", "bulk"]),
[UnSubBodyFun(T) || T <- [SharedT, NonSharedT]]
)
).
time_string_to_epoch_millisecond(DateTime) ->
time_string_to_epoch(DateTime, millisecond).