lenso-platform-core 0.1.27

Core runtime primitives for the Lenso backend framework.
Documentation
use platform_core::{AppError, ErrorCode};

#[test]
fn error_codes_are_machine_readable() {
    let error = AppError::new(ErrorCode::NotFound, "Resource not found");

    assert_eq!(error.code.as_str(), "not_found");
    assert_eq!(error.public_message, "Resource not found");
    assert!(!error.retryable);
    assert_eq!(error.retry_after_ms, None);
    assert_eq!(error.provider_trace_reference, None);
}

#[test]
fn transport_retry_metadata_is_preserved_without_making_the_error_retryable() {
    let error = AppError::new(ErrorCode::ExternalDependency, "Provider failed")
        .with_retry_after_ms(Some(1_500))
        .with_provider_trace_reference(Some("provider-trace-1".to_owned()));

    assert!(!error.retryable);
    assert_eq!(error.retry_after_ms, Some(1_500));
    assert_eq!(
        error.provider_trace_reference.as_deref(),
        Some("provider-trace-1")
    );
}

#[test]
fn provider_metadata_is_bounded_before_it_reaches_runtime_evidence() {
    let error = AppError::new(ErrorCode::ExternalDependency, "Provider failed")
        .with_retry_after_ms(Some(u64::MAX))
        .with_provider_trace_reference(Some("\n".repeat(1_000)));

    assert_eq!(error.retry_after_ms, Some(86_400_000));
    let reference = error.provider_trace_reference.unwrap();
    assert!(reference.len() <= 512);
    assert!(!reference.chars().any(char::is_control));
}