From 785352526cdea164660a1463ea496fbf79c0bada Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 2 Nov 2022 09:08:46 +0100 Subject: [PATCH] Bug 32010: Make sure the alert will be displayed after the ajax call There is a missing wait_for_ajax call at after we click but wait_for_ajax is waiting for the return of success, and the alert is there. 22:01:57 koha_1 | STRACE: /usr/share/perl5/Try/Tiny.pm:123 in Selenium::Remote::Driver::catch {...} 22:01:57 koha_1 | /usr/share/perl5/Selenium/Remote/Driver.pm:361 in Try::Tiny::try 22:01:57 koha_1 | (eval 541):1 in Selenium::Remote::Driver::__ANON__ 22:01:57 koha_1 | (eval 543):2 in Selenium::Remote::Driver::__ANON__ 22:01:57 koha_1 | /usr/share/perl5/Selenium/Remote/Driver.pm:654 in Selenium::Remote::Driver::_execute_command 22:01:57 koha_1 | t/db_dependent/selenium/authentication_2fa.t:282 in Selenium::Remote::Driver::get_alert_text 22:01:57 koha_1 | /usr/share/perl/5.32/Test/Builder.pm:334 in main::__ANON__ 22:01:57 koha_1 | /usr/share/perl/5.32/Test/Builder.pm:334 in (eval) 22:01:57 koha_1 | /usr/share/perl/5.32/Test/More.pm:809 in Test::Builder::subtest 22:01:57 koha_1 | t/db_dependent/selenium/authentication_2fa.t:291 in Test::More::subtest 22:01:57 koha_1 | 22:01:57 koha_1 | # Looks like you planned 7 tests but ran 4. 22:01:57 koha_1 | 22:01:57 koha_1 | # Failed test 'Enforce 2FA setup on first login' 22:01:57 koha_1 | # at t/db_dependent/selenium/authentication_2fa.t line 291. 22:01:57 koha_1 | Error while executing command: no such alert at /usr/share/perl5/Selenium/Remote/Driver.pm line 411. 22:01:57 koha_1 | at /usr/share/perl5/Selenium/Remote/Driver.pm line 356. 22:01:57 koha_1 | # Looks like your test exited with 255 just after 4. 22:01:57 koha_1 | [20:59:37] t/db_dependent/selenium/authentication_2fa.t Test plan: Confirm that the test pass (execute it in a loop, hundreds of times) Confirm that the behaviour of 2FA "enforced" (see bug 30588) is still working as expected. --- koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt | 6 ++++-- t/db_dependent/selenium/authentication_2fa.t | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt index 8f8affb01fe..15e94e8b919 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt @@ -252,8 +252,7 @@ type: 'POST', url: '/api/v1/auth/two-factor/registration/verification', success: function (data) { - alert(_("Two-factor authentication correctly configured. You will be redirected to the login screen.")); - window.location = "/cgi-bin/koha/mainpage.pl"; + return; }, error: function (data) { const error = data.responseJSON.error; @@ -263,6 +262,9 @@ alert(error); } }, + }).then(function(){ + alert(_("Two-factor authentication correctly configured. You will be redirected to the login screen.")); + window.location = "/cgi-bin/koha/mainpage.pl"; }); }); diff --git a/t/db_dependent/selenium/authentication_2fa.t b/t/db_dependent/selenium/authentication_2fa.t index 81e75f2f065..a6bf221e5d9 100755 --- a/t/db_dependent/selenium/authentication_2fa.t +++ b/t/db_dependent/selenium/authentication_2fa.t @@ -279,6 +279,7 @@ SKIP: { $driver->find_element('//*[@id="pin_code"]')->clear; $driver->find_element('//*[@id="pin_code"]')->send_keys($pin_code); $driver->find_element('//*[@id="register-2FA"]')->click; + $s->wait_for_ajax; is( $driver->get_alert_text, "Two-factor authentication correctly configured. You will be redirected to the login screen." ); -- 2.25.1