getsentry / getsentry/sentry-ruby

`teardown_sentry_test` clears global event processors

Abierto
#2,466 3 comentarios 0 reacciones 1 asignado Asignado a @st0012 Ver en GitHub
Question Ruby Tests
Lenguaje dominante
Ruby
Estrellas
987
Forks
541
Merge medio
17 h 40 min
PR fusionados (30 d)
19

Descripción

### 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

```ruby
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_

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.