agent-tui-usecases 1.1.0

Use cases and ports for agent-tui terminal automation
Documentation
use super::*;

use crate::domain::SessionId;
use crate::test_support::MockError;
use crate::test_support::MockSessionRepository;
#[test]
fn test_terminal_write_usecase_returns_error_when_no_active_session() {
    let repo = Arc::new(MockSessionRepository::new());
    let usecase = TerminalWriteUseCaseImpl::new(repo);

    let input = TerminalWriteInput {
        session_id: None,
        data: b"hello".to_vec(),
    };

    let result = usecase.execute(input);
    assert!(matches!(result, Err(SessionError::NoActiveSession)));
}

#[test]
fn test_terminal_write_usecase_returns_error_when_session_not_found() {
    let repo = Arc::new(
        MockSessionRepository::builder()
            .with_resolve_error(MockError::NotFound("missing".to_string()))
            .build(),
    );
    let usecase = TerminalWriteUseCaseImpl::new(repo);

    let input = TerminalWriteInput {
        session_id: Some(SessionId::try_new("missing").expect("valid session id")),
        data: b"test data".to_vec(),
    };

    let result = usecase.execute(input);
    assert!(matches!(result, Err(SessionError::NotFound(_))));
}