#!/bin/bash source "$(dirname "$0")/base-test.sh" test_tmp=$(mktemp -d) trap 'rm -rf "$test_tmp"' EXIT mock_bin="$test_tmp/bin" call_log="$test_tmp/calls.log" mkdir -p "$mock_bin" cat >"$mock_bin/systemd-run" <<'SH' #!/bin/bash printf 'systemd-run %s\n' "$*" >>"$CALL_LOG" [[ ${FAIL_SYSTEMD_RUN:-false} == "true" ]] && exit 1 exit 0 SH for command in omarchy-state omarchy-hyprland-window-close-all sleep; do cat >"$mock_bin/$command" <<'SH' #!/bin/bash printf '%s %s\n' "$(basename "$0")" "$*" >>"$CALL_LOG" SH done chmod +x "$mock_bin"/* run_power_command() { local action="$1" : >"$call_log" PATH="$mock_bin:$PATH" CALL_LOG="$call_log" "$ROOT/bin/omarchy-system-$action" } assert_power_calls() { local action="$1" local systemctl_action="$2" local expected_log="$test_tmp/$action-expected.log" cat >"$expected_log" <"$call_log" if PATH="$mock_bin:$PATH" CALL_LOG="$call_log" FAIL_SYSTEMD_RUN=true "$ROOT/bin/omarchy-system-$action"; then fail "$action aborts when scheduling fails" fi if (( $(wc -l <"$call_log") != 1 )); then fail "$action leaves state and windows alone when scheduling fails" fi pass "$action leaves state and windows alone when scheduling fails" done