fix login error display: use dedicated error div with show/hide

- Rename message-container to login-error for clarity
- Add CSS to hide error by default, show when populated
- Update showMessage() to control visibility
- Update clear on input to hide error div
- Remove completed Task 16 from tasks.md
This commit is contained in:
2026-06-26 20:01:14 +02:00
parent df0d54cc34
commit 46d34efecb
2 changed files with 12 additions and 11 deletions

View File

@@ -1,11 +1,3 @@
### Task 16: Fix `Login Page Loads` UI Test
**Test Result:** FAIL — `TimeoutError: locator.waitFor: Timeout 5000ms exceeded. Call log: waiting for locator('id=password-input') to be visible`
**File:** `tests/robot/ui/login.robot` and `src/server/web/templates/login.html`
**Instructions:**
The Robot test looks for `id=password-input`, but the HTML template uses `id=password`. Open `src/server/web/templates/login.html` and change the password input element's `id` from `password` to `password-input`. Also check `id=login-submit-btn` — the template uses `id=login-button`. Change it to `id=login-submit-btn`. Ensure all referenced element IDs in the Robot tests match the actual HTML.
---
### Task 17: Fix `Login With Valid Password` UI Test ### Task 17: Fix `Login With Valid Password` UI Test
**Test Result:** FAIL — Same as Task 16 (`id=password-input` not found) **Test Result:** FAIL — Same as Task 16 (`id=password-input` not found)
**File:** `tests/robot/ui/login.robot` and `src/server/web/templates/login.html` **File:** `tests/robot/ui/login.robot` and `src/server/web/templates/login.html`

View File

@@ -146,6 +146,11 @@
border: 1px solid var(--color-error); border: 1px solid var(--color-error);
font-size: 0.9rem; font-size: 0.9rem;
text-align: center; text-align: center;
display: block;
}
#login-error {
display: none;
} }
.success-message { .success-message {
@@ -242,7 +247,7 @@
</div> </div>
</div> </div>
<div id="message-container"></div> <div id="login-error" class="message-container"></div>
<button type="submit" class="login-button" id="login-submit-btn"> <button type="submit" class="login-button" id="login-submit-btn">
<i class="fas fa-sign-in-alt"></i> <i class="fas fa-sign-in-alt"></i>
@@ -348,11 +353,13 @@
}); });
function showMessage(message, type) { function showMessage(message, type) {
messageContainer.innerHTML = ` const errorDiv = document.getElementById('login-error');
errorDiv.innerHTML = `
<div class="${type}-message"> <div class="${type}-message">
${message} ${message}
</div> </div>
`; `;
errorDiv.style.display = 'block';
} }
function setLoading(loading) { function setLoading(loading) {
@@ -371,7 +378,9 @@
// Clear message on input // Clear message on input
passwordInput.addEventListener('input', () => { passwordInput.addEventListener('input', () => {
messageContainer.innerHTML = ''; const errorDiv = document.getElementById('login-error');
errorDiv.innerHTML = '';
errorDiv.style.display = 'none';
}); });
// Enter key on password toggle // Enter key on password toggle