#!/usr/bin/env bats
# 統合: tmux 上で @cc_state/@cc_spin が window-status-format に展開されることを検証
# (T009, FR-002/003)。実行: bats cc-tmux/tests/integration/test_display.bats
#
# 実 tmux サーバを使う(tmux new-session -d)。tmux 3.2+ が必要。
load '../test_helper'
# contracts/tmux-display.md と同じフォーマット(busy は brightred=明るい赤の文字)。
FMT='#{?#{==:#{@cc_spin},},,#{@cc_spin} }#{?#{==:#{@cc_state},busy},#[fg=brightred],}#I:#W#[default]'
setup() {
command -v tmux >/dev/null 2>&1 || skip "tmux 不在"
SESS="ccdisp-$$-$BATS_TEST_NUMBER"
tmux new-session -d -s "$SESS" -n demo
WIN=$(tmux display-message -p -t "$SESS" '#{window_id}')
}
teardown() {
tmux kill-session -t "$SESS" 2>/dev/null || true
}
@test "idle(オプション無し)では色もスピナーも付かない" {
run tmux display-message -p -t "$WIN" "$FMT"
[ "$status" -eq 0 ]
[ "$output" = "1:demo" ]
}
@test "busy では fg=brightred(明るい赤の文字)が付く" {
tmux set-option -w -t "$WIN" @cc_state busy
run tmux display-message -p -t "$WIN" "$FMT"
[[ "$output" == *"fg=brightred"* ]]
}
@test "@cc_spin が非空ならタブ名の左にスピナーが付く" {
tmux set-option -w -t "$WIN" @cc_spin "⠹"
run tmux display-message -p -t "$WIN" "$FMT"
[[ "$output" == "⠹ "* ]]
}
@test "idle へ戻すと色・スピナーが消える" {
tmux set-option -w -t "$WIN" @cc_state busy
tmux set-option -w -t "$WIN" @cc_spin "⠹"
tmux set-option -w -t "$WIN" @cc_state idle
tmux set-option -w -t "$WIN" -u @cc_spin
run tmux display-message -p -t "$WIN" "$FMT"
[ "$output" = "1:demo" ]
}