Add to alerts tests.

This commit is contained in:
Nicholas Marriott
2026-07-13 19:52:27 +01:00
parent 511fe53846
commit 2dc05ae328

View File

@@ -254,6 +254,19 @@ assert_unchanged @log ''
$TMUX set -wut mon:w0 monitor-activity ||
fail "unset monitor-activity w0 failed"
# Creating a non-current window counts as activity when monitor-activity is
# enabled in the window defaults.
$TMUX set -wg monitor-activity on || fail "set global monitor-activity failed"
$TMUX set -g @log '' || fail "reset @log failed"
$TMUX neww -d -t mon: -n newact cat || fail "new-window newact failed"
wait_for @log '|alert-activity:mon:newact'
wait_for_fmt mon:newact '#{window_activity_flag}' 1
flags_have mon:newact '#'
$TMUX set -wug monitor-activity ||
fail "unset global monitor-activity failed"
$TMUX selectw -t mon:newact || fail "select-window newact failed"
$TMUX selectw -t mon:w0 || fail "select-window w0 failed"
# monitor-silence: a quiet window fires alert-silence after the interval
# and sets the silence flag, shown as ~ in window_flags. The hook fires
# only once while the flag remains set even though the timer keeps
@@ -273,6 +286,22 @@ wait_for_fmt mon:silw '#{window_silence_flag}' 0
flags_lack mon:silw '~'
$TMUX selectw -t mon:w0 || fail "select-window w0 failed"
# Activity resets the silence timer: output before the original deadline
# prevents an alert until a full quiet interval has passed afterwards.
$TMUX neww -d -t mon: -n silreset cat || fail "new-window silreset failed"
$TMUX set -g @log '' || fail "reset @log failed"
$TMUX set -wt mon:silreset monitor-silence 2 ||
fail "set monitor-silence silreset failed"
sleep 1
activity mon:silreset
assert_unchanged @log ''
wait_for @log '|alert-silence:mon:silreset'
wait_for_fmt mon:silreset '#{window_silence_flag}' 1
$TMUX set -wt mon:silreset monitor-silence 0 ||
fail "reset monitor-silence silreset failed"
$TMUX selectw -t mon:silreset || fail "select-window silreset failed"
$TMUX selectw -t mon:w0 || fail "select-window w0 failed"
# A window linked into two sessions: the hook fires once per winlink and
# the flag is set in both sessions. Selecting the window in one session
# clears the flags on every winlink.