diff --git a/src/sentry/feedback/usecases/ingest/create_feedback.py b/src/sentry/feedback/usecases/ingest/create_feedback.py index a3d48da6d8a9b8..8d082578910283 100644 --- a/src/sentry/feedback/usecases/ingest/create_feedback.py +++ b/src/sentry/feedback/usecases/ingest/create_feedback.py @@ -380,6 +380,8 @@ def create_feedback_issue( if event_fixed.get("release"): event_fixed["tags"]["release"] = event_fixed["release"] + event_fixed["tags"]["has_spam_filter"] = "true" if is_message_spam is not None else "false" + # make sure event data is valid for issue platform validate_issue_platform_event_schema(event_fixed) diff --git a/tests/sentry/feedback/usecases/ingest/test_create_feedback.py b/tests/sentry/feedback/usecases/ingest/test_create_feedback.py index 3693503ef2fba3..956faf3ae0907f 100644 --- a/tests/sentry/feedback/usecases/ingest/test_create_feedback.py +++ b/tests/sentry/feedback/usecases/ingest/test_create_feedback.py @@ -796,7 +796,7 @@ def test_create_feedback_tags_no_associated_event_id( @django_db_all -def test_create_feedback_tags_skips_if_empty( +def test_create_feedback_tags_skips_email_if_empty( default_project, mock_produce_occurrence_to_kafka ) -> None: event = mock_feedback_event(default_project.id) @@ -810,6 +810,26 @@ def test_create_feedback_tags_skips_if_empty( assert "user.email" not in tags +@pytest.mark.parametrize("spam_enabled", (True, False)) +@django_db_all +def test_create_feedback_tags_has_spam_filter( + default_project, mock_produce_occurrence_to_kafka, spam_enabled +) -> None: + with ( + patch( + "sentry.feedback.usecases.ingest.create_feedback.spam_detection_enabled", + return_value=spam_enabled, + ), + patch("sentry.feedback.usecases.ingest.create_feedback.is_spam", return_value=True), + ): + event = mock_feedback_event(default_project.id) + create_feedback_issue(event, default_project, FeedbackCreationSource.NEW_FEEDBACK_ENVELOPE) + + assert mock_produce_occurrence_to_kafka.call_count > 0 # is 2 when spam enabled + tags = mock_produce_occurrence_to_kafka.call_args_list[0].kwargs["event_data"]["tags"] + assert tags["has_spam_filter"] == "true" if spam_enabled else "false" + + @django_db_all @pytest.mark.parametrize("spam_enabled", (True, False)) def test_create_feedback_filters_large_message(