from syncvito.coordinator import derive_overall_status from syncvito.models import TaskRuntimeState def test_no_active_task_is_red() -> None: assert derive_overall_status([], globally_paused=False) == ("paused", "Inaktiv") assert derive_overall_status([TaskRuntimeState.PAUSED], globally_paused=False) == ("paused", "Inaktiv") def test_healthy_active_tasks_are_green() -> None: states = [TaskRuntimeState.ACTIVE, TaskRuntimeState.PAUSED] assert derive_overall_status(states, globally_paused=False) == ("active", "Bereit") def test_waiting_lock_has_priority_over_active_task() -> None: states = [TaskRuntimeState.ACTIVE, TaskRuntimeState.WAITING_FOR_RELEASE] assert derive_overall_status(states, globally_paused=False) == ("error", "Wartet auf Dateifreigabe") def test_error_has_highest_priority() -> None: states = [TaskRuntimeState.WAITING_FOR_RELEASE, TaskRuntimeState.ERROR] assert derive_overall_status(states, globally_paused=False) == ("error", "Fehler") def test_global_pause_is_red_without_errors() -> None: assert derive_overall_status([TaskRuntimeState.ACTIVE], globally_paused=True) == ("paused", "Pausiert")