"""TC-13: anti-duplicate disk alert (coordinated with ORCH-063 / disk_watchdog).

ADR-001 D6: disk_watchdog (ORCH-063) is the SOLE owner of the 85% disk alert via
the orchestrator's Telegram. The sidecar carries NO disk alert by default
(``WATCHDOG_DISK_CRIT_ENABLED=false``) -> structurally zero double-alert. The
sidecar's contribution is an OPT-IN independent ceiling at a HIGHER threshold
(a different event, separate channel).
"""
from watchdog.config import Config
from watchdog.signals import host_signals


def _cfg(**kw):
    return Config.from_env(kw)


def test_disk_signal_absent_by_default():
    # Disk full at 90% -> sidecar produces NO disk signal (disk_watchdog owns it).
    cfg = _cfg()
    assert cfg.disk_crit_enabled is False
    sigs = host_signals(cfg, mem_pct=None, disk=("/repos", 90.0))
    assert [s for s in sigs if s.key == "host_disk_crit"] == []


def test_opt_in_ceiling_is_separate_higher_event():
    cfg = _cfg(WATCHDOG_DISK_CRIT_ENABLED="true", WATCHDOG_DISK_CRIT_PCT="97")
    # Below the ceiling (90% < 97%) -> not active even when opted in (no 85% dup).
    below = host_signals(cfg, mem_pct=None, disk=("/repos", 90.0))
    crit_below = [s for s in below if s.key == "host_disk_crit"]
    assert len(crit_below) == 1 and crit_below[0].active is False

    # At/over the high ceiling -> active (a DIFFERENT event from disk_watchdog 85%).
    over = host_signals(cfg, mem_pct=None, disk=("/repos", 98.0))
    crit_over = [s for s in over if s.key == "host_disk_crit"]
    assert len(crit_over) == 1 and crit_over[0].active is True


def test_mem_signal_independent_of_disk():
    cfg = _cfg(WATCHDOG_MEM_PCT="90")
    sigs = host_signals(cfg, mem_pct=95.0, disk=None)
    mem = [s for s in sigs if s.key == "host_mem"]
    assert len(mem) == 1 and mem[0].active is True
