Force tests to wait for brute force login event as they are fired in a separate thread

Closes #32942

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
This commit is contained in:
Pedro Igor 2024-10-01 14:58:50 -03:00 committed by Marek Posolda
parent 353392f6ac
commit ebfb42f9c5

View file

@ -29,6 +29,7 @@ import org.keycloak.testsuite.util.ClientBuilder;
import org.keycloak.testsuite.util.OAuthClient; import org.keycloak.testsuite.util.OAuthClient;
import org.keycloak.testsuite.util.RealmBuilder; import org.keycloak.testsuite.util.RealmBuilder;
import org.keycloak.testsuite.util.TestAppHelper; import org.keycloak.testsuite.util.TestAppHelper;
import org.keycloak.testsuite.util.WaitUtils;
import org.openqa.selenium.TimeoutException; import org.openqa.selenium.TimeoutException;
import jakarta.ws.rs.client.Client; import jakarta.ws.rs.client.Client;
@ -566,14 +567,15 @@ public abstract class AbstractAdvancedBrokerTest extends AbstractBrokerTest {
loginTotpPage.assertCurrent(); loginTotpPage.assertCurrent();
events.clear();
// Login for 2 times with incorrect TOTP. This should temporarily disable the user // Login for 2 times with incorrect TOTP. This should temporarily disable the user
loginTotpPage.login("bad-totp"); loginTotpPage.login("bad-totp");
Assert.assertEquals("Invalid authenticator code.", loginTotpPage.getInputError()); Assert.assertEquals("Invalid authenticator code.", loginTotpPage.getInputError());
WaitUtils.waitForPageToLoad();
events.clear();
loginTotpPage.login("bad-totp"); loginTotpPage.login("bad-totp");
Assert.assertEquals("Invalid authenticator code.", loginTotpPage.getInputError()); Assert.assertEquals("Invalid authenticator code.", loginTotpPage.getInputError());
WaitUtils.waitForPageToLoad();
// wait for the disabled to come // wait for the disabled to come
events.expect(EventType.USER_DISABLED_BY_TEMPORARY_LOCKOUT) events.expect(EventType.USER_DISABLED_BY_TEMPORARY_LOCKOUT)