from thoughtsync.settings import REGISTRY, validate_updates def test_registry_has_expected_keys(): keys = {d.key for d in REGISTRY} assert {"site_name", "allow_registration", "session_ttl_days"} <= keys def test_validate_rejects_unknown_key(): clean, error = validate_updates({"nope": 1}) assert error is not None assert clean == {} def test_validate_coerces_bool_and_int(): clean, error = validate_updates({"allow_registration": "true", "session_ttl_days": "45"}) assert error is None assert clean["allow_registration"] is True assert clean["session_ttl_days"] == 45 def test_validate_rejects_bad_int(): clean, error = validate_updates({"session_ttl_days": "not-a-number"}) assert error is not None assert clean == {}