mirror of
https://github.com/tw93/Mole.git
synced 2026-03-22 16:45:07 +00:00
fix: harden orphan cleanup and lsregister fallback
This commit is contained in:
@@ -229,6 +229,8 @@ pgrep() {
|
||||
}
|
||||
|
||||
run_with_timeout() { shift; "$@"; }
|
||||
get_file_mtime() { echo 0; }
|
||||
get_path_size_kb() { echo 4; }
|
||||
|
||||
safe_clean() {
|
||||
echo "$2"
|
||||
@@ -254,6 +256,51 @@ EOF
|
||||
[[ "$output" == *"PASS: Claude VM removed"* ]]
|
||||
}
|
||||
|
||||
@test "clean_orphaned_app_data keeps recent Claude VM bundle when Claude lookup misses" {
|
||||
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" bash --noprofile --norc <<'EOF'
|
||||
set -euo pipefail
|
||||
source "$PROJECT_ROOT/lib/core/common.sh"
|
||||
source "$PROJECT_ROOT/lib/clean/apps.sh"
|
||||
|
||||
scan_installed_apps() {
|
||||
: > "$1"
|
||||
}
|
||||
|
||||
mdfind() {
|
||||
return 0
|
||||
}
|
||||
|
||||
pgrep() {
|
||||
return 1
|
||||
}
|
||||
|
||||
run_with_timeout() { shift; "$@"; }
|
||||
get_file_mtime() { date +%s; }
|
||||
|
||||
safe_clean() {
|
||||
echo "UNEXPECTED:$2"
|
||||
return 1
|
||||
}
|
||||
|
||||
start_section_spinner() { :; }
|
||||
stop_section_spinner() { :; }
|
||||
|
||||
mkdir -p "$HOME/Library/Caches"
|
||||
mkdir -p "$HOME/Library/Application Support/Claude/vm_bundles/claudevm.bundle"
|
||||
echo "vm data" > "$HOME/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img"
|
||||
|
||||
clean_orphaned_app_data
|
||||
|
||||
if [[ -d "$HOME/Library/Application Support/Claude/vm_bundles/claudevm.bundle" ]]; then
|
||||
echo "PASS: Recent Claude VM kept"
|
||||
fi
|
||||
EOF
|
||||
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" != *"UNEXPECTED:Orphaned Claude workspace VM"* ]]
|
||||
[[ "$output" == *"PASS: Recent Claude VM kept"* ]]
|
||||
}
|
||||
|
||||
@test "clean_orphaned_app_data keeps Claude VM bundle when Claude is installed" {
|
||||
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" bash --noprofile --norc <<'EOF'
|
||||
set -euo pipefail
|
||||
|
||||
@@ -181,3 +181,21 @@ EOF
|
||||
[ "$status" -eq 1 ]
|
||||
[[ "$output" == *"Unknown action"* ]]
|
||||
}
|
||||
|
||||
@test "opt_launch_services_rebuild handles missing lsregister without exiting" {
|
||||
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" bash --noprofile --norc <<'EOF'
|
||||
set -euo pipefail
|
||||
source "$PROJECT_ROOT/lib/core/common.sh"
|
||||
source "$PROJECT_ROOT/lib/optimize/tasks.sh"
|
||||
get_lsregister_path() {
|
||||
echo ""
|
||||
return 0
|
||||
}
|
||||
opt_launch_services_rebuild
|
||||
echo "survived"
|
||||
EOF
|
||||
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"lsregister not found"* ]]
|
||||
[[ "$output" == *"survived"* ]]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user