- Rename Docs/Tasks.md → Docs/tasks.md (case fix) - Add comprehensive task docs for INFRA-1 (server startup) and INFRA-2 (teardown) - Add test-robot make target - Add robotframework, browser, requests, jsonlibrary to requirements.txt Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
64 KiB
Global / Infrastructure Issues
Task INFRA-1: Fix Server Startup in Robot Framework Suite Setup
- Failing Step:
Suite Setup → Start Aniworld Server → Wait For Server - Failure Message:
Server did not become healthy within 30 seconds - Files to Check:
tests/robot/resources/common.resource(keywords:Start Aniworld Server,Wait For Server)tests/robot/run.shtests/robot/__init__.robot
- Reference Docs:
Docs/TESTING.mdDocs/API.md§1 (Base URL and Versioning)
- Expected Behavior:
- The suite setup should start the FastAPI uvicorn server on
127.0.0.1:8765. - The
Wait For Serverkeyword should poll/healthand receive HTTP 200 within 30 seconds. - The server process should remain running for the duration of the test suite.
- The suite setup should start the FastAPI uvicorn server on
- Actual Behavior:
- The server process likely fails to start because the active Python environment (
baseconda env, Python 3.13.5) does not have the project's dependencies installed. run.shinvokes plainpython, which resolves to the base environment instead of the project'sAniWorldconda environment.
- The server process likely fails to start because the active Python environment (
- Suggested Fix:
- Update
tests/robot/resources/common.resourceto start the server withconda run -n AniWorld python -m uvicorn ...instead of plainpython -m uvicorn. - Alternatively, ensure the
AniWorldconda environment is activated before runningtests/robot/run.sh.
- Update
Task INFRA-2: Fix Suite Teardown — Close Browser Keyword Argument Mismatch
- Failing Step:
Suite Teardown → Close Browser - Failure Message:
Keyword 'common.Close Browser' expected 0 arguments, got 1 - Files to Check:
tests/robot/__init__.robottests/robot/resources/common.resourcetests/robot/resources/ui_keywords.resource
- Reference Docs:
Docs/TESTING.md
- Expected Behavior:
- The suite teardown should cleanly close the browser and stop the server without errors.
- Actual Behavior:
- The
Close Browserkeyword is being called with an argument (likely${BROWSER}or similar), but the keyword definition expects 0 arguments.
- The
- Suggested Fix:
- Review
__init__.robotline:Close Browser— remove any passed arguments. - Or, if a custom wrapper keyword is intended, define it in
ui_keywords.resourceand call that instead.
- Review
API Tests — Robot.Api.Anime (14 tests, 0 passed, 14 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-ANIME-1: Get Anime Library Status
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robottests/robot/resources/common.resourcetests/robot/resources/api_keywords.resourcesrc/server/controllers/anime_controller.py(or equivalent)
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/anime/statusreturns HTTP 200 with JSON containingdirectoryandseries_count.
Task API-ANIME-2: Rescan Library
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/anime/rescanreturns HTTP 200, triggering a library rescan.
Task API-ANIME-3: Scan Status During Idle
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/anime/scan-statusreturns HTTP 200 within_progress: Falsewhen idle.
Task API-ANIME-4: Search Anime
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/anime/search?q=attackreturns HTTP 200 with valid JSON search results.
Task API-ANIME-5: Add New Series
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/anime/with payload{url, name, year}returns HTTP 201 and akeyin the response.
Task API-ANIME-6: Get Series Details
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/anime/{key}returns HTTP 200 withkey,name,folder,episodes.
Task API-ANIME-7: Update Series Settings
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
PUT /api/anime/{key}/settingsreturns HTTP 200 and persists settings likepreferred_language.
Task API-ANIME-8: Get Series Episodes
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/anime/{key}/episodesreturns HTTP 200 with valid JSON episode list.
Task API-ANIME-9: Delete Series
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
DELETE /api/anime/{key}returns HTTP 200.- Subsequent
GET /api/anime/{key}returns HTTP 404.
Task API-ANIME-10: List All Series
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/anime/returns HTTP 200 with valid JSON list.
Task API-ANIME-11: List Missing Episodes Only
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/anime/?filter=missingreturns HTTP 200 with series that have missing episodes.
Task API-ANIME-12: List No Episodes
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/anime/?filter=no_episodesreturns HTTP 200 with series having zero episodes.
Task API-ANIME-13: Duplicate Folders Detection
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Endpoint returns duplicate folder groups if any exist.
Task API-ANIME-14: Regenerate NFO For Series
- Test File:
tests/robot/api/anime.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/anime.robotsrc/server/controllers/anime_controller.pysrc/server/services/nfo_service.py
- Reference Docs:
Docs/API.mdDocs/NFO_GUIDE.md
- Expected Behavior:
POST /api/anime/{key}/regenerate-nforeturns HTTP 200 and triggers NFO regeneration.
API Tests — Robot.Api.Auth (12 tests, 0 passed, 12 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-AUTH-1: Setup Master Password
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robottests/robot/resources/common.resourcesrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/auth/setupwith{master_password, anime_directory, name, ...}returns HTTP 201.- Subsequent auth status shows
configured: True.
Task API-AUTH-2: Setup Rejects Weak Password
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/auth/setupwith weak password returns HTTP 400.
Task API-AUTH-3: Setup Rejects Duplicate
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Second
POST /api/auth/setupreturns HTTP 400 when already configured.
- Second
Task API-AUTH-4: Login With Valid Password
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/auth/loginwith correct password returns HTTP 200 and a JWTaccess_token.
Task API-AUTH-5: Login With Invalid Password
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/auth/loginwith wrong password returns HTTP 401.
Task API-AUTH-6: Login Rate Limiting
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.pysrc/server/middleware/rate_limiter.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- After 6 failed login attempts, subsequent attempts return HTTP 429 (or remain 401 depending on implementation).
Task API-AUTH-7: Auth Status Unconfigured
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/auth/statusbefore setup returnsconfigured: False.
Task API-AUTH-8: Auth Status Configured Unauthenticated
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/auth/statusafter setup but without token returnsconfigured: True,authenticated: False.
Task API-AUTH-9: Auth Status Authenticated
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/auth/statuswith valid Bearer token returnsauthenticated: True.
Task API-AUTH-10: Logout
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/controllers/auth_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/auth/logoutwith valid token returns HTTP 200 and invalidates the token.
Task API-AUTH-11: Protected Endpoint Without Auth
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/middleware/auth.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Accessing a protected endpoint without a token returns HTTP 401 or 403.
Task API-AUTH-12: Protected Endpoint With Auth
- Test File:
tests/robot/api/auth.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/auth.robotsrc/server/middleware/auth.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Accessing a protected endpoint with a valid Bearer token returns HTTP 200.
API Tests — Robot.Api.Config (10 tests, 0 passed, 10 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-CONFIG-1: Get Default Config
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
GET /api/configreturns HTTP 200 with keys:name,data_dir,scheduler,logging,backup,nfo.
Task API-CONFIG-2: Update Config
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
PUT /api/configupdates fields and returns HTTP 200. Persisted values are reflected on subsequent GET.
Task API-CONFIG-3: Validate Valid Config
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
POST /api/config/validatewith well-formed config returns HTTP 200 andvalid: True.
Task API-CONFIG-4: Validate Invalid Config Missing Name
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
POST /api/config/validatemissing requirednamefield returns HTTP 422.
Task API-CONFIG-5: Validate Invalid Schedule Time
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
POST /api/config/validatewithschedule_time: 25:00returns HTTP 422.
Task API-CONFIG-6: Validate Invalid Log Level
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
POST /api/config/validatewithlogging.level: INVALIDreturns HTTP 422.
Task API-CONFIG-7: Config Backup Create
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
POST /api/config/backupcreates a backup and returns HTTP 200.
Task API-CONFIG-8: Config Backup List
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
GET /api/config/backupsreturns HTTP 200 with a list of backups.
Task API-CONFIG-9: Config Backup Restore
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
POST /api/config/restorerestores a selected backup and returns HTTP 200.
Task API-CONFIG-10: Config Backup Delete
- Test File:
tests/robot/api/config.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/config.robotsrc/server/controllers/config_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
DELETE /api/config/backup/{id}removes the backup and returns HTTP 200.
API Tests — Robot.Api.Download (12 tests, 0 passed, 12 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-DL-1: Get Empty Queue Status
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/download/queuereturns HTTP 200 withstatus,statistics, andpending: 0.
Task API-DL-2: Add Episodes To Queue
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/queuewith episode list returns HTTP 201 anditem_ids.
Task API-DL-3: Start Queue
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/startreturns HTTP 200 and begins processing.
Task API-DL-4: Stop Queue
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/stopreturns HTTP 200 and halts processing.
Task API-DL-5: Pause Queue
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/pausereturns HTTP 200 and pauses processing.
Task API-DL-6: Resume Queue
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/resumereturns HTTP 200 and resumes processing.
Task API-DL-7: Clear Completed Downloads
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/clear/completedreturns HTTP 200 and removes completed items.
Task API-DL-8: Clear Failed Downloads
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/clear/failedreturns HTTP 200 and removes failed items.
Task API-DL-9: Clear Pending Downloads
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/clear/pendingreturns HTTP 200 and removes pending items.
Task API-DL-10: Remove Item From Queue
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
DELETE /api/download/queue/{item_id}returns HTTP 200 and removes the specific item.
Task API-DL-11: Retry Failed Item
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/download/retry/{item_id}returns HTTP 200 and re-queues the failed item.
Task API-DL-12: Queue Statistics Accuracy
- Test File:
tests/robot/api/download.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/download.robotsrc/server/controllers/download_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/download/queuestatistics reflect the actual state of pending, active, completed, and failed items.
API Tests — Robot.Api.Health (2 tests, 0 passed, 2 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-HEALTH-1: Basic Health Check
- Test File:
tests/robot/api/health.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/health.robotsrc/server/controllers/health_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /healthreturns HTTP 200 withstatus: healthy.
Task API-HEALTH-2: Detailed Health Check
- Test File:
tests/robot/api/health.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/health.robotsrc/server/controllers/health_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /health/detailedreturns HTTP 200 withstatus,version,uptime,memory,cpu.
API Tests — Robot.Api.Logging (6 tests, 0 passed, 6 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-LOG-1: Get Logging Config
- Test File:
tests/robot/api/logging.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/logging.robotsrc/server/controllers/logging_controller.py
- Reference Docs:
Docs/API.mdDocs/InstructionsLogging.md
- Expected Behavior:
GET /api/logging/configreturns HTTP 200 withlevel,file,max_bytes,backup_count.
Task API-LOG-2: List Log Files
- Test File:
tests/robot/api/logging.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/logging.robotsrc/server/controllers/logging_controller.py
- Reference Docs:
Docs/API.mdDocs/InstructionsLogging.md
- Expected Behavior:
GET /api/logging/filesreturns HTTP 200 with a list of available log files.
Task API-LOG-3: Tail Log File
- Test File:
tests/robot/api/logging.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/logging.robotsrc/server/controllers/logging_controller.py
- Reference Docs:
Docs/API.mdDocs/InstructionsLogging.md
- Expected Behavior:
GET /api/logging/tail/{filename}returns HTTP 200 with the tail contents of the log file.
Task API-LOG-4: Download Log File
- Test File:
tests/robot/api/logging.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/logging.robotsrc/server/controllers/logging_controller.py
- Reference Docs:
Docs/API.mdDocs/InstructionsLogging.md
- Expected Behavior:
GET /api/logging/download/{filename}returns HTTP 200 withContent-Type: application/octet-stream.
Task API-LOG-5: Write Test Log Messages
- Test File:
tests/robot/api/logging.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/logging.robotsrc/server/controllers/logging_controller.py
- Reference Docs:
Docs/API.mdDocs/InstructionsLogging.md
- Expected Behavior:
POST /api/logging/testwrites test messages at various levels and returns HTTP 200.
Task API-LOG-6: Cleanup Old Logs
- Test File:
tests/robot/api/logging.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/logging.robotsrc/server/controllers/logging_controller.py
- Reference Docs:
Docs/API.mdDocs/InstructionsLogging.md
- Expected Behavior:
DELETE /api/logging/cleanupdeletes old log files and returns HTTP 200.
API Tests — Robot.Api.Nfo (4 tests, 0 passed, 4 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-NFO-1: Get NFO Diagnostics
- Test File:
tests/robot/api/nfo.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/nfo.robotsrc/server/controllers/nfo_controller.pysrc/server/services/nfo_service.py
- Reference Docs:
Docs/API.mdDocs/NFO_GUIDE.md
- Expected Behavior:
GET /api/nfo/diagnostics/{series_key}returns HTTP 200 with diagnostic info.
Task API-NFO-2: Repair NFO For Series
- Test File:
tests/robot/api/nfo.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/nfo.robotsrc/server/controllers/nfo_controller.pysrc/server/services/nfo_service.py
- Reference Docs:
Docs/API.mdDocs/NFO_GUIDE.md
- Expected Behavior:
POST /api/nfo/repair/{series_key}returns HTTP 200 and regenerates NFO files.
Task API-NFO-3: List Series Needing Repair
- Test File:
tests/robot/api/nfo.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/nfo.robotsrc/server/controllers/nfo_controller.pysrc/server/services/nfo_service.py
- Reference Docs:
Docs/API.mdDocs/NFO_GUIDE.md
- Expected Behavior:
GET /api/nfo/needs-repairreturns HTTP 200 withtotalandserieslist.
Task API-NFO-4: Run NFO Scan
- Test File:
tests/robot/api/nfo.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/nfo.robotsrc/server/controllers/nfo_controller.pysrc/server/services/nfo_service.py
- Reference Docs:
Docs/API.mdDocs/NFO_GUIDE.md
- Expected Behavior:
POST /api/nfo/scanreturns HTTP 200 withtotal,created,updated,errors_count,duration_seconds.
API Tests — Robot.Api.Scheduler (6 tests, 0 passed, 6 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-SCHED-1: Get Scheduler Config
- Test File:
tests/robot/api/scheduler.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/scheduler.robotsrc/server/controllers/scheduler_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
GET /api/scheduler/configreturns HTTP 200 withsuccess,config(enabled, interval_minutes, schedule_time, schedule_days, auto_download_after_rescan), andstatus(is_running, next_run, last_run, scan_in_progress).
Task API-SCHED-2: Update Scheduler Config
- Test File:
tests/robot/api/scheduler.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/scheduler.robotsrc/server/controllers/scheduler_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
PUT /api/scheduler/configupdates settings and returns HTTP 200 with persisted values.
Task API-SCHED-3: Trigger Manual Rescan
- Test File:
tests/robot/api/scheduler.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/scheduler.robotsrc/server/controllers/scheduler_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
POST /api/scheduler/triggerreturns HTTP 200 withsuccess: True.
Task API-SCHED-4: Invalid Schedule Time
- Test File:
tests/robot/api/scheduler.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/scheduler.robotsrc/server/controllers/scheduler_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
PUT /api/scheduler/configwithschedule_time: 25:00returns HTTP 422.
Task API-SCHED-5: Invalid Schedule Days
- Test File:
tests/robot/api/scheduler.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/scheduler.robotsrc/server/controllers/scheduler_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
PUT /api/scheduler/configwithschedule_days: ['monday', 'tuesday']returns HTTP 422.
Task API-SCHED-6: Empty Schedule Days
- Test File:
tests/robot/api/scheduler.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/scheduler.robotsrc/server/controllers/scheduler_controller.py
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
PUT /api/scheduler/configwithschedule_days: []returns HTTP 200 (empty list accepted).
API Tests — Robot.Api.Setup (3 tests, 0 passed, 3 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-SETUP-1: List Unresolved Folders
- Test File:
tests/robot/api/setup.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/setup.robotsrc/server/controllers/setup_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/setup/unresolvedreturns HTTP 200 with a list of unresolved folders.
Task API-SETUP-2: Get Unresolved Folder Details
- Test File:
tests/robot/api/setup.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/setup.robotsrc/server/controllers/setup_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
GET /api/setup/unresolved/{folder}returns HTTP 200 with folder details.
Task API-SETUP-3: Resolve Folder With Provider Key
- Test File:
tests/robot/api/setup.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/setup.robotsrc/server/controllers/setup_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
POST /api/setup/resolvewith{folder, provider_key}returns HTTP 200 and maps the folder.
API Tests — Robot.Api.Websocket (4 tests, 0 passed, 4 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task API-WS-1: Connect To WebSocket
- Test File:
tests/robot/api/websocket.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/websocket.robotsrc/server/controllers/websocket_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
ws://127.0.0.1:8765/ws/connect?token={jwt}establishes a WebSocket connection.
- Note:
- Test currently uses
Pass Executionplaceholder because a custom keyword library is needed for full WebSocket testing.
- Test currently uses
Task API-WS-2: Subscribe To Rooms
- Test File:
tests/robot/api/websocket.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/websocket.robotsrc/server/controllers/websocket_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Client can subscribe to rooms:
downloads,queue,scan,system.
- Client can subscribe to rooms:
- Note:
- Test currently uses
Pass Executionplaceholder.
- Test currently uses
Task API-WS-3: Receive Ping Pong
- Test File:
tests/robot/api/websocket.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/websocket.robotsrc/server/controllers/websocket_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Server sends periodic ping/pong heartbeat messages.
- Note:
- Test currently uses
Pass Executionplaceholder.
- Test currently uses
Task API-WS-4: Receive System Notification
- Test File:
tests/robot/api/websocket.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/api/websocket.robotsrc/server/controllers/websocket_controller.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Triggering an action emits a system message over WebSocket.
- Note:
- Test currently uses
Pass Executionplaceholder.
- Test currently uses
UI Tests — Robot.Ui.Anime Settings (3 tests, 0 passed, 3 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task UI-ANIME-1: Anime Settings Page Loads
- Test File:
tests/robot/ui/anime_settings.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/anime_settings.robottests/robot/resources/ui_keywords.resourcesrc/server/web/templates/anime_settings.html(or equivalent)
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Navigating to
/anime/settings?key=attack-on-titanloads the settings form withregenerate-nfo-btnandsave-anime-settings-btnvisible.
- Navigating to
Task UI-ANIME-2: Regenerate NFO
- Test File:
tests/robot/ui/anime_settings.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/anime_settings.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/anime_settings.js
- Reference Docs:
Docs/API.mdDocs/NFO_GUIDE.md
- Expected Behavior:
- Clicking
#regenerate-nfo-btntriggers an API call and displays a toast containing "NFO".
- Clicking
Task UI-ANIME-3: Update Series Settings
- Test File:
tests/robot/ui/anime_settings.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/anime_settings.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/anime_settings.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Changing
preferred-language-selectandcustom-folder-input, then clicking#save-anime-settings-btn, saves settings and shows a toast containing "saved".
- Changing
UI Tests — Robot.Ui.Dashboard (11 tests, 0 passed, 11 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task UI-DASH-1: Dashboard Loads
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/templates/index.html
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Dashboard page title contains "AniWorld" and shows
search-input,search-btn,rescan-btn,theme-toggle,config-btn.
- Dashboard page title contains "AniWorld" and shows
Task UI-DASH-2: Search For Anime
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/dashboard.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Typing "attack" in
search-inputand submitting showssearch-results-list.
- Typing "attack" in
Task UI-DASH-3: Clear Search
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/dashboard.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking clear search hides
search-results.
- Clicking clear search hides
Task UI-DASH-4: Theme Toggle To Dark
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/theme.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#theme-toggleswitches the theme todark.
- Clicking
Task UI-DASH-5: Theme Toggle To Light
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/theme.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#theme-toggletwice returns the theme tolight.
- Clicking
Task UI-DASH-6: Theme Persists After Reload
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/theme.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- After toggling to dark and reloading, the theme remains
dark(persisted in localStorage or cookie).
- After toggling to dark and reloading, the theme remains
Task UI-DASH-7: Rescan Button
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/dashboard.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#rescan-btntriggers a rescan and shows#rescan-status .status-dot.scanning.
- Clicking
Task UI-DASH-8: Show Missing Episodes Only
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/dashboard.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#show-missing-onlysetsdata-active="true"on the button.
- Clicking
Task UI-DASH-9: Show All Series
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/dashboard.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#show-all-seriessetsdata-active="true"on the button.
- Clicking
Task UI-DASH-10: Select All Series
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/dashboard.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#select-allchecks all series checkboxes.
- Clicking
Task UI-DASH-11: Download Selected
- Test File:
tests/robot/ui/dashboard.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/dashboard.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/dashboard.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Selecting a series and clicking download-selected triggers a download request.
UI Tests — Robot.Ui.Login (6 tests, 0 passed, 6 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task UI-LOGIN-1: Login Page Loads
- Test File:
tests/robot/ui/login.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/login.robottests/robot/resources/ui_keywords.resourcesrc/server/web/templates/login.html
- Reference Docs:
Docs/API.md
- Expected Behavior:
/loginpage title contains "Login" and showspassword-input,login-submit-btn,password-toggle.
Task UI-LOGIN-2: Login With Valid Password
- Test File:
tests/robot/ui/login.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/login.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/login.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Submitting the correct password redirects to the dashboard (title contains "AniWorld",
search-inputvisible).
- Submitting the correct password redirects to the dashboard (title contains "AniWorld",
Task UI-LOGIN-3: Login With Invalid Password
- Test File:
tests/robot/ui/login.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/login.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/login.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Submitting a wrong password shows
#login-errorcontaining "invalid".
- Submitting a wrong password shows
Task UI-LOGIN-4: Login Rate Limit UI
- Test File:
tests/robot/ui/login.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/login.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/login.jssrc/server/middleware/rate_limiter.py
- Reference Docs:
Docs/API.md
- Expected Behavior:
- After 6 failed attempts, the UI shows
#login-errorcontaining "lockout".
- After 6 failed attempts, the UI shows
Task UI-LOGIN-5: Password Visibility Toggle
- Test File:
tests/robot/ui/login.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/login.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/login.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#password-togglechangespassword-inputtype frompasswordtotextand back.
- Clicking
Task UI-LOGIN-6: Logout
- Test File:
tests/robot/ui/login.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/login.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/login.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Logging out redirects to
/login(title contains "Login",password-inputvisible).
- Logging out redirects to
UI Tests — Robot.Ui.Queue Page (8 tests, 0 passed, 8 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task UI-QUEUE-1: Queue Page Loads
- Test File:
tests/robot/ui/queue_page.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/queue_page.robottests/robot/resources/ui_keywords.resourcesrc/server/web/templates/queue.html
- Reference Docs:
Docs/API.md
- Expected Behavior:
/queuepage title contains "Queue" and shows stat cards (total-items,pending-items,completed-items,failed-items) and queue sections (pending-queue,active-downloads,completed-downloads,failed-downloads).
Task UI-QUEUE-2: Queue Stats Cards Display Zero Initially
- Test File:
tests/robot/ui/queue_page.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/queue_page.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/queue.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- When the queue is empty, all stat cards display
0.
- When the queue is empty, all stat cards display
Task UI-QUEUE-3: Start Queue Button
- Test File:
tests/robot/ui/queue_page.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/queue_page.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/queue.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#start-queue-btn(when not disabled) changes the UI to show#stop-queue-btn.
- Clicking
Task UI-QUEUE-4: Stop Queue Button
- Test File:
tests/robot/ui/queue_page.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/queue_page.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/queue.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#stop-queue-btn(when not disabled) changes the UI to show#start-queue-btn.
- Clicking
Task UI-QUEUE-5: Clear Completed Confirmation
- Test File:
tests/robot/ui/queue_page.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/queue_page.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/queue.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#clear-completed-btnopens#confirm-modalcontaining "clear". Canceling hides the modal.
- Clicking
Task UI-QUEUE-6: Clear Failed Confirmation
- Test File:
tests/robot/ui/queue_page.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/queue_page.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/queue.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#clear-failed-btnopens#confirm-modalcontaining "clear". Canceling hides the modal.
- Clicking
Task UI-QUEUE-7: Retry All Failed
- Test File:
tests/robot/ui/queue_page.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/queue_page.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/queue.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking
#retry-all-btn(when not disabled) shows a toast containing "retry".
- Clicking
Task UI-QUEUE-8: Navigation Back To Main
- Test File:
tests/robot/ui/queue_page.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/queue_page.robottests/robot/resources/ui_keywords.resourcesrc/server/web/templates/queue.html
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Clicking the back button navigates to the main dashboard.
UI Tests — Robot.Ui.Responsive (5 tests, 0 passed, 5 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task UI-RESP-1: Mobile Viewport Layout
- Test File:
tests/robot/ui/responsive.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/responsive.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/css/responsive.css
- Reference Docs:
Docs/API.md
- Expected Behavior:
- At mobile viewport (
<= 480px), layout adapts andsearch-input,theme-toggleremain visible.
- At mobile viewport (
Task UI-RESP-2: Mobile Menu Accessible
- Test File:
tests/robot/ui/responsive.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/responsive.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/css/responsive.csssrc/server/web/static/js/responsive.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- On mobile,
#mobile-menu-btnis visible and clicking it shows#mobile-menu.
- On mobile,
Task UI-RESP-3: Tablet Viewport Layout
- Test File:
tests/robot/ui/responsive.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/responsive.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/css/responsive.css
- Reference Docs:
Docs/API.md
- Expected Behavior:
- At tablet viewport (
>= 768px), layout adapts andsearch-input,rescan-btnremain visible.
- At tablet viewport (
Task UI-RESP-4: Touch Buttons Clickable
- Test File:
tests/robot/ui/responsive.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/responsive.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/css/responsive.css
- Reference Docs:
Docs/API.md
- Expected Behavior:
- On mobile viewport,
#theme-toggleremains clickable and toggles the theme correctly.
- On mobile viewport,
Task UI-RESP-5: Desktop Viewport Reset
- Test File:
tests/robot/ui/responsive.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/responsive.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/css/responsive.css
- Reference Docs:
Docs/API.md
- Expected Behavior:
- At desktop viewport (
>= 1280px),search-input,rescan-btn,config-btnare all visible.
- At desktop viewport (
UI Tests — Robot.Ui.Settings Modal (15 tests, 0 passed, 15 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task UI-SETTINGS-1: Open Settings Modal
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Clicking
#config-btnopens#config-modal.
- Clicking
Task UI-SETTINGS-2: Close Settings Modal Via Button
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Clicking the close button hides
#config-modal.
- Clicking the close button hides
Task UI-SETTINGS-3: Close Settings Modal Via Overlay
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Clicking
#config-modal .modal-overlayhides#config-modal.
- Clicking
Task UI-SETTINGS-4: Close Settings Modal Via Escape
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Pressing
Escapewhile#config-modalis focused hides the modal.
- Pressing
Task UI-SETTINGS-5: Edit General Settings
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Changing app name, data dir, and anime directory, then saving, shows a toast containing "saved".
Task UI-SETTINGS-6: Edit Scheduler Settings
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Enabling scheduler, setting time to
04:30, selecting days, and saving shows a toast containing "saved".
- Enabling scheduler, setting time to
Task UI-SETTINGS-7: Disable Scheduler
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Unchecking
#scheduled-rescan-enabledand saving shows a toast containing "saved".
- Unchecking
Task UI-SETTINGS-8: Edit Logging Settings
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.mdDocs/InstructionsLogging.md
- Expected Behavior:
- Changing log level to DEBUG, file path, max bytes, backup count, and saving shows a toast containing "saved".
Task UI-SETTINGS-9: Edit Backup Settings
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Enabling backup, setting path and retention days, and saving shows a toast containing "saved".
Task UI-SETTINGS-10: Edit NFO Settings
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.mdDocs/NFO_GUIDE.md
- Expected Behavior:
- Entering TMDB key, enabling auto-create, poster/logo/fanart downloads, and saving shows a toast containing "saved".
Task UI-SETTINGS-11: Create Config Backup
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Clicking
#create-backup-btnshows a toast containing "backup".
- Clicking
Task UI-SETTINGS-12: Restore Config Backup
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Selecting a
.backup-itemand clicking#restore-backup-btnshows a toast containing "restore".
- Selecting a
Task UI-SETTINGS-13: Delete Config Backup
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Selecting a
.backup-itemand clicking#delete-backup-btnshows a toast containing "delete".
- Selecting a
Task UI-SETTINGS-14: Export Config
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.js
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Clicking
#export-config-btntriggers a file download event.
- Clicking
Task UI-SETTINGS-15: Import Config
- Test File:
tests/robot/ui/settings_modal.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/settings_modal.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/settings_modal.jstests/robot/fixtures/sample_config.json
- Reference Docs:
Docs/API.mdDocs/CONFIGURATION.md
- Expected Behavior:
- Uploading a config file via
#import-config-inputand clicking#import-config-btnshows a toast containing "import".
- Uploading a config file via
UI Tests — Robot.Ui.Setup Flow (8 tests, 0 passed, 8 failed)
Parent Suite Setup Failed:
Server did not become healthy within 30 seconds
Task UI-SETUP-1: Setup Page Loads
- Test File:
tests/robot/ui/setup_flow.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/setup_flow.robottests/robot/resources/ui_keywords.resourcesrc/server/web/templates/setup.html
- Reference Docs:
Docs/API.md
- Expected Behavior:
/setuppage title contains "Setup" and showssetup-form,general-section,security-section,scheduler-section,logging-section,backup-section,nfo-section.
Task UI-SETUP-2: Password Strength Weak
- Test File:
tests/robot/ui/setup_flow.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/setup_flow.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/setup.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Typing "weak" in
#master-password-inputshows#password-strengthcontaining "weak".
- Typing "weak" in
Task UI-SETUP-3: Password Strength Medium
- Test File:
tests/robot/ui/setup_flow.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/setup_flow.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/setup.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Typing "Medium1!" in
#master-password-inputshows#password-strengthcontaining "medium".
- Typing "Medium1!" in
Task UI-SETUP-4: Password Strength Strong
- Test File:
tests/robot/ui/setup_flow.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/setup_flow.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/setup.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Typing a strong password in
#master-password-inputshows#password-strengthcontaining "strong".
- Typing a strong password in
Task UI-SETUP-5: Setup Form Validation Empty Password
- Test File:
tests/robot/ui/setup_flow.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/setup_flow.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/setup.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Submitting setup with empty password shows
#password-errorcontaining "required".
- Submitting setup with empty password shows
Task UI-SETUP-6: Setup Form Validation Mismatched Passwords
- Test File:
tests/robot/ui/setup_flow.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/setup_flow.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/setup.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Submitting with mismatched password and confirmation shows
#confirm-password-errorcontaining "match".
- Submitting with mismatched password and confirmation shows
Task UI-SETUP-7: Complete Setup Flow
- Test File:
tests/robot/ui/setup_flow.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/setup_flow.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/setup.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- Filling all fields correctly and submitting redirects to the main page (
search-inputvisible, title contains "AniWorld").
- Filling all fields correctly and submitting redirects to the main page (
Task UI-SETUP-8: Setup Redirects When Already Configured
- Test File:
tests/robot/ui/setup_flow.robot - Failing Step: Parent suite setup (
Wait For Server) - Files to Check:
tests/robot/ui/setup_flow.robottests/robot/resources/ui_keywords.resourcesrc/server/web/static/js/setup.js
- Reference Docs:
Docs/API.md
- Expected Behavior:
- After setup is complete, visiting
/setupredirects to/(URL does not contain/setup).
- After setup is complete, visiting
Summary
| Category | Suite | Tests | Passed | Failed |
|---|---|---|---|---|
| Infrastructure | Global | — | 0 | 129 (all blocked by suite setup) |
| API | Anime | 14 | 0 | 14 |
| API | Auth | 12 | 0 | 12 |
| API | Config | 10 | 0 | 10 |
| API | Download | 12 | 0 | 12 |
| API | Health | 2 | 0 | 2 |
| API | Logging | 6 | 0 | 6 |
| API | Nfo | 4 | 0 | 4 |
| API | Scheduler | 6 | 0 | 6 |
| API | Setup | 3 | 0 | 3 |
| API | Websocket | 4 | 0 | 4 |
| UI | Anime Settings | 3 | 0 | 3 |
| UI | Dashboard | 11 | 0 | 11 |
| UI | Login | 6 | 0 | 6 |
| UI | Queue Page | 8 | 0 | 8 |
| UI | Responsive | 5 | 0 | 5 |
| UI | Settings Modal | 15 | 0 | 15 |
| UI | Setup Flow | 8 | 0 | 8 |
| Total | 129 | 0 | 129 |
Recommended Priority Order
- INFRA-1 — Fix the server startup environment issue. This is the blocker for all 129 tests.
- INFRA-2 — Fix the suite teardown
Close Browserkeyword argument mismatch. - Once the server starts correctly, re-run the full Robot Framework suite to identify any individual test logic failures.
- Address any remaining per-test failures based on the new run results.