Merge pull request #11732 from lafirest/test/sso_cli
test(ldap): add test suite for SSO CLI
This commit is contained in:
commit
8f4cdc3fcf
|
@ -0,0 +1,103 @@
|
|||
%%--------------------------------------------------------------------
|
||||
%% Copyright (c) 2023 EMQ Technologies Co., Ltd. All Rights Reserved.
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
-module(emqx_dashboard_sso_cli_SUITE).
|
||||
|
||||
-compile(export_all).
|
||||
-compile(nowarn_export_all).
|
||||
|
||||
-include_lib("emqx_dashboard/include/emqx_dashboard.hrl").
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
-include_lib("snabbkaffe/include/snabbkaffe.hrl").
|
||||
|
||||
-import(emqx_dashboard_sso_cli, [admins/1]).
|
||||
|
||||
-define(RETRY(Action),
|
||||
?retry(
|
||||
_Interval = 200,
|
||||
_NAttempts = 20,
|
||||
Action
|
||||
)
|
||||
).
|
||||
|
||||
all() -> [t_add, t_passwd, t_del].
|
||||
|
||||
init_per_suite(Config) ->
|
||||
_ = application:load(emqx_conf),
|
||||
emqx_config:save_schema_mod_and_names(emqx_dashboard_schema),
|
||||
emqx_mgmt_api_test_util:init_suite([emqx_dashboard, emqx_dashboard_sso]),
|
||||
Config.
|
||||
|
||||
end_per_suite(_Config) ->
|
||||
All = emqx_dashboard_admin:all_users(),
|
||||
[emqx_dashboard_admin:remove_user(Name) || #{username := Name} <- All],
|
||||
emqx_mgmt_api_test_util:end_suite([emqx_conf, emqx_dashboard_sso]).
|
||||
|
||||
t_add(_) ->
|
||||
admins(["add", "user1", "password1"]),
|
||||
admins(["add", "user2", "password2", "user2"]),
|
||||
admins(["add", "user3", "password3", "user3", ?ROLE_VIEWER]),
|
||||
admins(["add", "user1", "password3", "user3"]),
|
||||
|
||||
?RETRY(
|
||||
?assertMatch(
|
||||
[
|
||||
#?ADMIN{
|
||||
username = <<"user1">>,
|
||||
role = ?ROLE_SUPERUSER,
|
||||
description = <<>>
|
||||
}
|
||||
],
|
||||
emqx_dashboard_admin:lookup_user(<<"user1">>)
|
||||
)
|
||||
),
|
||||
|
||||
?assertMatch(
|
||||
[
|
||||
#?ADMIN{
|
||||
username = <<"user2">>,
|
||||
role = ?ROLE_SUPERUSER,
|
||||
description = <<"user2">>
|
||||
}
|
||||
],
|
||||
emqx_dashboard_admin:lookup_user(<<"user2">>)
|
||||
),
|
||||
|
||||
?assertMatch(
|
||||
[
|
||||
#?ADMIN{
|
||||
username = <<"user3">>,
|
||||
role = ?ROLE_VIEWER,
|
||||
description = <<"user3">>
|
||||
}
|
||||
],
|
||||
emqx_dashboard_admin:lookup_user(<<"user3">>)
|
||||
),
|
||||
ok.
|
||||
|
||||
t_passwd(_) ->
|
||||
[#?ADMIN{pwdhash = Old}] = emqx_dashboard_admin:lookup_user(<<"user1">>),
|
||||
admins(["passwd", "user1", "newpassword1"]),
|
||||
[#?ADMIN{pwdhash = New}] = emqx_dashboard_admin:lookup_user(<<"user1">>),
|
||||
?assertNotEqual(Old, New),
|
||||
ok.
|
||||
|
||||
t_del(_) ->
|
||||
admins(["del", "user1"]),
|
||||
?assertEqual([], emqx_dashboard_admin:lookup_user(<<"user1">>)),
|
||||
|
||||
admins(["del", "user2", ?BACKEND_LOCAL]),
|
||||
?assertEqual([], emqx_dashboard_admin:lookup_user(<<"user2">>)),
|
||||
|
||||
admins(["del", "user3", ldap]),
|
||||
?assertNotEqual([], emqx_dashboard_admin:lookup_user(<<"user3">>)),
|
||||
|
||||
emqx_dashboard_admin:add_sso_user(ldap, <<"user4">>, ?ROLE_VIEWER, ""),
|
||||
|
||||
admins(["del", "user4"]),
|
||||
?RETRY(?assertNotEqual([], emqx_dashboard_admin:lookup_user(?SSO_USERNAME(ldap, <<"user4">>)))),
|
||||
|
||||
admins(["del", "user4", ldap]),
|
||||
?assertEqual([], emqx_dashboard_admin:lookup_user(?SSO_USERNAME(ldap, <<"user4">>))),
|
||||
ok.
|
Loading…
Reference in New Issue