honeybadger 1.5.0 → 1.6.0
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.
- data/Appraisals +25 -1
- data/CHANGELOG.md +47 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +7 -8
- data/MIT-LICENSE +1 -1
- data/README.md +117 -6
- data/Rakefile +15 -0
- data/features/rack.feature +2 -2
- data/features/rails.feature +79 -15
- data/features/step_definitions/metal_steps.rb +4 -4
- data/features/step_definitions/rack_steps.rb +0 -4
- data/features/step_definitions/rails_steps.rb +49 -32
- data/features/support/honeybadger_failure_shim.rb.template +5 -0
- data/features/support/rails.rb +17 -5
- data/gemfiles/rack.gemfile +8 -0
- data/gemfiles/rack.gemfile.lock +92 -0
- data/gemfiles/rails2.3.gemfile +1 -1
- data/gemfiles/rails2.3.gemfile.lock +6 -2
- data/gemfiles/rails3.0.gemfile +2 -1
- data/gemfiles/rails3.0.gemfile.lock +12 -3
- data/gemfiles/rails3.1.gemfile +2 -1
- data/gemfiles/rails3.1.gemfile.lock +12 -3
- data/gemfiles/rails3.2.gemfile +3 -2
- data/gemfiles/rails3.2.gemfile.lock +45 -36
- data/gemfiles/rails4.gemfile +9 -0
- data/gemfiles/rails4.gemfile.lock +174 -0
- data/gemfiles/rake.gemfile +8 -0
- data/gemfiles/rake.gemfile.lock +91 -0
- data/gemfiles/sinatra.gemfile +8 -0
- data/gemfiles/sinatra.gemfile.lock +91 -0
- data/generators/honeybadger/honeybadger_generator.rb +5 -5
- data/honeybadger.gemspec +12 -3
- data/lib/honeybadger.rb +7 -14
- data/lib/honeybadger/configuration.rb +10 -1
- data/lib/honeybadger/notice.rb +38 -20
- data/lib/honeybadger/rack.rb +0 -1
- data/lib/honeybadger/rails/controller_methods.rb +5 -4
- data/lib/honeybadger/rails3_tasks.rb +16 -4
- data/lib/honeybadger/sender.rb +10 -19
- data/lib/honeybadger/shared_tasks.rb +2 -3
- data/lib/honeybadger/tasks.rb +16 -9
- data/lib/honeybadger_tasks.rb +2 -3
- data/lib/rails/generators/honeybadger/honeybadger_generator.rb +5 -5
- data/test/test_helper.rb +2 -7
- data/test/unit/backtrace_test.rb +19 -19
- data/test/unit/configuration_test.rb +11 -5
- data/test/unit/notice_test.rb +21 -3
- data/test/unit/rails/action_controller_catcher_test.rb +250 -241
- data/test/unit/sender_test.rb +22 -2
- metadata +13 -19
data/Appraisals
CHANGED
@@ -7,14 +7,38 @@ end
|
|
7
7
|
appraise 'rails3.0' do
|
8
8
|
gem 'rails', '3.0.17'
|
9
9
|
gem 'honeybadger', :path => '../'
|
10
|
+
gem 'better_errors', :require => false
|
10
11
|
end
|
11
12
|
|
12
13
|
appraise 'rails3.1' do
|
13
14
|
gem 'rails', '3.1.8'
|
14
15
|
gem 'honeybadger', :path => '../'
|
16
|
+
gem 'better_errors', :require => false
|
15
17
|
end
|
16
18
|
|
17
19
|
appraise 'rails3.2' do
|
18
|
-
gem 'rails', '3.2.
|
20
|
+
gem 'rails', '3.2.12'
|
21
|
+
gem 'honeybadger', :path => '../'
|
22
|
+
gem 'better_errors', :require => false
|
23
|
+
end
|
24
|
+
|
25
|
+
appraise 'rails4' do
|
26
|
+
gem 'rails', '4.0.0.beta', :git => 'git://github.com/rails/rails.git'
|
27
|
+
gem 'honeybadger', :path => '../'
|
28
|
+
gem 'better_errors', :require => false
|
29
|
+
end
|
30
|
+
|
31
|
+
appraise 'rake' do
|
32
|
+
gem 'sinatra'
|
33
|
+
gem 'honeybadger', :path => '../'
|
34
|
+
end
|
35
|
+
|
36
|
+
appraise 'rack' do
|
37
|
+
gem 'rack'
|
38
|
+
gem 'honeybadger', :path => '../'
|
39
|
+
end
|
40
|
+
|
41
|
+
appraise 'sinatra' do
|
42
|
+
gem 'sinatra'
|
19
43
|
gem 'honeybadger', :path => '../'
|
20
44
|
end
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
## Honeybadger 1.6.0 ##
|
2
|
+
|
3
|
+
* Rescue from load error when application_controller.rb is missing.
|
4
|
+
|
5
|
+
*Joshua Wood*
|
6
|
+
|
7
|
+
* Default to debug log level instead of info for general logging.
|
8
|
+
|
9
|
+
*Joshua Wood*
|
10
|
+
|
11
|
+
* Ignore error classes by regexp, ignore subclasses of ignored classes
|
12
|
+
|
13
|
+
*Joshua Wood*
|
14
|
+
|
15
|
+
* Detect and disable better_errors gem in Rails 3 test task
|
16
|
+
|
17
|
+
*Joshua Wood*
|
18
|
+
|
19
|
+
* Add option to send session data (or not)
|
20
|
+
|
21
|
+
*Joshua Wood*
|
22
|
+
|
23
|
+
* Send language in notice payload
|
24
|
+
|
25
|
+
*Joshua Wood*
|
26
|
+
|
27
|
+
* Disable Rack::SSL middleware in Rails 3 test task. Rails'
|
28
|
+
config.force_ssl setting otherwise prevents the request from reaching
|
29
|
+
the controller.
|
30
|
+
|
31
|
+
*Joshua Wood*
|
32
|
+
|
33
|
+
* Added a Changelog :)
|
34
|
+
|
35
|
+
*Joshua Wood*
|
36
|
+
|
37
|
+
* Added deploy tracking documentation
|
38
|
+
|
39
|
+
*Joshua Wood*
|
40
|
+
|
41
|
+
* Remove dependency on ActiveSupport
|
42
|
+
|
43
|
+
*Pieter van de Bruggen*
|
44
|
+
|
45
|
+
* Rails 4 support
|
46
|
+
|
47
|
+
*Joshua Wood*
|
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
honeybadger (1.
|
5
|
-
activesupport
|
4
|
+
honeybadger (1.6.0)
|
6
5
|
json
|
7
6
|
|
8
7
|
GEM
|
9
|
-
remote:
|
8
|
+
remote: https://rubygems.org/
|
10
9
|
specs:
|
11
|
-
activesupport (3.2.11)
|
12
|
-
i18n (~> 0.6)
|
13
|
-
multi_json (~> 1.0)
|
14
10
|
appraisal (0.5.1)
|
15
11
|
bundler
|
16
12
|
rake
|
@@ -37,15 +33,17 @@ GEM
|
|
37
33
|
diff-lcs (1.1.3)
|
38
34
|
fakeweb (1.3.0)
|
39
35
|
ffi (1.2.0)
|
36
|
+
ffi (1.2.0-java)
|
40
37
|
gherkin (2.11.5)
|
41
38
|
json (>= 1.4.6)
|
39
|
+
gherkin (2.11.5-java)
|
40
|
+
json (>= 1.4.6)
|
42
41
|
highline (1.6.13)
|
43
|
-
i18n (0.6.1)
|
44
42
|
json (1.7.3)
|
43
|
+
json (1.7.3-java)
|
45
44
|
metaclass (0.0.1)
|
46
45
|
mocha (0.10.5)
|
47
46
|
metaclass (~> 0.0.1)
|
48
|
-
multi_json (1.5.0)
|
49
47
|
net-scp (1.0.4)
|
50
48
|
net-ssh (>= 1.99.1)
|
51
49
|
net-sftp (2.0.5)
|
@@ -70,6 +68,7 @@ GEM
|
|
70
68
|
rack (>= 1.0)
|
71
69
|
|
72
70
|
PLATFORMS
|
71
|
+
java
|
73
72
|
ruby
|
74
73
|
|
75
74
|
DEPENDENCIES
|
data/MIT-LICENSE
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
Copyright (c) 2007 - 2012, Exceptional DBA Airbrake.io
|
2
|
-
Portions Copyright (c) 2012, Honeybadger Industries LLC
|
2
|
+
Portions Copyright (c) 2012-2013, Honeybadger Industries LLC
|
3
3
|
|
4
4
|
NOTE: All code contained herein that is copyright Exceptional DBA Airbrake.io was available
|
5
5
|
under the MIT license (listed below) on or before November 6, 2012.
|
data/README.md
CHANGED
@@ -2,8 +2,9 @@ Honeybadger
|
|
2
2
|
===============
|
3
3
|
|
4
4
|
[](http://travis-ci.org/honeybadger-io/honeybadger-ruby)
|
5
|
+
[](http://badge.fury.io/rb/honeybadger)
|
5
6
|
|
6
|
-
This is the notifier gem for integrating apps with the :zap: [Honeybadger
|
7
|
+
This is the notifier gem for integrating apps with the :zap: [Honeybadger Exception Notifier for Ruby and Rails](http://honeybadger.io).
|
7
8
|
|
8
9
|
When an uncaught exception occurs, Honeybadger will POST the relevant data
|
9
10
|
to the Honeybadger server specified in your environment.
|
@@ -21,8 +22,6 @@ Then generate the initializer:
|
|
21
22
|
If you prefer to manually create the initializer, that's simple enough.
|
22
23
|
Just put the code below in config/initializers/honeybadger.rb
|
23
24
|
|
24
|
-
# Uncomment the following line if running lower than Rails 3.2
|
25
|
-
# require 'honeybadger/rails'
|
26
25
|
Honeybadger.configure do |config|
|
27
26
|
config.api_key = '[your-api-key]'
|
28
27
|
end
|
@@ -92,6 +91,11 @@ Using honeybadger in a Sinatra app is just like a Rack app:
|
|
92
91
|
raise "Sinatra has left the building"
|
93
92
|
end
|
94
93
|
|
94
|
+
## Additional integrations:
|
95
|
+
|
96
|
+
* [Catch exceptions in Resque jobs](https://github.com/henrik/resque-honeybadger)
|
97
|
+
* [Sidekiq - Simple, efficient message processing for Ruby](https://github.com/mperham/sidekiq) (supports Honeybadger natively)
|
98
|
+
|
95
99
|
## Usage
|
96
100
|
|
97
101
|
For the most part, Honeybadger works for itself.
|
@@ -124,6 +128,27 @@ this rake task (from RAILS_ROOT):
|
|
124
128
|
If everything is configured properly, that task will send a notice to Honeybadger
|
125
129
|
which will be visible immediately.
|
126
130
|
|
131
|
+
## Ignored environments
|
132
|
+
|
133
|
+
Please note that in development mode, Honeybadger will **not** be
|
134
|
+
notified of exceptions that occur, except when running the test rake
|
135
|
+
task. The following environments are ignored by default: *development*,
|
136
|
+
*test*, and *cucumber*. You can modify which environments are ignored by
|
137
|
+
setting the `development_environments` option in your Honeybadger
|
138
|
+
initializer:
|
139
|
+
|
140
|
+
Honeybadger.configure do |config|
|
141
|
+
...
|
142
|
+
# To add an additional environment to be ignored:
|
143
|
+
config.development_environments << 'staging'
|
144
|
+
|
145
|
+
# To override the default environments completely:
|
146
|
+
config.development_environments = ['test', 'cucumber']
|
147
|
+
end
|
148
|
+
|
149
|
+
If you choose to override the `development_environments` option for
|
150
|
+
whatever reason, please make sure your test environments are ignored.
|
151
|
+
|
127
152
|
## Sending custom data
|
128
153
|
|
129
154
|
Honeybadger allows you to send custom data using `Honeybadger.context`.
|
@@ -146,6 +171,64 @@ request's life cycle. Honeybadger will discard the data when a
|
|
146
171
|
request completes, so that the next request will start with a blank
|
147
172
|
slate.
|
148
173
|
|
174
|
+
## Tracking deploys
|
175
|
+
|
176
|
+
Honeybadger has an API to keep track of project deployments. Whenever
|
177
|
+
you deploy, all errors for that environment will be resolved
|
178
|
+
automatically. You can choose to enable or disable the auto-resolve
|
179
|
+
feature from your Honeybadger project settings page.
|
180
|
+
|
181
|
+
We officially support deploy tracking using Capistrano and Heroku:
|
182
|
+
|
183
|
+
### Capistrano
|
184
|
+
|
185
|
+
In order to track deployments using Capistrano, simply require
|
186
|
+
Honeybadger's Capistrano task in your `config/deploy.rb` file:
|
187
|
+
|
188
|
+
require 'honeybadger/capistrano'
|
189
|
+
|
190
|
+
If you ran the Honeybadger install generator in a project that was
|
191
|
+
previously configured with Capistrano, we already added this for you.
|
192
|
+
|
193
|
+
The Capistrano task will run our `rake honeybadger:deploy` task on
|
194
|
+
the server you are deploying to, so that it can correctly report
|
195
|
+
environment-related information. If you would prefer to notify
|
196
|
+
Honeybadger locally without using rake, check out our blog post:
|
197
|
+
[Honeybadger and Capistrano: the metal way](http://honeybadger.io/blog/2012/10/06/honeybadger-and-capistrano/).
|
198
|
+
|
199
|
+
### Heroku
|
200
|
+
|
201
|
+
Deploy tracking via Heroku is implemented using Heroku's free [deploy
|
202
|
+
hooks](https://devcenter.heroku.com/articles/deploy-hooks) addon. To
|
203
|
+
install the addon and configure it for Honeybadger, run the following
|
204
|
+
rake task from your project root:
|
205
|
+
|
206
|
+
rake honeybadger:heroku:add_deploy_notification APP=app-name
|
207
|
+
|
208
|
+
Don't forget to replace "app-name" with the name of your app on
|
209
|
+
Heroku. Or, if you want to add the deploy hook manually, run:
|
210
|
+
|
211
|
+
heroku addons:add deployhooks:http --url="https://api.honeybadger.io/v1/deploys?deploy[environment]=production&api_key=asdf" --app app-name
|
212
|
+
|
213
|
+
You should replace the api key and app-name with your own values. You
|
214
|
+
may also want to change the environment (set to production by default).
|
215
|
+
|
216
|
+
### Via Rake
|
217
|
+
|
218
|
+
If you are using other frameworks/platforms, you can still notify us of
|
219
|
+
a deploy. We provide a rake task that uses ENV variables to report
|
220
|
+
environment information:
|
221
|
+
|
222
|
+
rake honeybadger:deploy TO=production
|
223
|
+
|
224
|
+
You can optionally add:
|
225
|
+
|
226
|
+
* REPO=[scm repo url]
|
227
|
+
* REVISION=[scm sha]
|
228
|
+
* USER=[local user's name]
|
229
|
+
* API_KEY=[a different api key]
|
230
|
+
* DRY_RUN=true (simulates notification)
|
231
|
+
|
149
232
|
## Notifying Honeybadger asynchronously
|
150
233
|
|
151
234
|
Want to send notices in a thread, or even use Resque or Sidekiq to
|
@@ -295,11 +378,13 @@ Honeybadger ignores the following exceptions by default:
|
|
295
378
|
Mongoid::Errors::DocumentNotFound
|
296
379
|
|
297
380
|
To ignore errors in addition to those, specify their names in your Honeybadger
|
298
|
-
configuration block.
|
381
|
+
configuration block. You may use a string, regexp, or class:
|
299
382
|
|
300
383
|
Honeybadger.configure do |config|
|
301
384
|
config.api_key = '1234567890abcdef'
|
385
|
+
config.ignore << /IgnoredError$/
|
302
386
|
config.ignore << "ActiveRecord::IgnoreThisError"
|
387
|
+
config.ignore << OtherException
|
303
388
|
end
|
304
389
|
|
305
390
|
To ignore *only* certain errors (and override the defaults), use the #ignore_only attribute.
|
@@ -309,6 +394,9 @@ To ignore *only* certain errors (and override the defaults), use the #ignore_onl
|
|
309
394
|
config.ignore_only = ["ActiveRecord::IgnoreThisError"] # or [] to ignore no exceptions.
|
310
395
|
end
|
311
396
|
|
397
|
+
Subclasses of ignored classes will also be ignored, while strings and
|
398
|
+
regexps are compared with the error class name only.
|
399
|
+
|
312
400
|
To ignore certain user agents, add in the #ignore_user_agent attribute as a
|
313
401
|
string or regexp:
|
314
402
|
|
@@ -337,6 +425,13 @@ To replace sensitive information sent to the Honeybadger service with [FILTERED]
|
|
337
425
|
Note that, when rescuing exceptions within an ActionController method,
|
338
426
|
honeybadger will reuse filters specified by #filter_parameter_logging.
|
339
427
|
|
428
|
+
To disable sending session data:
|
429
|
+
|
430
|
+
Honeybadger.configure do |config|
|
431
|
+
config.api_key = '1234567890abcdef'
|
432
|
+
config.send_request_session = false
|
433
|
+
end
|
434
|
+
|
340
435
|
## Testing
|
341
436
|
|
342
437
|
When you run your tests, you might notice that the Honeybadger service is recording
|
@@ -363,9 +458,25 @@ added the following information to your Honeybadger configuration block.
|
|
363
458
|
config.proxy_pass = bar # optional
|
364
459
|
end
|
365
460
|
|
461
|
+
## Troubleshooting
|
462
|
+
|
463
|
+
By default, Honeybadger is quiet when your log level is set to INFO
|
464
|
+
(most production environments). If you would like to be notified via
|
465
|
+
logs when Honeybadger completes a successful notification, set the
|
466
|
+
`config.debug` option to true:
|
467
|
+
|
468
|
+
Honeybadger.configure do |config|
|
469
|
+
...
|
470
|
+
config.debug = true
|
471
|
+
end
|
472
|
+
|
473
|
+
## Supported Ruby versions
|
474
|
+
|
475
|
+
Honeybadger supports Ruby 1.8.7 through 2.0.
|
476
|
+
|
366
477
|
## Supported Rails versions
|
367
478
|
|
368
|
-
Honeybadger supports Rails 2.3.14 through
|
479
|
+
Honeybadger supports Rails 2.3.14 through Rails 4.0.0.beta1.
|
369
480
|
|
370
481
|
## Contributing
|
371
482
|
|
@@ -397,5 +508,5 @@ The nifty custom data (`Honeybadger.context()`) feature was inspired by Exceptio
|
|
397
508
|
|
398
509
|
## License
|
399
510
|
|
400
|
-
Honeybadger is Copyright
|
511
|
+
Honeybadger is Copyright 2013 © Honeybadger Industries LLC. It is free software, and
|
401
512
|
may be redistributed under the terms specified in the MIT-LICENSE file.
|
data/Rakefile
CHANGED
@@ -62,6 +62,21 @@ end
|
|
62
62
|
Cucumber::Rake::Task.new(:cucumber) do |t|
|
63
63
|
t.fork = true
|
64
64
|
t.cucumber_opts = ['--format', 'progress', '--tags', '~@pending']
|
65
|
+
|
66
|
+
unless ENV['BUNDLE_GEMFILE'] =~ /rails(3|4)/
|
67
|
+
t.cucumber_opts << '--tags ~@rails_3'
|
68
|
+
end
|
69
|
+
|
70
|
+
case ENV['BUNDLE_GEMFILE']
|
71
|
+
when /rails/
|
72
|
+
t.cucumber_opts << 'features/rails.feature features/metal.feature'
|
73
|
+
when /rack/
|
74
|
+
t.cucumber_opts << 'features/rack.feature'
|
75
|
+
when /rake/
|
76
|
+
t.cucumber_opts << 'features/rake.feature'
|
77
|
+
when /sinatra/
|
78
|
+
t.cucumber_opts << 'features/sinatra.feature'
|
79
|
+
end unless ENV['FEATURE']
|
65
80
|
end
|
66
81
|
|
67
82
|
desc "Generate RCov test coverage and open in your browser"
|
data/features/rack.feature
CHANGED
@@ -8,7 +8,7 @@ Feature: Use the notifier in a plain Rack app
|
|
8
8
|
|
9
9
|
Honeybadger.configure do |config|
|
10
10
|
config.api_key = 'my_api_key'
|
11
|
-
config.logger = Logger.new
|
11
|
+
config.logger = Logger.new STDOUT
|
12
12
|
end
|
13
13
|
|
14
14
|
app = Rack::Builder.app do
|
@@ -27,8 +27,8 @@ Feature: Use the notifier in a plain Rack app
|
|
27
27
|
|
28
28
|
Honeybadger.configure do |config|
|
29
29
|
config.api_key = 'my_api_key'
|
30
|
-
config.logger = Logger.new(STDOUT)
|
31
30
|
config.ignore_user_agent << /ignore/
|
31
|
+
config.logger = Logger.new STDOUT
|
32
32
|
end
|
33
33
|
|
34
34
|
class Mock
|
data/features/rails.feature
CHANGED
@@ -45,6 +45,29 @@ Feature: Install the Gem in a Rails application
|
|
45
45
|
And I run the honeybadger generator with ""
|
46
46
|
Then the output should contain "You must first remove the honeybadger plugin. Please run: script/plugin remove honeybadger"
|
47
47
|
|
48
|
+
@rails_3
|
49
|
+
Scenario: Running the test task with config.force_ssl enabled
|
50
|
+
When I configure Rails with:
|
51
|
+
"""
|
52
|
+
config.force_ssl = true
|
53
|
+
"""
|
54
|
+
And I configure the notifier to use "myapikey" as an API key
|
55
|
+
And I configure my application to require Honeybadger
|
56
|
+
And I run `rake honeybadger:test`
|
57
|
+
Then I should receive a Honeybadger notification
|
58
|
+
|
59
|
+
@rails_3
|
60
|
+
Scenario: Running the test task with better_errors installed
|
61
|
+
When I configure Rails with:
|
62
|
+
"""
|
63
|
+
require 'better_errors'
|
64
|
+
"""
|
65
|
+
And I configure the notifier to use "myapikey" as an API key
|
66
|
+
And I configure my application to require Honeybadger
|
67
|
+
And I run `rake honeybadger:test`
|
68
|
+
Then the output should contain "Better Errors detected"
|
69
|
+
And I should receive a Honeybadger notification
|
70
|
+
|
48
71
|
Scenario: Rescue an exception in a controller
|
49
72
|
When I configure my application to require Honeybadger
|
50
73
|
And I configure Honeybadger with:
|
@@ -61,6 +84,59 @@ Feature: Install the Gem in a Rails application
|
|
61
84
|
And I perform a request to "http://example.com:123/test/index?param=value"
|
62
85
|
Then I should receive a Honeybadger notification
|
63
86
|
|
87
|
+
Scenario: Rescue an exception in a metal controller
|
88
|
+
When I configure my application to require Honeybadger
|
89
|
+
And I configure Honeybadger with:
|
90
|
+
"""
|
91
|
+
config.api_key = 'myapikey'
|
92
|
+
config.logger = Logger.new(STDOUT)
|
93
|
+
"""
|
94
|
+
And I define a metal response for "TestController#index":
|
95
|
+
"""
|
96
|
+
raise RuntimeError, "some message"
|
97
|
+
"""
|
98
|
+
And I route "/test/index" to "test#index"
|
99
|
+
And I perform a request to "http://example.com:123/test/index?param=value"
|
100
|
+
Then I should receive a Honeybadger notification
|
101
|
+
|
102
|
+
Scenario: Log output in production environments
|
103
|
+
When I configure my application to require Honeybadger
|
104
|
+
And I configure Honeybadger with:
|
105
|
+
"""
|
106
|
+
config.api_key = 'myapikey'
|
107
|
+
config.logger = Logger.new(STDOUT)
|
108
|
+
config.logger.level = Logger::INFO
|
109
|
+
"""
|
110
|
+
And I define a response for "TestController#index":
|
111
|
+
"""
|
112
|
+
raise RuntimeError, "some message"
|
113
|
+
"""
|
114
|
+
And I route "/test/index" to "test#index"
|
115
|
+
And I perform a request to "http://example.com:123/test/index?param=value"
|
116
|
+
Then the output should match /\[Honeybadger\] Notifier (?:[\d\.]+) ready to catch errors/
|
117
|
+
Then the output should not contain "[Honeybadger] Success"
|
118
|
+
Then the output should not contain "[Honeybadger] Environment Info"
|
119
|
+
Then the output should not contain "[Honeybadger] Response from Honeybadger"
|
120
|
+
Then the output should not contain "[Honeybadger] Notice"
|
121
|
+
|
122
|
+
Scenario: Failure to notify Honeybadger in production environments
|
123
|
+
When I configure the Honeybadger failure shim
|
124
|
+
And I configure my application to require Honeybadger
|
125
|
+
And I configure Honeybadger with:
|
126
|
+
"""
|
127
|
+
config.api_key = 'myapikey'
|
128
|
+
config.logger = Logger.new(STDOUT)
|
129
|
+
config.logger.level = Logger::INFO
|
130
|
+
"""
|
131
|
+
And I define a response for "TestController#index":
|
132
|
+
"""
|
133
|
+
raise RuntimeError, "some message"
|
134
|
+
"""
|
135
|
+
And I route "/test/index" to "test#index"
|
136
|
+
And I perform a request to "http://example.com:123/test/index?param=value"
|
137
|
+
Then the output should contain "[Honeybadger] Failure"
|
138
|
+
Then the output should not contain "Honeybadger::Sender#send_to_honeybadger"
|
139
|
+
|
64
140
|
Scenario: The app uses Vlad instead of Capistrano
|
65
141
|
When I configure my application to require Honeybadger
|
66
142
|
And I run `touch config/deploy.rb`
|
@@ -97,6 +173,7 @@ Feature: Install the Gem in a Rails application
|
|
97
173
|
config.api_key = "myapikey"
|
98
174
|
config.logger = Logger.new(STDOUT)
|
99
175
|
config.params_filters << "credit_card_number"
|
176
|
+
config.debug = true
|
100
177
|
"""
|
101
178
|
And I define a response for "TestController#index":
|
102
179
|
"""
|
@@ -116,6 +193,7 @@ Feature: Install the Gem in a Rails application
|
|
116
193
|
config.api_key = "myapikey"
|
117
194
|
config.logger = Logger.new(STDOUT)
|
118
195
|
config.params_filters << "secret"
|
196
|
+
config.debug = true
|
119
197
|
"""
|
120
198
|
And I define a response for "TestController#index":
|
121
199
|
"""
|
@@ -134,6 +212,7 @@ Feature: Install the Gem in a Rails application
|
|
134
212
|
"""
|
135
213
|
config.api_key = 'myapikey'
|
136
214
|
config.logger = Logger.new(STDOUT)
|
215
|
+
config.debug = true
|
137
216
|
"""
|
138
217
|
And I configure the application to filter parameter "secret"
|
139
218
|
And I define a response for "TestController#index":
|
@@ -167,21 +246,6 @@ Feature: Install the Gem in a Rails application
|
|
167
246
|
And I perform a request to "http://example.com:123/test/index?param=value"
|
168
247
|
Then I should receive a Honeybadger notification
|
169
248
|
|
170
|
-
Scenario: Notify honeybadger within a metal controller
|
171
|
-
When I configure my application to require Honeybadger
|
172
|
-
And I configure Honeybadger with:
|
173
|
-
"""
|
174
|
-
config.api_key = 'myapikey'
|
175
|
-
config.logger = Logger.new(STDOUT)
|
176
|
-
"""
|
177
|
-
And I define a metal response for "TestController#index":
|
178
|
-
"""
|
179
|
-
raise RuntimeError, "some message"
|
180
|
-
"""
|
181
|
-
And I route "/test/index" to "test#index"
|
182
|
-
And I perform a request to "http://example.com:123/test/index?param=value"
|
183
|
-
Then I should receive a Honeybadger notification
|
184
|
-
|
185
249
|
Scenario: Reporting 404s
|
186
250
|
When I configure my application to require Honeybadger
|
187
251
|
And I configure Honeybadger with:
|