merge-ready 0.2.1

Show pull request merge blockers as concise prompt tokens
mod args;
pub mod cached;
pub mod direct;

pub use args::{AFTER_HELP, PromptArgs};

use crate::contexts::prompt::application::prompt::ExecutionMode;

pub fn resolve_mode(args: &PromptArgs) -> ExecutionMode {
    if args.no_cache {
        return ExecutionMode::Direct;
    }
    ExecutionMode::Cached
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn no_cache_returns_direct() {
        let args = PromptArgs { no_cache: true };
        let mode = resolve_mode(&args);
        assert!(matches!(mode, ExecutionMode::Direct));
    }

    #[test]
    fn default_returns_cached() {
        let args = PromptArgs { no_cache: false };
        let mode = resolve_mode(&args);
        assert!(matches!(mode, ExecutionMode::Cached));
    }
}