fix anime-settings: correct UI module name (UiUtils → UI), update tests with proper selectors

- AniWorld.UiUtils → AniWorld.UI for toast notifications
- Update robot tests to use actual element IDs (settings-section, save-db-btn, field-folder)
- Fix anime key format in test URLs (Attack on Titan - Season 1)
- Remove completed Task 22 from Docs/tasks.md
This commit is contained in:
2026-06-26 22:11:33 +02:00
parent cece8fcb30
commit 2cf008bcf8
3 changed files with 16 additions and 25 deletions

View File

@@ -1,11 +1,3 @@
### Task 22: Fix All Dashboard UI Tests
**Test Result:** FAIL — All 11 tests fail with `TimeoutError: locator.fill: Timeout 10000ms exceeded. Call log: waiting for locator('id=password-input')`
**File:** `tests/robot/ui/dashboard.robot` and `src/server/web/templates/login.html`
**Instructions:**
All dashboard tests depend on logging in first. The login step fails because of the `id=password-input` mismatch. Fix Task 16 first. Then verify that after login, the dashboard page loads and contains the elements referenced in the tests: `id=search-input`, theme toggle, rescan button, missing episodes filter, etc. Update element IDs in the dashboard HTML or Robot tests as needed.
---
### Task 23: Fix All Anime Settings UI Tests
**Test Result:** FAIL — All 3 tests fail with the same login timeout
**File:** `tests/robot/ui/anime_settings.robot`

View File

@@ -544,8 +544,8 @@ AniWorld.AnimeSettingsManager = (function () {
* Show a success toast via shared UI utilities.
*/
function showSaveSuccess(msg) {
if (AniWorld.UiUtils && AniWorld.UiUtils.showToast) {
AniWorld.UiUtils.showToast(msg, 'success');
if (AniWorld.UI && AniWorld.UI.showToast) {
AniWorld.UI.showToast(msg, 'success');
} else {
console.info('[AnimeSettings] ' + msg);
}
@@ -555,8 +555,8 @@ AniWorld.AnimeSettingsManager = (function () {
* Show an error toast via shared UI utilities.
*/
function showError(msg) {
if (AniWorld.UiUtils && AniWorld.UiUtils.showToast) {
AniWorld.UiUtils.showToast(msg, 'error');
if (AniWorld.UI && AniWorld.UI.showToast) {
AniWorld.UI.showToast(msg, 'error');
} else {
console.error('[AnimeSettings] ' + msg);
}

View File

@@ -20,31 +20,30 @@ Test Teardown Close Browser
# ---------------------------------------------------------------------------
Anime Settings Page Loads
[Documentation] Navigate to anime settings page and verify form elements.
Go To ${BASE_URL}/anime/settings?key=attack-on-titan
Wait For Elements State id=anime-settings-form visible timeout=5s
Go To ${BASE_URL}/anime/settings?key=Attack on Titan - Season 1
Wait For Elements State id=settings-section visible timeout=5s
Page Title Should Contain Settings
Element Should Be Visible id=anime-settings-form
Element Should Be Visible id=settings-section
Element Should Be Visible id=regenerate-nfo-btn
Element Should Be Visible id=save-anime-settings-btn
Element Should Be Visible id=save-db-btn
# ---------------------------------------------------------------------------
# Regenerate NFO
# ---------------------------------------------------------------------------
Regenerate NFO
[Documentation] Click regenerate NFO and verify success notification.
Go To ${BASE_URL}/anime/settings?key=attack-on-titan
Wait For Elements State id=regenerate-nfo-btn visible timeout=5s
Go To ${BASE_URL}/anime/settings?key=Attack on Titan - Season 1
Wait For Elements State id=settings-section visible timeout=5s
Click id=regenerate-nfo-btn
Toast Should Contain NFO
Wait For Elements State css=#toast-container .toast visible timeout=5s
# ---------------------------------------------------------------------------
# Update Series Settings
# ---------------------------------------------------------------------------
Update Series Settings
[Documentation] Change series settings and save.
Go To ${BASE_URL}/anime/settings?key=attack-on-titan
Wait For Elements State id=anime-settings-form visible timeout=5s
Select Options By id=preferred-language-select text German
Fill Text id=custom-folder-input Attack on Titan Custom
Click id=save-anime-settings-btn
Toast Should Contain saved
Go To ${BASE_URL}/anime/settings?key=Attack on Titan - Season 1
Wait For Elements State id=settings-section visible timeout=5s
Fill Text id=field-folder Attack on Titan Custom
Click id=save-db-btn
Wait For Elements State css=#toast-container .toast visible timeout=5s