merge: testing → main (reconcile 2-week divergence)
This commit is contained in:
49
tests/webhook/test_enums.py
Normal file
49
tests/webhook/test_enums.py
Normal file
@@ -0,0 +1,49 @@
|
||||
"""Unit tests for decnet.webhook.enums — simple→patterns expansion."""
|
||||
from decnet.webhook.enums import (
|
||||
SIMPLE_EVENT_PATTERNS,
|
||||
expand_simple_events,
|
||||
merge_patterns,
|
||||
)
|
||||
|
||||
|
||||
def test_simple_event_patterns_covers_three_families():
|
||||
assert set(SIMPLE_EVENT_PATTERNS) == {
|
||||
"AttackerDetail",
|
||||
"DeckyStatus",
|
||||
"SystemStatus",
|
||||
}
|
||||
|
||||
|
||||
def test_expand_single_event():
|
||||
assert expand_simple_events(["AttackerDetail"]) == ["attacker.>"]
|
||||
|
||||
|
||||
def test_expand_multiple_events_concatenates():
|
||||
out = expand_simple_events(["AttackerDetail", "DeckyStatus"])
|
||||
assert out == ["attacker.>", "decky.*.state", "decky.*.traffic"]
|
||||
|
||||
|
||||
def test_expand_unknown_event_dropped_silently():
|
||||
# The Literal type on the router rejects unknowns; this guards against
|
||||
# programmer error, not user input.
|
||||
assert expand_simple_events(["NotAThing"]) == []
|
||||
|
||||
|
||||
def test_merge_dedups_overlap():
|
||||
merged = merge_patterns(["AttackerDetail"], ["attacker.>", "custom.>"])
|
||||
assert merged == ["attacker.>", "custom.>"]
|
||||
|
||||
|
||||
def test_merge_preserves_order_simple_first():
|
||||
merged = merge_patterns(["SystemStatus"], ["attacker.>", "decky.*.state"])
|
||||
assert merged == ["system.>", "attacker.>", "decky.*.state"]
|
||||
|
||||
|
||||
def test_merge_empty_lists_returns_empty():
|
||||
assert merge_patterns([], []) == []
|
||||
assert merge_patterns(None, None) == []
|
||||
|
||||
|
||||
def test_merge_drops_empty_strings_and_non_strings():
|
||||
merged = merge_patterns([], ["", "attacker.>", None]) # type: ignore[list-item]
|
||||
assert merged == ["attacker.>"]
|
||||
Reference in New Issue
Block a user