Codex Handbook
tui/src/app/tests/session_summary.rs 92 lines
use super::*;use pretty_assertions::assert_eq;#[tokio::test]async fn session_summary_skips_when_no_usage_or_resume_hint() {    assert!(        session_summary(            TokenUsage::default(),            /*thread_id*/ None,            /*thread_name*/ None,            /*rollout_path*/ None,        )        .is_none()    );}#[tokio::test]async fn session_summary_skips_resume_hint_until_rollout_exists() {    let usage = TokenUsage::default();    let conversation = ThreadId::from_string("123e4567-e89b-12d3-a456-426614174000").unwrap();    let temp_dir = tempdir().expect("temp dir");    let rollout_path = temp_dir.path().join("rollout.jsonl");    assert!(        session_summary(            usage,            Some(conversation),            /*thread_name*/ None,            Some(&rollout_path),        )        .is_none()    );}#[tokio::test]async fn session_summary_includes_resume_hint_for_persisted_rollout() {    let usage = TokenUsage {        input_tokens: 10,        output_tokens: 2,        total_tokens: 12,        ..Default::default()    };    let conversation = ThreadId::from_string("123e4567-e89b-12d3-a456-426614174000").unwrap();    let temp_dir = tempdir().expect("temp dir");    let rollout_path = temp_dir.path().join("rollout.jsonl");    std::fs::write(&rollout_path, "{}\n").expect("write rollout");    let summary = session_summary(        usage,        Some(conversation),        /*thread_name*/ None,        Some(&rollout_path),    )    .expect("summary");    assert_eq!(        summary.usage_line,        Some("Token usage: total=12 input=10 output=2".to_string())    );    assert_eq!(        summary.resume_hint,        Some("codex resume 123e4567-e89b-12d3-a456-426614174000".to_string())    );}#[tokio::test]async fn session_summary_names_picker_item_when_thread_has_name() {    let usage = TokenUsage {        input_tokens: 10,        output_tokens: 2,        total_tokens: 12,        ..Default::default()    };    let conversation = ThreadId::from_string("123e4567-e89b-12d3-a456-426614174000").unwrap();    let temp_dir = tempdir().expect("temp dir");    let rollout_path = temp_dir.path().join("rollout.jsonl");    std::fs::write(&rollout_path, "{}\n").expect("write rollout");    let summary = session_summary(        usage,        Some(conversation),        Some("my-session".to_string()),        Some(&rollout_path),    )    .expect("summary");    assert_eq!(        summary.resume_hint,        Some(            "codex resume, then select my-session (123e4567-e89b-12d3-a456-426614174000)"                .to_string()        )    );}