From 03049e77a77dc54b15e669c391a0fe97acba1fe2 Mon Sep 17 00:00:00 2001 From: Colton Allen Date: Tue, 9 Jul 2024 16:59:59 -0500 Subject: [PATCH] Invert conditional check --- relay-server/src/services/processor/replay.rs | 4 +- tests/integration/test_replay_videos.py | 63 ++++++++++++++++--- 2 files changed, 57 insertions(+), 10 deletions(-) diff --git a/relay-server/src/services/processor/replay.rs b/relay-server/src/services/processor/replay.rs index f62e8f4f58..28eebb3d80 100644 --- a/relay-server/src/services/processor/replay.rs +++ b/relay-server/src/services/processor/replay.rs @@ -29,7 +29,7 @@ pub fn process( let project_state = &state.project_state; let replays_enabled = project_state.has_feature(Feature::SessionReplay); let scrubbing_enabled = project_state.has_feature(Feature::SessionReplayRecordingScrubbing); - let replay_video_enabled = project_state.has_feature(Feature::SessionReplayVideoDenylist); + let replay_video_disabled = project_state.has_feature(Feature::SessionReplayVideoDenylist); let meta = state.envelope().meta().clone(); let client_addr = meta.client_addr(); @@ -63,7 +63,7 @@ pub fn process( // If the replay video feature is not enabled check the envelope items for a // replay video event. - if !replay_video_enabled && count_replay_video_events(state) > 0 { + if replay_video_disabled && count_replay_video_events(state) > 0 { state.managed_envelope.drop_items_silently(); return Ok(()); } diff --git a/tests/integration/test_replay_videos.py b/tests/integration/test_replay_videos.py index a7bc8632f3..42a8b5efda 100644 --- a/tests/integration/test_replay_videos.py +++ b/tests/integration/test_replay_videos.py @@ -19,14 +19,7 @@ def test_replay_recording_with_video( relay = relay_with_processing() mini_sentry.add_basic_project_config( project_id, - extra={ - "config": { - "features": [ - "organizations:session-replay", - "organizations:session-replay-video-denylist", - ] - } - }, + extra={"config": {"features": ["organizations:session-replay"]}}, ) replay = generate_replay_sdk_event(replay_id) replay_events_consumer = replay_events_consumer(timeout=10) @@ -84,3 +77,57 @@ def test_replay_recording_with_video( replay_recordings_consumer.assert_empty() outcomes_consumer.assert_empty() replay_events_consumer.assert_empty() + + +def test_replay_recording_with_video_denied( + mini_sentry, + relay_with_processing, + replay_recordings_consumer, + outcomes_consumer, + replay_events_consumer, +): + project_id = 42 + replay_id = "515539018c9b4260a6f999572f1661ee" + relay = relay_with_processing() + mini_sentry.add_basic_project_config( + project_id, + extra={ + "config": { + "features": [ + "organizations:session-replay", + "organizations:session-replay-video-denylist", + ] + } + }, + ) + replay = generate_replay_sdk_event(replay_id) + replay_events_consumer = replay_events_consumer(timeout=10) + replay_recordings_consumer = replay_recordings_consumer() + outcomes_consumer = outcomes_consumer() + + _recording_payload = recording_payload(b"[]") + payload = msgpack.packb( + { + "replay_event": json.dumps(replay).encode(), + "replay_recording": _recording_payload, + "replay_video": b"hello, world!", + } + ) + + envelope = Envelope( + headers=[ + [ + "event_id", + replay_id, + ], + ["attachment_type", "replay_video"], + ] + ) + envelope.add_item(Item(payload=PayloadRef(bytes=payload), type="replay_video")) + + relay.send_envelope(project_id, envelope) + + # Assert all conumers are empty. + replay_recordings_consumer.assert_empty() + outcomes_consumer.assert_empty() + replay_events_consumer.assert_empty()