airbrake-ruby 5.2.0-java → 5.2.1-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/lib/airbrake-ruby.rb +3 -2
  3. data/lib/airbrake-ruby/async_sender.rb +3 -1
  4. data/lib/airbrake-ruby/context.rb +51 -0
  5. data/lib/airbrake-ruby/filter_chain.rb +2 -0
  6. data/lib/airbrake-ruby/filters/context_filter.rb +4 -5
  7. data/lib/airbrake-ruby/filters/exception_attributes_filter.rb +1 -1
  8. data/lib/airbrake-ruby/filters/git_last_checkout_filter.rb +1 -1
  9. data/lib/airbrake-ruby/filters/git_revision_filter.rb +1 -1
  10. data/lib/airbrake-ruby/filters/keys_filter.rb +2 -2
  11. data/lib/airbrake-ruby/filters/sql_filter.rb +2 -2
  12. data/lib/airbrake-ruby/filters/thread_filter.rb +1 -1
  13. data/lib/airbrake-ruby/ignorable.rb +0 -2
  14. data/lib/airbrake-ruby/notice_notifier.rb +3 -4
  15. data/lib/airbrake-ruby/performance_notifier.rb +1 -2
  16. data/lib/airbrake-ruby/remote_settings/settings_data.rb +1 -1
  17. data/lib/airbrake-ruby/tdigest.rb +7 -6
  18. data/lib/airbrake-ruby/thread_pool.rb +5 -3
  19. data/lib/airbrake-ruby/timed_trace.rb +1 -3
  20. data/lib/airbrake-ruby/version.rb +1 -1
  21. data/spec/airbrake_spec.rb +139 -76
  22. data/spec/async_sender_spec.rb +10 -8
  23. data/spec/backtrace_spec.rb +13 -10
  24. data/spec/benchmark_spec.rb +5 -3
  25. data/spec/code_hunk_spec.rb +24 -15
  26. data/spec/config/processor_spec.rb +12 -4
  27. data/spec/config/validator_spec.rb +5 -2
  28. data/spec/config_spec.rb +24 -16
  29. data/spec/context_spec.rb +54 -0
  30. data/spec/deploy_notifier_spec.rb +6 -4
  31. data/spec/file_cache_spec.rb +1 -0
  32. data/spec/filter_chain_spec.rb +29 -24
  33. data/spec/filters/context_filter_spec.rb +14 -5
  34. data/spec/filters/dependency_filter_spec.rb +3 -1
  35. data/spec/filters/exception_attributes_filter_spec.rb +5 -3
  36. data/spec/filters/gem_root_filter_spec.rb +5 -2
  37. data/spec/filters/git_last_checkout_filter_spec.rb +10 -12
  38. data/spec/filters/git_repository_filter.rb +9 -9
  39. data/spec/filters/git_revision_filter_spec.rb +19 -19
  40. data/spec/filters/keys_allowlist_spec.rb +25 -16
  41. data/spec/filters/keys_blocklist_spec.rb +25 -18
  42. data/spec/filters/root_directory_filter_spec.rb +3 -3
  43. data/spec/filters/sql_filter_spec.rb +26 -26
  44. data/spec/filters/system_exit_filter_spec.rb +4 -2
  45. data/spec/filters/thread_filter_spec.rb +15 -13
  46. data/spec/loggable_spec.rb +2 -2
  47. data/spec/monotonic_time_spec.rb +8 -6
  48. data/spec/nested_exception_spec.rb +46 -46
  49. data/spec/notice_notifier/options_spec.rb +23 -13
  50. data/spec/notice_notifier_spec.rb +52 -47
  51. data/spec/notice_spec.rb +6 -2
  52. data/spec/performance_notifier_spec.rb +67 -60
  53. data/spec/promise_spec.rb +38 -32
  54. data/spec/remote_settings/callback_spec.rb +27 -8
  55. data/spec/remote_settings/settings_data_spec.rb +4 -4
  56. data/spec/remote_settings_spec.rb +18 -8
  57. data/spec/response_spec.rb +34 -12
  58. data/spec/stashable_spec.rb +5 -5
  59. data/spec/stat_spec.rb +7 -5
  60. data/spec/sync_sender_spec.rb +49 -16
  61. data/spec/tdigest_spec.rb +60 -55
  62. data/spec/thread_pool_spec.rb +65 -55
  63. data/spec/time_truncate_spec.rb +4 -2
  64. data/spec/timed_trace_spec.rb +32 -30
  65. data/spec/truncator_spec.rb +72 -43
  66. metadata +51 -48
data/spec/notice_spec.rb CHANGED
@@ -85,7 +85,7 @@ RSpec.describe Airbrake::Notice do
85
85
 
86
86
  context "when truncation failed" do
87
87
  it "returns nil" do
88
- expect_any_instance_of(Airbrake::Truncator)
88
+ allow_any_instance_of(Airbrake::Truncator)
89
89
  .to receive(:reduce_max_size).and_return(0)
90
90
 
91
91
  encoded = Base64.encode64("\xD3\xE6\xBC\x9D\xBA").encode!('ASCII-8BIT')
@@ -103,7 +103,7 @@ RSpec.describe Airbrake::Notice do
103
103
  end
104
104
 
105
105
  describe "object replacement with its string version" do
106
- let(:klass) { Class.new {} }
106
+ let(:klass) { Class.new }
107
107
  let(:ex) { AirbrakeTestError.new }
108
108
  let(:params) { { bingo: [Object.new, klass.new] } }
109
109
  let(:notice) { described_class.new(ex, params) }
@@ -152,6 +152,7 @@ RSpec.describe Airbrake::Notice do
152
152
  # serialize them.
153
153
  #
154
154
  # @see https://goo.gl/0A3xNC
155
+ # rubocop:disable Lint/ConstantDefinitionInBlock, RSpec/LeakyConstantDeclaration
155
156
  class ObjectWithIoIvars
156
157
  def initialize
157
158
  @bongo = Tempfile.new('bongo').tap(&:close)
@@ -162,8 +163,10 @@ RSpec.describe Airbrake::Notice do
162
163
  raise NotImplementedError
163
164
  end
164
165
  end
166
+ # rubocop:enable Lint/ConstantDefinitionInBlock, RSpec/LeakyConstantDeclaration
165
167
 
166
168
  # @see ObjectWithIoIvars
169
+ # rubocop:disable Lint/ConstantDefinitionInBlock, RSpec/LeakyConstantDeclaration
167
170
  class ObjectWithNestedIoIvars
168
171
  def initialize
169
172
  @bish = ObjectWithIoIvars.new
@@ -174,6 +177,7 @@ RSpec.describe Airbrake::Notice do
174
177
  raise NotImplementedError
175
178
  end
176
179
  end
180
+ # rubocop:enable Lint/ConstantDefinitionInBlock, RSpec/LeakyConstantDeclaration
177
181
 
178
182
  context "and also when it's a closed Tempfile" do
179
183
  it "doesn't fail" do
@@ -1,4 +1,6 @@
1
1
  RSpec.describe Airbrake::PerformanceNotifier do
2
+ subject(:perf_notifier) { described_class.new }
3
+
2
4
  let(:routes) { 'https://api.airbrake.io/api/v5/projects/1/routes-stats' }
3
5
  let(:queries) { 'https://api.airbrake.io/api/v5/projects/1/queries-stats' }
4
6
  let(:breakdowns) { 'https://api.airbrake.io/api/v5/projects/1/routes-breakdowns' }
@@ -22,7 +24,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
22
24
 
23
25
  describe "#notify" do
24
26
  it "sends full query" do
25
- subject.notify(
27
+ perf_notifier.notify(
26
28
  Airbrake::Query.new(
27
29
  method: 'POST',
28
30
  route: '/foo',
@@ -34,7 +36,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
34
36
  time: Time.new(2018, 1, 1, 0, 49, 0, 0),
35
37
  ),
36
38
  )
37
- subject.close
39
+ perf_notifier.close
38
40
 
39
41
  expect(
40
42
  a_request(:put, queries).with(body: %r|
@@ -55,7 +57,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
55
57
  end
56
58
 
57
59
  it "sends full request" do
58
- subject.notify(
60
+ perf_notifier.notify(
59
61
  Airbrake::Request.new(
60
62
  method: 'POST',
61
63
  route: '/foo',
@@ -64,7 +66,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
64
66
  time: Time.new(2018, 1, 1, 0, 49, 0, 0),
65
67
  ),
66
68
  )
67
- subject.close
69
+ perf_notifier.close
68
70
 
69
71
  expect(
70
72
  a_request(:put, routes).with(body: %r|
@@ -82,7 +84,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
82
84
  end
83
85
 
84
86
  it "sends full performance breakdown" do
85
- subject.notify(
87
+ perf_notifier.notify(
86
88
  Airbrake::PerformanceBreakdown.new(
87
89
  method: 'DELETE',
88
90
  route: '/routes-breakdowns',
@@ -92,7 +94,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
92
94
  groups: { db: 131, view: 421 },
93
95
  ),
94
96
  )
95
- subject.close
97
+ perf_notifier.close
96
98
 
97
99
  expect(
98
100
  a_request(:put, breakdowns).with(body: %r|
@@ -124,7 +126,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
124
126
  end
125
127
 
126
128
  it "sends full queue" do
127
- subject.notify(
129
+ perf_notifier.notify(
128
130
  Airbrake::Queue.new(
129
131
  queue: 'emails',
130
132
  error_count: 2,
@@ -133,7 +135,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
133
135
  time: Time.new(2018, 1, 1, 0, 49, 0, 0),
134
136
  ),
135
137
  )
136
- subject.close
138
+ perf_notifier.close
137
139
 
138
140
  expect(
139
141
  a_request(:put, queues).with(body: /
@@ -164,7 +166,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
164
166
  end
165
167
 
166
168
  it "rounds time to the floor minute" do
167
- subject.notify(
169
+ perf_notifier.notify(
168
170
  Airbrake::Request.new(
169
171
  method: 'GET',
170
172
  route: '/foo',
@@ -173,7 +175,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
173
175
  time: Time.new(2018, 1, 1, 0, 0, 20, 0),
174
176
  ),
175
177
  )
176
- subject.close
178
+ perf_notifier.close
177
179
 
178
180
  expect(
179
181
  a_request(:put, routes).with(body: /"time":"2018-01-01T00:00:00\+00:00"/),
@@ -181,7 +183,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
181
183
  end
182
184
 
183
185
  it "increments routes with the same key" do
184
- subject.notify(
186
+ perf_notifier.notify(
185
187
  Airbrake::Request.new(
186
188
  method: 'GET',
187
189
  route: '/foo',
@@ -189,7 +191,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
189
191
  timing: 213,
190
192
  ),
191
193
  )
192
- subject.notify(
194
+ perf_notifier.notify(
193
195
  Airbrake::Request.new(
194
196
  method: 'GET',
195
197
  route: '/foo',
@@ -197,7 +199,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
197
199
  timing: 123,
198
200
  ),
199
201
  )
200
- subject.close
202
+ perf_notifier.close
201
203
 
202
204
  expect(
203
205
  a_request(:put, routes).with(body: /"count":2/),
@@ -205,7 +207,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
205
207
  end
206
208
 
207
209
  it "groups routes by time" do
208
- subject.notify(
210
+ perf_notifier.notify(
209
211
  Airbrake::Request.new(
210
212
  method: 'GET',
211
213
  route: '/foo',
@@ -214,7 +216,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
214
216
  time: Time.new(2018, 1, 1, 0, 0, 49, 0),
215
217
  ),
216
218
  )
217
- subject.notify(
219
+ perf_notifier.notify(
218
220
  Airbrake::Request.new(
219
221
  method: 'GET',
220
222
  route: '/foo',
@@ -223,7 +225,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
223
225
  time: Time.new(2018, 1, 1, 0, 1, 49, 0),
224
226
  ),
225
227
  )
226
- subject.close
228
+ perf_notifier.close
227
229
 
228
230
  expect(
229
231
  a_request(:put, routes).with(
@@ -241,7 +243,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
241
243
  end
242
244
 
243
245
  it "groups routes by route key" do
244
- subject.notify(
246
+ perf_notifier.notify(
245
247
  Airbrake::Request.new(
246
248
  method: 'GET',
247
249
  route: '/foo',
@@ -250,7 +252,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
250
252
  time: Time.new(2018, 1, 1, 0, 49, 0, 0),
251
253
  ),
252
254
  )
253
- subject.notify(
255
+ perf_notifier.notify(
254
256
  Airbrake::Request.new(
255
257
  method: 'POST',
256
258
  route: '/foo',
@@ -259,7 +261,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
259
261
  time: Time.new(2018, 1, 1, 0, 49, 0, 0),
260
262
  ),
261
263
  )
262
- subject.close
264
+ perf_notifier.close
263
265
 
264
266
  expect(
265
267
  a_request(:put, routes).with(
@@ -277,7 +279,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
277
279
  end
278
280
 
279
281
  it "groups performance breakdowns by route key" do
280
- subject.notify(
282
+ perf_notifier.notify(
281
283
  Airbrake::PerformanceBreakdown.new(
282
284
  method: 'DELETE',
283
285
  route: '/routes-breakdowns',
@@ -287,7 +289,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
287
289
  groups: { db: 131, view: 421 },
288
290
  ),
289
291
  )
290
- subject.notify(
292
+ perf_notifier.notify(
291
293
  Airbrake::PerformanceBreakdown.new(
292
294
  method: 'DELETE',
293
295
  route: '/routes-breakdowns',
@@ -297,7 +299,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
297
299
  groups: { db: 55, view: 11 },
298
300
  ),
299
301
  )
300
- subject.close
302
+ perf_notifier.close
301
303
 
302
304
  expect(
303
305
  a_request(:put, breakdowns).with(body: %r|
@@ -329,7 +331,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
329
331
  end
330
332
 
331
333
  it "groups queues by queue key" do
332
- subject.notify(
334
+ perf_notifier.notify(
333
335
  Airbrake::Queue.new(
334
336
  queue: 'emails',
335
337
  error_count: 2,
@@ -338,7 +340,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
338
340
  time: Time.new(2018, 1, 1, 0, 49, 0, 0),
339
341
  ),
340
342
  )
341
- subject.notify(
343
+ perf_notifier.notify(
342
344
  Airbrake::Queue.new(
343
345
  queue: 'emails',
344
346
  error_count: 3,
@@ -347,7 +349,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
347
349
  time: Time.new(2018, 1, 1, 0, 49, 0, 0),
348
350
  ),
349
351
  )
350
- subject.close
352
+ perf_notifier.close
351
353
 
352
354
  expect(
353
355
  a_request(:put, queues).with(body: /
@@ -378,7 +380,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
378
380
  end
379
381
 
380
382
  it "returns a promise" do
381
- promise = subject.notify(
383
+ promise = perf_notifier.notify(
382
384
  Airbrake::Request.new(
383
385
  method: 'GET',
384
386
  route: '/foo',
@@ -386,7 +388,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
386
388
  timing: 123,
387
389
  ),
388
390
  )
389
- subject.close
391
+ perf_notifier.close
390
392
 
391
393
  expect(promise).to be_an(Airbrake::Promise)
392
394
  expect(promise.value).to eq('' => '')
@@ -396,16 +398,19 @@ RSpec.describe Airbrake::PerformanceNotifier do
396
398
  request = Airbrake::Request.new(
397
399
  method: 'GET', route: '/foo', status_code: 200, timing: 123,
398
400
  )
399
- expect(Airbrake::Config.instance).to receive(:check_performance_options)
400
- .with(request).and_return(Airbrake::Promise.new)
401
- subject.notify(request)
402
- subject.close
401
+ allow(Airbrake::Config.instance).to receive(:check_performance_options)
402
+ .and_return(Airbrake::Promise.new)
403
+ perf_notifier.notify(request)
404
+ perf_notifier.close
405
+
406
+ expect(Airbrake::Config.instance)
407
+ .to have_received(:check_performance_options).with(request)
403
408
  end
404
409
 
405
410
  it "sends environment when it's specified" do
406
411
  Airbrake::Config.instance.merge(performance_stats: true, environment: 'test')
407
412
 
408
- subject.notify(
413
+ perf_notifier.notify(
409
414
  Airbrake::Request.new(
410
415
  method: 'POST',
411
416
  route: '/foo',
@@ -413,7 +418,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
413
418
  timing: 123,
414
419
  ),
415
420
  )
416
- subject.close
421
+ perf_notifier.close
417
422
 
418
423
  expect(
419
424
  a_request(:put, routes).with(
@@ -426,7 +431,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
426
431
  before { Airbrake::Config.instance.merge(project_id: nil) }
427
432
 
428
433
  it "returns a rejected promise" do
429
- promise = subject.notify({})
434
+ promise = perf_notifier.notify({})
430
435
  expect(promise).to be_rejected
431
436
  end
432
437
  end
@@ -442,7 +447,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
442
447
  performance_stats_flush_period: flush_period,
443
448
  )
444
449
 
445
- subject.notify(
450
+ perf_notifier.notify(
446
451
  Airbrake::Request.new(
447
452
  method: 'GET',
448
453
  route: '/foo',
@@ -451,7 +456,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
451
456
  ),
452
457
  )
453
458
 
454
- subject.notify(
459
+ perf_notifier.notify(
455
460
  Airbrake::Query.new(
456
461
  method: 'POST',
457
462
  route: '/foo',
@@ -468,10 +473,10 @@ RSpec.describe Airbrake::PerformanceNotifier do
468
473
  end
469
474
 
470
475
  context "when an ignore filter was defined" do
471
- before { subject.add_filter(&:ignore!) }
476
+ before { perf_notifier.add_filter(&:ignore!) }
472
477
 
473
478
  it "doesn't notify airbrake of requests" do
474
- subject.notify(
479
+ perf_notifier.notify(
475
480
  Airbrake::Request.new(
476
481
  method: 'GET',
477
482
  route: '/foo',
@@ -479,13 +484,13 @@ RSpec.describe Airbrake::PerformanceNotifier do
479
484
  timing: 1,
480
485
  ),
481
486
  )
482
- subject.close
487
+ perf_notifier.close
483
488
 
484
489
  expect(a_request(:put, routes)).not_to have_been_made
485
490
  end
486
491
 
487
492
  it "doesn't notify airbrake of queries" do
488
- subject.notify(
493
+ perf_notifier.notify(
489
494
  Airbrake::Query.new(
490
495
  method: 'POST',
491
496
  route: '/foo',
@@ -493,13 +498,13 @@ RSpec.describe Airbrake::PerformanceNotifier do
493
498
  timing: 1,
494
499
  ),
495
500
  )
496
- subject.close
501
+ perf_notifier.close
497
502
 
498
503
  expect(a_request(:put, queries)).not_to have_been_made
499
504
  end
500
505
 
501
506
  it "returns a rejected promise" do
502
- promise = subject.notify(
507
+ promise = perf_notifier.notify(
503
508
  Airbrake::Query.new(
504
509
  method: 'POST',
505
510
  route: '/foo',
@@ -507,7 +512,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
507
512
  timing: 1,
508
513
  ),
509
514
  )
510
- subject.close
515
+ perf_notifier.close
511
516
 
512
517
  expect(promise.value).to eq(
513
518
  'error' => 'Airbrake::Query was ignored by a filter',
@@ -517,13 +522,13 @@ RSpec.describe Airbrake::PerformanceNotifier do
517
522
 
518
523
  context "when a filter that modifies payload was defined" do
519
524
  before do
520
- subject.add_filter do |resource|
525
+ perf_notifier.add_filter do |resource|
521
526
  resource.route = '[Filtered]'
522
527
  end
523
528
  end
524
529
 
525
530
  it "notifies airbrake with modified payload" do
526
- subject.notify(
531
+ perf_notifier.notify(
527
532
  Airbrake::Query.new(
528
533
  method: 'POST',
529
534
  route: '/foo',
@@ -531,7 +536,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
531
536
  timing: 123,
532
537
  ),
533
538
  )
534
- subject.close
539
+ perf_notifier.close
535
540
 
536
541
  expect(
537
542
  a_request(:put, queries).with(
@@ -544,16 +549,16 @@ RSpec.describe Airbrake::PerformanceNotifier do
544
549
  context "when provided :timing is zero" do
545
550
  it "doesn't notify" do
546
551
  queue = Airbrake::Queue.new(queue: 'bananas', error_count: 0, timing: 0)
547
- subject.notify(queue)
548
- subject.close
552
+ perf_notifier.notify(queue)
553
+ perf_notifier.close
549
554
 
550
555
  expect(a_request(:put, queues)).not_to have_been_made
551
556
  end
552
557
 
553
558
  it "returns a rejected promise" do
554
559
  queue = Airbrake::Queue.new(queue: 'bananas', error_count: 0, timing: 0)
555
- promise = subject.notify(queue)
556
- subject.close
560
+ promise = perf_notifier.notify(queue)
561
+ perf_notifier.close
557
562
 
558
563
  expect(promise.value).to eq('error' => ':timing cannot be zero')
559
564
  end
@@ -562,7 +567,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
562
567
 
563
568
  describe "#notify_sync" do
564
569
  it "notifies synchronously" do
565
- retval = subject.notify_sync(
570
+ retval = perf_notifier.notify_sync(
566
571
  Airbrake::Query.new(
567
572
  method: 'POST',
568
573
  route: '/foo',
@@ -591,7 +596,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
591
596
 
592
597
  it "kills the background thread" do
593
598
  expect_any_instance_of(Thread).to receive(:kill).and_call_original
594
- subject.notify(
599
+ perf_notifier.notify(
595
600
  Airbrake::Query.new(
596
601
  method: 'POST',
597
602
  route: '/foo',
@@ -599,15 +604,17 @@ RSpec.describe Airbrake::PerformanceNotifier do
599
604
  timing: 123,
600
605
  ),
601
606
  )
602
- subject.close
607
+ perf_notifier.close
603
608
  end
604
609
 
605
610
  it "logs the exit message" do
606
611
  allow(Airbrake::Loggable.instance).to receive(:debug)
607
- expect(Airbrake::Loggable.instance).to receive(:debug).with(
608
- /performance notifier closed/,
612
+
613
+ perf_notifier.close
614
+
615
+ expect(Airbrake::Loggable.instance).to have_received(:debug).with(
616
+ /Airbrake::PerformanceNotifier thread pool closed/,
609
617
  )
610
- subject.close
611
618
  end
612
619
  end
613
620
 
@@ -618,11 +625,11 @@ RSpec.describe Airbrake::PerformanceNotifier do
618
625
  end
619
626
  end
620
627
 
621
- before { subject.add_filter(filter.new) }
628
+ before { perf_notifier.add_filter(filter.new) }
622
629
 
623
630
  it "deletes a filter" do
624
- subject.delete_filter(filter)
625
- subject.notify(
631
+ perf_notifier.delete_filter(filter)
632
+ perf_notifier.notify(
626
633
  Airbrake::Request.new(
627
634
  method: 'POST',
628
635
  route: '/foo',
@@ -630,7 +637,7 @@ RSpec.describe Airbrake::PerformanceNotifier do
630
637
  timing: 123,
631
638
  ),
632
639
  )
633
- subject.close
640
+ perf_notifier.close
634
641
 
635
642
  expect(a_request(:put, routes)).to have_been_made
636
643
  end