Merge pull request #11732 from lafirest/test/sso_cli

test(ldap): add test suite for SSO CLI
This commit is contained in:
lafirest 2023-10-09 20:35:23 +08:00 committed by GitHub
commit 8f4cdc3fcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 103 additions and 0 deletions

View File

@ -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.