from shared.config import validate_runtime_profile from shared.errors import ErrorEnvelope, ResultEnvelope from shared.telemetry import HealthEvent, MetricsLabels def test_missing_production_cache_dir_returns_readiness_failure() -> None: # Arrange payload = { "environment": "production", "config_dir": "/etc/gps-denied-onboard", "fdr_dir": "/var/lib/gps-denied/fdr", "database_url": "postgresql://localhost/gpsd", "mavlink_url": "serial:/dev/ttyTHS1:921600", "camera_source": "hardware", "signing_key_ref": "secret-ref", } # Act result = validate_runtime_profile("runtime", payload) # Assert assert result.ok is False assert result.error is not None assert result.error.component == "runtime" assert result.error.category == "configuration" assert result.error.severity == "critical" assert result.error.retryable is False def test_dependency_error_envelope_has_required_structured_fields() -> None: # Act result = ResultEnvelope.failure( ErrorEnvelope( component="tile_manager", category="dependency", message="postgis unavailable", severity="error", retryable=True, cause="connection refused", ) ) # Assert assert result.ok is False assert result.error is not None assert result.error.component == "tile_manager" assert result.error.category == "dependency" assert result.error.severity == "error" assert result.error.retryable is True def test_health_event_and_metrics_labels_are_fdr_safe_metadata() -> None: # Act health = HealthEvent( component="runtime", timestamp_ns=1, liveness="alive", readiness="ready", dependency_state={"postgis": "ready"}, ) labels = MetricsLabels(component="runtime", action="startup", status="ok") # Assert assert health.dependency_state["postgis"] == "ready" assert labels.status == "ok"