airbrake 5.7.0 → 5.7.1

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.
@@ -169,13 +169,32 @@ RSpec.describe "Rails integration specs" do
169
169
  end
170
170
 
171
171
  describe "Resque workers" do
172
- it "reports exceptions occurring in Resque workers" do
173
- with_resque { get '/resque' }
172
+ context "when Airbrake is configured" do
173
+ it "reports exceptions occurring in Resque workers" do
174
+ with_resque { get '/resque' }
174
175
 
175
- wait_for_a_request_with_body(
176
- /"message":"resque\serror".*"params":{.*
176
+ wait_for_a_request_with_body(
177
+ /"message":"resque\serror".*"params":{.*
177
178
  "class":"BingoWorker","args":\["bango","bongo"\].*}/x
178
- )
179
+ )
180
+ end
181
+ end
182
+
183
+ context "when Airbrake is not configured" do
184
+ it "doesn't report errors" do
185
+ allow(Airbrake).to receive(:build_notice).and_return(nil)
186
+ allow(Airbrake).to receive(:notify)
187
+
188
+ with_resque { get '/resque' }
189
+
190
+ wait_for(
191
+ a_request(:post, endpoint).
192
+ with(body: /"message":"resque error"/)
193
+ ).not_to have_been_made
194
+
195
+ expect(Airbrake).to have_received(:build_notice)
196
+ expect(Airbrake).not_to have_received(:notify)
197
+ end
179
198
  end
180
199
  end
181
200
 
@@ -195,6 +214,32 @@ RSpec.describe "Rails integration specs" do
195
214
  # elsewhere.
196
215
  sleep 2
197
216
  end
217
+
218
+ context "when Airbrake is not configured" do
219
+ it "doesn't report errors" do
220
+ allow(Airbrake).to receive(:build_notice).and_return(nil)
221
+ allow(Airbrake).to receive(:notify)
222
+
223
+ # Make sure we don't call `build_notice` more than 1 time. Rack
224
+ # integration will try to handle error 500 and we want to prevent
225
+ # that: https://github.com/airbrake/airbrake/pull/583
226
+ allow_any_instance_of(Airbrake::Rack::Middleware).to(
227
+ receive(:notify_airbrake).
228
+ and_return(nil)
229
+ )
230
+
231
+ get '/delayed_job'
232
+ sleep 2
233
+
234
+ wait_for(
235
+ a_request(:post, endpoint).
236
+ with(body: /"message":"delayed_job error"/)
237
+ ).not_to have_been_made
238
+
239
+ expect(Airbrake).to have_received(:build_notice)
240
+ expect(Airbrake).not_to have_received(:notify)
241
+ end
242
+ end
198
243
  end
199
244
 
200
245
  describe "notice payload when a user is authenticated without Warden" do
@@ -5,6 +5,7 @@ require 'rspec/wait'
5
5
  require 'rack'
6
6
  require 'rack/test'
7
7
  require 'rake'
8
+ require 'pry'
8
9
 
9
10
  require 'airbrake'
10
11
  require 'airbrake/rake/tasks'
@@ -14,20 +14,35 @@ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0')
14
14
  wait_for(a_request(:post, endpoint).with(body: body)).to have_been_made.once
15
15
  end
16
16
 
17
- before do
18
- stub_request(:post, endpoint).to_return(status: 201, body: '{}')
19
- end
20
-
21
- it "sends a notice to Airbrake" do
17
+ def call_handler
22
18
  handler = Sidekiq.error_handlers.last
23
19
  handler.call(
24
20
  AirbrakeTestError.new('sidekiq error'),
25
21
  'class' => 'HardSidekiqWorker', 'args' => %w(bango bongo)
26
22
  )
23
+ end
24
+
25
+ before do
26
+ stub_request(:post, endpoint).to_return(status: 201, body: '{}')
27
+ end
28
+
29
+ it "sends a notice to Airbrake" do
30
+ expect(call_handler).to be_a(Airbrake::Promise)
27
31
 
28
32
  wait_for_a_request_with_body(/"message":"sidekiq\serror"/)
29
33
  wait_for_a_request_with_body(/"params":{.*"args":\["bango","bongo"\]/)
30
34
  wait_for_a_request_with_body(/"component":"sidekiq","action":"HardSidekiqWorker"/)
31
35
  end
36
+
37
+ context "when Airbrake is not configured" do
38
+ it "returns nil" do
39
+ allow(Airbrake).to receive(:build_notice).and_return(nil)
40
+ allow(Airbrake).to receive(:notify)
41
+
42
+ expect(call_handler).to be_nil
43
+ expect(Airbrake).to have_received(:build_notice)
44
+ expect(Airbrake).not_to have_received(:notify)
45
+ end
46
+ end
32
47
  end
33
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airbrake
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.7.0
4
+ version: 5.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Airbrake Technologies, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-26 00:00:00.000000000 Z
11
+ date: 2017-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: airbrake-ruby