Files
Aniworld/Docs/tasks.md
Lukas 10b5ca42f5 fix(ui): call AnimeSettingsManager.init() before interacting with settings section
Tests were failing because #settings-section remained hidden. The JavaScript
initialization was not being triggered, leaving UI components in hidden state.
Added explicit init() call in test setup for Anime Settings, Regenerate NFO,
and Update Series Settings test cases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-28 17:26:22 +02:00

9.6 KiB

Task 14: UI Anime Settings - Update Series Settings

Suite: Robot.Ui.Anime Settings
Test: Update Series Settings
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 5000ms exceeded. waiting for locator('id=settings-section') to be visible — locator resolved to hidden <section id="settings-section" class="settings-section hidden">…</section>

Instructions:

  • Same root cause as Task 12 and 13: the #settings-section element remains hidden.
  • Fix the navigation/activation steps in tests/robot/ui/anime_settings.robot so the settings section is visible before interacting with it.
  • Ensure the test clicks the correct element to open/show the anime settings.

Task 15: UI Dashboard - Download Selected

Suite: Robot.Ui.Dashboard
Test: Download Selected
Result: FAIL
Error: 'Mit Server verbunden' does not contain 'queue'

Instructions:

  • The test expects a toast/notification message containing the word queue after clicking "Download Selected".
  • Instead, the German message Mit Server verbunden (Connected to server) appears.
  • Check the dashboard frontend code for the download action toast message.
  • Either update the frontend to show an English message containing queue, or update the test in tests/robot/ui/dashboard.robot to match the actual German text.
  • Consider using a data-testid or a more stable assertion instead of toast text.

Task 16: UI Login - Login Rate Limit UI

Suite: Robot.Ui.Login
Test: Login Rate Limit UI
Result: FAIL
Error: 'invalid credentials' does not contain 'lockout'

Instructions:

  • The test expects a lockout message containing lockout after multiple failed login attempts.
  • Instead, the message invalid credentials is shown.
  • Investigate the login rate-limiting logic in the backend and frontend.
  • Check if rate limiting is actually triggered (may require more attempts or a different timing).
  • Update the test in tests/robot/ui/login.robot to match the actual error message, or fix the rate-limiting display in the frontend.

Task 17: UI Settings Modal - Close Settings Modal Via Overlay

Suite: Robot.Ui.Settings Modal
Test: Close Settings Modal Via Overlay
Result: FAIL
Error: TimeoutError: locator.click: Timeout 10000ms exceeded. waiting for locator('id=config-modal .modal-overlay')

Instructions:

  • The test tries to click a .modal-overlay element inside #config-modal, but the element is not found.
  • Inspect the settings modal HTML structure in the frontend.
  • The overlay element may have a different class name (e.g., .modal-backdrop, .overlay) or may not exist as a separate element.
  • Update the locator in tests/robot/ui/settings_modal.robot to match the actual DOM structure.
  • If the overlay click-to-close behavior is missing, implement it in the frontend.

Task 18: UI Settings Modal - Close Settings Modal Via Escape

Suite: Robot.Ui.Settings Modal
Test: Close Settings Modal Via Escape
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 3000ms exceeded. waiting for locator('id=config-modal') to be hidden — locator resolved to visible <div class="modal" id="config-modal">…</div>

Instructions:

  • The test presses the Escape key to close the settings modal, but the modal remains visible.
  • Investigate the modal JavaScript/frontend code to see if Escape key handling is implemented.
  • If Escape-to-close is missing, add an event listener in the frontend that closes #config-modal on keydown with key === 'Escape'.
  • If the behavior exists but is broken, debug why the modal is not closing.
  • Alternatively, update the test to use a different close method if Escape is not supported.

Task 19: UI Settings Modal - Disable Scheduler

Suite: Robot.Ui.Settings Modal
Test: Disable Scheduler
Result: FAIL
Error: TimeoutError: locator.uncheck: Timeout 10000ms exceeded. waiting for locator('id=scheduled-rescan-enabled') — element is not visible

Instructions:

  • The test tries to uncheck #scheduled-rescan-enabled, but the checkbox is not visible.
  • The checkbox may be inside a collapsed tab, hidden panel, or require scrolling.
  • Investigate the settings modal layout — the scheduler settings may be on a different tab or section.
  • Update the test in tests/robot/ui/settings_modal.robot to navigate to the correct tab/section before interacting with the checkbox.
  • Alternatively, ensure the checkbox is visible when the modal opens.

Task 20: UI Settings Modal - Edit Backup Settings

Suite: Robot.Ui.Settings Modal
Test: Edit Backup Settings
Result: FAIL
Error: TimeoutError: locator.check: Timeout 10000ms exceeded. waiting for locator('id=backup-enabled') — element is not visible

Instructions:

  • The test tries to check #backup-enabled, but the checkbox is not visible.
  • Same root cause as Task 19: the backup settings may be inside a collapsed tab or hidden panel.
  • Update the test in tests/robot/ui/settings_modal.robot to navigate to the correct tab/section before interacting with the checkbox.
  • Ensure the backup settings section is visible when the modal opens or after clicking the appropriate tab.

Task 21: UI Settings Modal - Edit NFO Settings

Suite: Robot.Ui.Settings Modal
Test: Edit NFO Settings
Result: FAIL
Error: TimeoutError: locator.check: Timeout 10000ms exceeded. waiting for locator('id=nfo-auto-create') — element is not visible

Instructions:

  • The NFO settings fields suffer from visibility issues similar to Tasks 19 and 20.
  • Verify the test in tests/robot/ui/settings_modal.robot correctly navigates to the NFO settings tab/section.
  • Ensure all form elements are visible before interacting with them.
  • Update locators if the element IDs or structure changed.

Task 22: UI Setup Flow - Setup Page Loads

Suite: Robot.Ui.Setup Flow
Test: Setup Page Loads
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 5000ms exceeded. waiting for locator('id=setup-form') to be visible

Instructions:

  • The setup flow tests expect #setup-form to be visible, but it is not found.
  • Investigate the setup page frontend code.
  • The app may already be configured, causing the setup page to redirect to the dashboard instead of showing the form.
  • Check if a suite-level setup/teardown resets the app to an unconfigured state before running setup flow tests.
  • Update the test setup in tests/robot/ui/setup_flow.robot or the backend to ensure the setup form is available.

Task 23: UI Setup Flow - Password Strength Weak

Suite: Robot.Ui.Setup Flow
Test: Password Strength Weak
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 5000ms exceeded. waiting for locator('id=setup-form') to be visible

Instructions:

  • Same root cause as Task 22: the setup form is not visible.
  • Fix the suite setup so the app is in an unconfigured state before each setup flow test.
  • Ensure #setup-form is rendered when navigating to the setup page.

Task 24: UI Setup Flow - Password Strength Medium

Suite: Robot.Ui.Setup Flow
Test: Password Strength Medium
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 5000ms exceeded. waiting for locator('id=setup-form') to be visible

Instructions:

  • Same root cause as Task 22: the setup form is not visible.
  • Fix the suite setup so the app is in an unconfigured state before each setup flow test.
  • Ensure #setup-form is rendered when navigating to the setup page.

Task 25: UI Setup Flow - Password Strength Strong

Suite: Robot.Ui.Setup Flow
Test: Password Strength Strong
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 5000ms exceeded. waiting for locator('id=setup-form') to be visible

Instructions:

  • Same root cause as Task 22: the setup form is not visible.
  • Fix the suite setup so the app is in an unconfigured state before each setup flow test.
  • Ensure #setup-form is rendered when navigating to the setup page.

Task 26: UI Setup Flow - Setup Form Validation Empty Password

Suite: Robot.Ui.Setup Flow
Test: Setup Form Validation Empty Password
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 5000ms exceeded. waiting for locator('id=setup-form') to be visible

Instructions:

  • Same root cause as Task 22: the setup form is not visible.
  • Fix the suite setup so the app is in an unconfigured state before each setup flow test.
  • Ensure #setup-form is rendered when navigating to the setup page.

Task 27: UI Setup Flow - Setup Form Validation Mismatched Passwords

Suite: Robot.Ui.Setup Flow
Test: Setup Form Validation Mismatched Passwords
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 5000ms exceeded. waiting for locator('id=setup-form') to be visible

Instructions:

  • Same root cause as Task 22: the setup form is not visible.
  • Fix the suite setup so the app is in an unconfigured state before each setup flow test.
  • Ensure #setup-form is rendered when navigating to the setup page.

Task 28: UI Setup Flow - Complete Setup Flow

Suite: Robot.Ui.Setup Flow
Test: Complete Setup Flow
Result: FAIL
Error: TimeoutError: locator.waitFor: Timeout 5000ms exceeded. waiting for locator('id=setup-form') to be visible

Instructions:

  • Same root cause as Task 22: the setup form is not visible.
  • Fix the suite setup so the app is in an unconfigured state before each setup flow test.
  • Ensure #setup-form is rendered when navigating to the setup page.