Deduplicate scan ended telemetry

This commit is contained in:
bearsyankees
2026-07-13 14:08:36 -04:00
parent 02b2d8cd5e
commit 9253fb7343
4 changed files with 50 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
"""Tests for scan telemetry emission."""
from __future__ import annotations
from typing import Any
import pytest
from strix.report.state import ReportState
from strix.telemetry import posthog, scarf
@pytest.mark.parametrize(
("backend", "sent_attribute"),
[
(posthog, "posthog_scan_ended_sent"),
(scarf, "scarf_scan_ended_sent"),
],
)
def test_scan_ended_is_sent_once_per_backend(
monkeypatch: pytest.MonkeyPatch,
backend: Any,
sent_attribute: str,
) -> None:
state = ReportState(run_name="test-run")
sent_events: list[tuple[str, dict[str, Any]]] = []
monkeypatch.setattr(
backend,
"_send",
lambda event, properties: sent_events.append((event, properties)),
)
backend.end(state, exit_reason="finished_by_tool")
backend.end(state, exit_reason="user_exit")
assert getattr(state, sent_attribute) is True
assert len(sent_events) == 1
assert sent_events[0][0] == "scan_ended"
assert sent_events[0][1]["exit_reason"] == "finished_by_tool"