arden scrape safety telemetry and polish run state UX

This commit is contained in:
Justin Visser 2026-02-19 21:59:36 +01:00
parent 110e246a1c
commit d7404abf18
33 changed files with 2074 additions and 96 deletions

View file

@ -4,10 +4,14 @@ import pytest
from app.services.user_settings import (
DEFAULT_NAV_VISIBLE_PAGES,
HARD_MIN_REQUEST_DELAY_SECONDS,
HARD_MIN_RUN_INTERVAL_MINUTES,
UserSettingsServiceError,
parse_nav_visible_pages,
parse_request_delay_seconds,
parse_run_interval_minutes,
resolve_request_delay_minimum,
resolve_run_interval_minimum,
)
@ -35,6 +39,27 @@ def test_parse_request_delay_seconds_rejects_below_minimum() -> None:
parse_request_delay_seconds("1")
def test_parse_run_interval_minutes_rejects_below_configured_minimum() -> None:
with pytest.raises(
UserSettingsServiceError,
match="Check interval must be at least 30 minutes.",
):
parse_run_interval_minutes("29", minimum=30)
def test_parse_request_delay_seconds_rejects_below_configured_minimum() -> None:
with pytest.raises(
UserSettingsServiceError,
match="Request delay must be at least 8 seconds.",
):
parse_request_delay_seconds("7", minimum=8)
def test_resolve_minimums_keep_hard_floors() -> None:
assert resolve_run_interval_minimum(1) == HARD_MIN_RUN_INTERVAL_MINUTES
assert resolve_request_delay_minimum(0) == HARD_MIN_REQUEST_DELAY_SECONDS
def test_parse_nav_visible_pages_accepts_valid_pages() -> None:
parsed = parse_nav_visible_pages(
[