Files
Kigi-CLI/crates/codegen/kigi-shell/tests/test_active_sessions_smoke.rs
T
ZacharyZhang-NY a02b555e66 docs(comments): rewrite comments across all crates to the guidelines
Sweep every first-party crate source (1956 .rs files) to the project comment
guidelines: delete redundant restatements, decorative banners, change
narration, and end-of-line comments; keep and tighten the crucial ones
(invariants, bug rationale, SAFETY blocks, ported-source attribution).

No functional code changed. Every edit is proven comment-only against the
prior tree by a comment-stripping lexer (string/char/raw-string aware) plus a
separate doctest-fence check. Where removing a comment made rustfmt or clippy
want to re-lay-out adjacent code, the minimal triggering comment is restored so
code tokens stay byte-identical.

Gates green: cargo fmt --all --check (0 diffs), cargo check and cargo clippy
--workspace --all-targets (0 warnings).

Adds scripts/check_codegen_comment_guidelines.py — the enforcement gate for
these guidelines (flags banners, end-of-line comments, change narration, and
commented-out code).
2026-07-23 16:55:39 -04:00

40 lines
1.2 KiB
Rust

//! End-to-end smoke test exercising the full active_sessions lifecycle.
use chrono::Utc;
use kigi_shell::active_sessions::*;
use tempfile::TempDir;
fn session(id: &str, pid: u32) -> ActiveSession {
ActiveSession {
session_id: agent_client_protocol::SessionId::new(id),
pid,
cwd: "/tmp/test".into(),
opened_at: Utc::now(),
}
}
#[test]
fn full_lifecycle() {
let dir = TempDir::new().unwrap();
let r = dir.path();
let pid = std::process::id();
let sid = |s: &str| agent_client_protocol::SessionId::new(s);
register_in(r, session("s1", pid)).unwrap();
assert_eq!(list_in(r).unwrap().len(), 1);
unregister_in(r, &sid("s1")).unwrap();
assert!(list_in(r).unwrap().is_empty());
// 2_000_000_000 is not a live PID on this machine, simulating a crash.
register_in(r, session("crashed", 2_000_000_000)).unwrap();
register_in(r, session("alive", pid)).unwrap();
// collect_crashed_in also reaps the dead entry from the store, so
// list_in below drops from 2 to 1.
let crashed = collect_crashed_in(r).unwrap();
assert_eq!(crashed.len(), 1);
assert_eq!(&*crashed[0].session_id.0, "crashed");
assert_eq!(list_in(r).unwrap().len(), 1);
}