nekolas note
1.7 KB Raw
#!/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" ]
}