From 6358f7ba3d10e9eff9cf19f261175562a3a507bf Mon Sep 17 00:00:00 2001 From: Peter Solnica Date: Mon, 17 Feb 2025 13:31:12 +0000 Subject: [PATCH] DRY up toggling webmock in specs --- sentry-ruby/spec/contexts/with_request_mock.rb | 6 ++++++ sentry-ruby/spec/sentry/breadcrumb/http_logger_spec.rb | 6 ------ sentry-ruby/spec/sentry/faraday_spec.rb | 8 +------- .../sentry/transport/http_transport_rate_limiting_spec.rb | 6 ------ sentry-ruby/spec/sentry/transport/http_transport_spec.rb | 6 ------ sentry-ruby/spec/sentry_spec.rb | 8 +------- sentry-ruby/spec/spec_helper.rb | 6 ++++++ 7 files changed, 14 insertions(+), 32 deletions(-) diff --git a/sentry-ruby/spec/contexts/with_request_mock.rb b/sentry-ruby/spec/contexts/with_request_mock.rb index d5c2fb3a6..9a326376d 100644 --- a/sentry-ruby/spec/contexts/with_request_mock.rb +++ b/sentry-ruby/spec/contexts/with_request_mock.rb @@ -12,6 +12,12 @@ def setsockopt(*args); end allow(TCPSocket).to receive(:open).and_return(FakeSocket.new) end + around do |example| + WebMock.disable! + example.run + WebMock.enable! + end + def sentry_stub_request(fake_response, &block) allow_any_instance_of(Net::HTTP).to receive(:connect) allow_any_instance_of(Net::HTTP).to receive(:transport_request) do |http_obj, request| diff --git a/sentry-ruby/spec/sentry/breadcrumb/http_logger_spec.rb b/sentry-ruby/spec/sentry/breadcrumb/http_logger_spec.rb index 3bd55966c..a92c4c81a 100644 --- a/sentry-ruby/spec/sentry/breadcrumb/http_logger_spec.rb +++ b/sentry-ruby/spec/sentry/breadcrumb/http_logger_spec.rb @@ -6,12 +6,6 @@ RSpec.describe :http_logger do include_context "with request mock" - around do |example| - WebMock.disable! - example.run - WebMock.enable! - end - let(:string_io) { StringIO.new } let(:logger) do ::Logger.new(string_io) diff --git a/sentry-ruby/spec/sentry/faraday_spec.rb b/sentry-ruby/spec/sentry/faraday_spec.rb index 170926927..d6b98d5a7 100644 --- a/sentry-ruby/spec/sentry/faraday_spec.rb +++ b/sentry-ruby/spec/sentry/faraday_spec.rb @@ -271,13 +271,7 @@ let(:url) { "http://example.com" } - around do |example| - WebMock.disable! - example.run - WebMock.enable! - end - - it "skips instrumentation" do + it "skips instrumentation", webmock: false do transaction = Sentry.start_transaction Sentry.get_current_scope.set_span(transaction) diff --git a/sentry-ruby/spec/sentry/transport/http_transport_rate_limiting_spec.rb b/sentry-ruby/spec/sentry/transport/http_transport_rate_limiting_spec.rb index 386d91e23..aff057345 100644 --- a/sentry-ruby/spec/sentry/transport/http_transport_rate_limiting_spec.rb +++ b/sentry-ruby/spec/sentry/transport/http_transport_rate_limiting_spec.rb @@ -6,12 +6,6 @@ RSpec.describe "rate limiting" do include_context "with request mock" - around do |example| - WebMock.disable! - example.run - WebMock.enable! - end - before do perform_basic_setup do |config| config.logger = Logger.new(string_io) diff --git a/sentry-ruby/spec/sentry/transport/http_transport_spec.rb b/sentry-ruby/spec/sentry/transport/http_transport_spec.rb index f04640c1e..b73c7dd93 100644 --- a/sentry-ruby/spec/sentry/transport/http_transport_spec.rb +++ b/sentry-ruby/spec/sentry/transport/http_transport_spec.rb @@ -6,12 +6,6 @@ RSpec.describe Sentry::HTTPTransport do include_context "with request mock" - around do |example| - WebMock.disable! - example.run - WebMock.enable! - end - let(:configuration) do Sentry::Configuration.new.tap do |config| config.dsn = Sentry::TestHelper::DUMMY_DSN diff --git a/sentry-ruby/spec/sentry_spec.rb b/sentry-ruby/spec/sentry_spec.rb index 847829526..856e37d52 100644 --- a/sentry-ruby/spec/sentry_spec.rb +++ b/sentry-ruby/spec/sentry_spec.rb @@ -183,13 +183,7 @@ context "with spotlight" do before { perform_basic_setup { |c| c.spotlight = true } } - around do |example| - WebMock.disable! - example.run - WebMock.enable! - end - - it "sends the event to spotlight too" do + it "sends the event to spotlight too", webmock: false do sentry_stub_request(build_fake_response("200")) do |request, http_obj| expect(request["Content-Type"]).to eq("application/x-sentry-envelope") expect(request["Content-Encoding"]).to eq("gzip") diff --git a/sentry-ruby/spec/spec_helper.rb b/sentry-ruby/spec/spec_helper.rb index 5cf761da2..4a72657ba 100644 --- a/sentry-ruby/spec/spec_helper.rb +++ b/sentry-ruby/spec/spec_helper.rb @@ -70,6 +70,12 @@ skip("Skipping because one or more guards `#{guards.inspect}` returned false") if skip_examples end + config.around(:each, webmock: false) do |example| + WebMock.disable! + example.run + WebMock.enable! + end + RSpec::Matchers.define :have_recorded_lost_event do |reason, data_category, num: 1| match do |transport| expect(transport.discarded_events[[reason, data_category]]).to eq(num)