UI: Only clear errors on successful login

This commit is contained in:
Max Berger
2026-04-16 22:57:18 +02:00
parent 17e461cd82
commit 3866a648e7
2 changed files with 31 additions and 1 deletions

View File

@@ -53,3 +53,32 @@ def test_login_logout_login(page: Page, radicale_server: str, config: Config) ->
# 3. Second login
login(page, radicale_server, config)
expect(page.locator("#collectionsscene")).to_be_visible()
def test_login_wrong_password_shows_error(
page: Page, radicale_server: str, config: Config
) -> None:
page.goto(radicale_server)
# 1. Login with wrong password
page.fill('#loginscene input[data-name="user"]', "admin")
page.fill('#loginscene input[data-name="password"]', "wrongpassword")
page.click('button:has-text("Next")')
# Expect error message to be shown
expect(page.locator('#loginscene [data-name="error"]')).to_be_visible()
# 2. Login with right password
page.fill('#loginscene input[data-name="password"]', "admi$pass#word")
page.click('button:has-text("Next")')
# Expect successful login
expect(page.locator("#collectionsscene")).to_be_visible()
# 3. Logout
page.click('#logoutview a[data-name="logout"]')
expect(page.locator("#loginscene")).to_be_visible()
expect(page.locator("#collectionsscene")).to_be_hidden()
# Expect error message is NOT shown
expect(page.locator('#loginscene [data-name="error"]')).not_to_be_visible()

View File

@@ -90,6 +90,8 @@ export class LoginScene {
this._errorHandler.setError(error1);
pop_scene();
} else if (principal_collection) {
// clear error on successful login
this._errorHandler.clearError();
// show collections
let saved_user = this._user;
this._user = "";
@@ -145,7 +147,6 @@ export class LoginScene {
}
show() {
this._errorHandler.clearError();
this._remove_logout();
this._fill_form();
this._form.onsubmit = () => this._onlogin();