From 9247a2337f0f65b97299d6c2af1b5c92b1ca09dc Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Fri, 29 May 2026 17:48:39 +0200 Subject: [PATCH] feat(automations): add EVENT to TriggerType enum --- .../app/automations/persistence/enums/trigger_type.py | 7 ++++--- .../tests/unit/automations/test_persistence_enums.py | 8 ++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/surfsense_backend/app/automations/persistence/enums/trigger_type.py b/surfsense_backend/app/automations/persistence/enums/trigger_type.py index a583b1bd6..25bd784b1 100644 --- a/surfsense_backend/app/automations/persistence/enums/trigger_type.py +++ b/surfsense_backend/app/automations/persistence/enums/trigger_type.py @@ -1,8 +1,8 @@ """Trigger-kind discriminator. -v1 only registers ``schedule``. ``manual`` is reserved in the enum (mirrors the -postgres enum) but is intentionally unregistered pending a redesign of the -"Run now" UX. +``schedule`` and ``event`` are registered. ``manual`` is reserved in the enum +(mirrors the postgres enum) but is intentionally unregistered pending a redesign +of the "Run now" UX. """ from __future__ import annotations @@ -12,4 +12,5 @@ from enum import StrEnum class TriggerType(StrEnum): SCHEDULE = "schedule" + EVENT = "event" MANUAL = "manual" diff --git a/surfsense_backend/tests/unit/automations/test_persistence_enums.py b/surfsense_backend/tests/unit/automations/test_persistence_enums.py index 59703dfc6..23da613ed 100644 --- a/surfsense_backend/tests/unit/automations/test_persistence_enums.py +++ b/surfsense_backend/tests/unit/automations/test_persistence_enums.py @@ -39,7 +39,7 @@ def test_run_status_string_values_are_stable() -> None: def test_trigger_type_keeps_manual_member_even_though_unregistered() -> None: - """``MANUAL`` is reserved (mirrors the Postgres enum) but the trigger - store does not register it in v1. The enum must keep both members so - existing DB rows and the schema migration plan stay valid.""" - assert {member.value for member in TriggerType} == {"schedule", "manual"} + """``schedule`` and ``event`` are registered; ``MANUAL`` is reserved + (mirrors the Postgres enum) but the trigger store does not register it. + The enum must keep every member so DB rows and migrations stay valid.""" + assert {member.value for member in TriggerType} == {"schedule", "event", "manual"}