use anyhow::{Context, Result};
use sessions_cli::update_config;
use std::process;
fn main() {
if let Err(e) = run() {
eprintln!("Error: {:#}", e);
process::exit(1);
}
}
fn run() -> Result<()> {
let _config = update_config(|config| {
config.decrement();
})
.context("Failed to update session configuration")?;
Ok(())
}
#[cfg(test)]
mod tests {
use super::*;
use std::process::{Command, Stdio};
#[test]
fn test_run_function() {
let result = run();
assert!(result.is_ok() || result.is_err());
}
#[test]
fn test_binary_execution() {
let output = Command::new("cargo")
.args(&["run", "--bin", "session-stop"])
.stdout(Stdio::piped())
.stderr(Stdio::piped())
.output();
assert!(output.is_ok());
}
#[test]
fn test_silent_operation() {
let output = Command::new("cargo")
.args(&["run", "--bin", "session-stop"])
.stdout(Stdio::piped())
.stderr(Stdio::piped())
.output();
if let Ok(output) = output {
if output.status.success() {
assert!(
output.stdout.is_empty(),
"session-stop should produce no stdout output"
);
}
}
}
}