zag-agent 0.14.0

Core library for zag — a unified interface for AI coding agents
Documentation
use super::*;

#[test]
fn review_template_has_placeholders() {
    assert!(REVIEW_TEMPLATE.contains("{DIFF}"));
    assert!(REVIEW_TEMPLATE.contains("{TITLE_SECTION}"));
    assert!(REVIEW_TEMPLATE.contains("{PROMPT}"));
}

#[test]
fn build_review_prompt_injects_all_sections() {
    let rendered = build_review_prompt(
        "diff content here",
        Some("Security audit"),
        Some("focus on auth"),
    );
    assert!(rendered.contains("diff content here"));
    assert!(rendered.contains("## Review Title"));
    assert!(rendered.contains("Security audit"));
    assert!(rendered.contains("focus on auth"));
    assert!(!rendered.contains("{DIFF}"));
    assert!(!rendered.contains("{TITLE_SECTION}"));
    assert!(!rendered.contains("{PROMPT}"));
}

#[test]
fn build_review_prompt_without_optional_fields() {
    let rendered = build_review_prompt("d", None, None);
    assert!(rendered.contains("d"));
    assert!(!rendered.contains("## Review Title"));
    assert!(!rendered.contains("{DIFF}"));
}

#[tokio::test]
async fn run_review_requires_a_target() {
    let result = run_review(ReviewParams {
        provider: "claude".to_string(),
        uncommitted: false,
        base: None,
        commit: None,
        ..ReviewParams::default()
    })
    .await;
    assert!(result.is_err());
    assert!(result.unwrap_err().to_string().contains("Review requires"));
}