larpshell 0.2.3

Ctrl+C then Ctrl+V is simply too much work. Just let an LLM rule your terminal!!
use crate::error::LarpshellError;

#[test]
fn from_http_status_rounds_retry_after_up() {
    let err = LarpshellError::from_http_status(
        reqwest::StatusCode::TOO_MANY_REQUESTS,
        "gemini",
        "rate limited, retry in 1.5s",
    );

    assert!(matches!(
        err,
        LarpshellError::RateLimitExceeded {
            retry_after: Some(2)
        }
    ));
}

#[test]
fn display_examples() {
    let err = LarpshellError::ConnectionFailed {
        provider: "ollama".into(),
        message: "cannot connect".into(),
    };
    assert_eq!(
        err.to_string(),
        "failed to connect to ollama: cannot connect"
    );

    let err = LarpshellError::RateLimitExceeded {
        retry_after: Some(10),
    };
    assert_eq!(
        err.to_string(),
        "rate limit exceeded; retry after 10 seconds"
    );

    let err = LarpshellError::RateLimitExceeded { retry_after: None };
    assert_eq!(
        err.to_string(),
        "rate limit exceeded; please try again later"
    );

    let err = LarpshellError::AgentMaxIterations(10);
    assert_eq!(
        err.to_string(),
        "agent reached maximum iterations (10) without producing a final response"
    );
}