ソースを参照

test: make test stable

zmstone 1 年間 前
コミット
d5ad11093b

+ 1 - 3
apps/emqx_auth/src/emqx_authn/emqx_authn_chains.erl

@@ -490,9 +490,7 @@ initialize_authentication(Providers) ->
     ProviderTypes = maps:keys(Providers),
     ProviderTypes = maps:keys(Providers),
     Chains = chain_configs(),
     Chains = chain_configs(),
     HasProviders = has_providers_for_configs(Chains, ProviderTypes),
     HasProviders = has_providers_for_configs(Chains, ProviderTypes),
-    Result = do_initialize_authentication(Providers, Chains, HasProviders),
-    ?tp(info, authn_chains_initialization_done, #{providers => Providers}),
-    Result.
+    do_initialize_authentication(Providers, Chains, HasProviders).
 
 
 do_initialize_authentication(_Providers, _Chains, _HasProviders = false) ->
 do_initialize_authentication(_Providers, _Chains, _HasProviders = false) ->
     false;
     false;

+ 5 - 10
apps/emqx_auth/test/emqx_authn/emqx_authn_init_SUITE.erl

@@ -68,16 +68,11 @@ t_initialize(_Config) ->
         {error, not_authorized},
         {error, not_authorized},
         emqx_access_control:authenticate(?CLIENTINFO)
         emqx_access_control:authenticate(?CLIENTINFO)
     ),
     ),
-
-    ?assertWaitEvent(
-        ok = emqx_authn_test_lib:register_fake_providers([{password_based, built_in_database}]),
-        #{
-            ?snk_kind := authn_chains_initialization_done,
-            providers := #{{password_based, built_in_database} := emqx_authn_fake_provider}
-        },
-        100
-    ),
-
+    %% call emqx_authn_chains:register_providers/1
+    %% which triggers a handle_continue to store the chain in ets
+    ok = emqx_authn_test_lib:register_fake_providers([{password_based, built_in_database}]),
+    %% make another gen_server call to make sure the handle_continue is complete
+    ?assertMatch(#{{password_based, built_in_database} := _}, emqx_authn_chains:get_providers()),
     ?assertMatch(
     ?assertMatch(
         {error, bad_username_or_password},
         {error, bad_username_or_password},
         emqx_access_control:authenticate(?CLIENTINFO)
         emqx_access_control:authenticate(?CLIENTINFO)