Skip to content

teardown_sentry_test clears global event processors #2466

@gi

Description

@gi

Issue Description

The test teardown method teardown_sentry_test clears the global event processors Sentry::Scope.global_event_processors. Any application global event processors are wiped after one test.

Reasoning:

  1. The global event processors are by nature global and any setup by the application are cleared. This makes the test setup and teardown process uneven: what is setup before the test is not retained after the teardown of the test.
  2. This method is suggested to be run after every example/test, so this teardown behavior would necessitate running the application setup before every test in order to setup any global event processors.

This behavior was introduced in #2342.

Reproduction Steps

require "sentry/test_helper"

RSpec.configure do |config|
  config.include Sentry::TestHelper
end

RSpec.describe "#teardown_sentry_test" do
  before do
    Sentry.add_global_event_processor { |event| event }
  end

  it do
    expect { teardown_sentry_test }.not_to change(Sentry::Scope, :global_event_processors)
  end
end

Expected Behavior

The list of global events processors Sentry::Scope.global_event_processors is retained.

Actual Behavior

The list of global events processors Sentry::Scope.global_event_processors is cleared.

Ruby Version

3.3.5

SDK Version

5.21.0

Integration and Its Version

Rails 7.1.4

Sentry Config

No response

Metadata

Metadata

Assignees

Projects

  • Status

    Waiting for: Community

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions