51 lines
1.7 KiB
Rust
51 lines
1.7 KiB
Rust
//! Cleanup-worktrees bot command — stub module required by the commands registry.
|
|
//!
|
|
//! The real async implementation lives in
|
|
//! `chat::transport::matrix::cleanup_worktrees`. This file exists so that
|
|
//! `commands/mod.rs` can declare the module, keeping the registry consistent
|
|
//! with the pattern used by other async commands (rmtree, start, rebuild, …).
|
|
//!
|
|
//! The fallback handler `handle_cleanup_worktrees_fallback` in `mod.rs` always
|
|
//! returns `None`; the matrix transport intercepts the command before
|
|
//! `try_handle_command` is reached.
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use crate::chat::commands::tests::{commands, try_cmd_addressed};
|
|
|
|
#[test]
|
|
fn cleanup_worktrees_is_registered() {
|
|
assert!(
|
|
commands().iter().any(|c| c.name == "cleanup_worktrees"),
|
|
"cleanup_worktrees must be in the command registry"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn cleanup_worktrees_has_description() {
|
|
let cmd = commands()
|
|
.iter()
|
|
.find(|c| c.name == "cleanup_worktrees")
|
|
.expect("cleanup_worktrees must be registered");
|
|
assert!(
|
|
!cmd.description.is_empty(),
|
|
"cleanup_worktrees must have a description"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn cleanup_worktrees_fallback_returns_none() {
|
|
// The sync fallback returns None — the async handler in the Matrix
|
|
// transport handles the real work.
|
|
let result = try_cmd_addressed(
|
|
"Timmy",
|
|
"@timmy:homeserver.local",
|
|
"@timmy cleanup_worktrees",
|
|
);
|
|
assert!(
|
|
result.is_none(),
|
|
"cleanup_worktrees fallback must return None (handled async): {result:?}"
|
|
);
|
|
}
|
|
}
|