"""ORCH-042: Settings.tracker_mode config field. AC-1: tracker_mode defaults to "edit" and is read from env ORCH_TRACKER_MODE. Settings is a Pydantic BaseSettings reading env at instantiation, so each case builds a FRESH Settings() (the process-wide singleton is not mutated). """ from src.config import Settings def test_tracker_mode_defaults_to_edit(monkeypatch): # No env var -> default "edit" (TC-01 / AC-1). monkeypatch.delenv("ORCH_TRACKER_MODE", raising=False) assert Settings().tracker_mode == "edit" def test_tracker_mode_reads_env_bump(monkeypatch): # ORCH_TRACKER_MODE=bump -> "bump" (TC-01 / AC-1). monkeypatch.setenv("ORCH_TRACKER_MODE", "bump") assert Settings().tracker_mode == "bump" def test_tracker_mode_reads_env_arbitrary(monkeypatch): # The field is read verbatim from env; mode RESOLUTION (anything != "bump" # -> edit) happens in notifications, not here (AC-1/AC-2 split). monkeypatch.setenv("ORCH_TRACKER_MODE", "garbage") assert Settings().tracker_mode == "garbage"