tools: harden session helper and tests

This commit is contained in:
BruceChen 2026-04-12 19:00:42 +08:00
parent 3b65085a66
commit fdb6e5db4c
2 changed files with 23 additions and 1 deletions

View file

@ -26,7 +26,16 @@ _mcc_servers_root() {
}
_mcc_current_worktree_name() {
git -C "$MCC_REPO_ROOT" rev-parse --show-toplevel 2>/dev/null | xargs basename
local worktree_root
if ! worktree_root="$(git -C "$MCC_REPO_ROOT" rev-parse --show-toplevel 2>/dev/null)"; then
return 0
fi
if [[ -z "$worktree_root" ]]; then
return 0
fi
basename "$worktree_root"
}
_mcc_resolve_session() {

View file

@ -43,6 +43,19 @@ assert_eq "${TMPDIR:-/tmp}/mcc-debug/demo-branch" "$(_mcc_session_root "demo-bra
assert_eq "mcc-demo-branch" "$(_mcc_tmux_session_name "demo-branch")" "tmux session name"
MCC_BUILD_MODE=tmpfs
original_repo_root="$MCC_REPO_ROOT"
fallback_root="$REPO_ROOT/nonexistent-worktree"
MCC_REPO_ROOT="$fallback_root"
fallback_session="$(_mcc_resolve_session)"
assert_eq "$(basename "$fallback_root")" "$fallback_session" "session fallback without git"
fallback_build_root="$(_mcc_build_root)"
assert_regex "^(/dev/shm|/tmp)/mcc-build/$(basename "$fallback_root")\$" "$fallback_build_root" "tmpfs build root fallback"
MCC_REPO_ROOT="$original_repo_root"
build_root="$(_mcc_build_root)"
assert_regex '^(/dev/shm|/tmp)/mcc-build/.+$' "$build_root" "tmpfs build root"