ai-dispatch 8.68.0

Multi-AI CLI team orchestrator
use super::*;

#[test]
fn rejects_trivial_length() {
    assert!(!is_surprising("too short", "discovery"));
}

#[test]
fn rejects_common_boilerplate() {
    assert!(!is_surprising(
        "The code uses the anyhow crate for error handling",
        "convention"
    ));
    assert!(!is_surprising(
        "this project uses tailwind for styling",
        "convention"
    ));
}

#[test]
fn rejects_discovery_signatures() {
    assert!(!is_surprising("pub fn build_prompt_bundle()", "discovery"));
    assert!(!is_surprising("struct PromptBundle", "discovery"));
    assert!(!is_surprising("crate::types::Memory", "discovery"));
}

#[test]
fn accepts_real_discoveries() {
    assert!(is_surprising(
        "The auth module uses bcrypt, but it should be using argon2 to avoid timing attacks",
        "discovery"
    ));
    assert!(is_surprising(
        "Found a bug in the retry logic where it doesn't wait long enough between attempts",
        "lesson"
    ));
    assert!(is_surprising(
        "The external API endpoint has a rate limit of 100 requests per minute",
        "fact"
    ));
}

#[test]
fn accepts_non_obvious_behavior() {
    assert!(is_surprising(
        "Non-obvious behavior in the cache where it invalidates on any write to the database",
        "discovery"
    ));
}

#[test]
fn accepts_performance_notes() {
    assert!(is_surprising(
        "Performance bottleneck in the JSON parser when handling large arrays",
        "discovery"
    ));
}