muffintui 0.1.14

A terminal workspace that combines a file tree, editor, shell, and embedded Codex pane
Documentation
use muffintui::{cli::parse_session_mode, codex::SessionMode};

#[test]
fn defaults_to_shell_when_no_flag_is_passed() {
    let mode = parse_session_mode(std::iter::empty::<String>()).unwrap();
    assert_eq!(mode, SessionMode::Shell);
}

#[test]
fn parses_codex_flag() {
    let mode = parse_session_mode(["--codex".to_string()].into_iter()).unwrap();
    assert_eq!(mode, SessionMode::Codex);
}

#[test]
fn parses_claude_flag() {
    let mode = parse_session_mode(["--claude".to_string()].into_iter()).unwrap();
    assert_eq!(mode, SessionMode::Claude);
}

#[test]
fn rejects_multiple_session_flags() {
    let err = parse_session_mode(["--codex".to_string(), "--claude".to_string()].into_iter())
        .unwrap_err();
    assert!(err.to_string().contains("choose only one"));
}

#[test]
fn rejects_unknown_arguments() {
    let err = parse_session_mode(["--wat".to_string()].into_iter()).unwrap_err();
    assert!(err.to_string().contains("unknown argument"));
}