features/rails.feature in airbrake-3.1.0 vs features/rails.feature in airbrake-3.1.1
- old
+ new
@@ -1,22 +1,21 @@
Feature: Install the Gem in a Rails application
Background:
Given I have built and installed the "airbrake" gem
+ And I generate a new Rails application
Scenario: Use the gem without vendoring the gem in a Rails application
- When I generate a new Rails application
- And I configure the Airbrake shim
+ When I configure the Airbrake shim
And I configure my application to require the "airbrake" gem
And I run the airbrake generator with "-k myapikey"
Then the command should have run successfully
And I should receive a Airbrake notification
And I should see the Rails version
Scenario: vendor the gem and uninstall
- When I generate a new Rails application
- And I configure the Airbrake shim
+ When I configure the Airbrake shim
And I configure my application to require the "airbrake" gem
And I unpack the "airbrake" gem
And I run the airbrake generator with "-k myapikey"
Then the command should have run successfully
When I uninstall the "airbrake" gem
@@ -24,22 +23,19 @@
And I run "rake airbrake:test"
Then I should see "** [Airbrake] Response from Airbrake:"
And I should receive two Airbrake notifications
Scenario: Configure the notifier by hand
- When I generate a new Rails application
- And I configure the Airbrake shim
+ When I configure the Airbrake shim
And I configure the notifier to use "myapikey" as an API key
And I configure my application to require the "airbrake" gem
And I run the airbrake generator with ""
Then I should receive a Airbrake notification
Scenario: Configuration within initializer isn't overridden by Railtie
- When I generate a new Rails application
- And I configure the Airbrake shim
- And I configure my application to require the "airbrake" gem
- And I run the airbrake generator with "-k myapikey"
+ When I configure the Airbrake shim
+ And I configure usage of Airbrake
Then the command should have run successfully
When I configure the notifier to use the following configuration lines:
"""
config.api_key = "myapikey"
config.project_root = "argle/bargle"
@@ -52,28 +48,25 @@
And I route "/test/index" to "test#index"
And I perform a request to "http://example.com:123/test/index?param=value"
Then I should receive a Airbrake notification
Scenario: Try to install without an api key
- When I generate a new Rails application
- And I configure my application to require the "airbrake" gem
+ When I configure my application to require the "airbrake" gem
And I run the airbrake generator with ""
Then I should see "Must pass --api-key or --heroku or create config/initializers/airbrake.rb"
Scenario: Configure and deploy using only installed gem
- When I generate a new Rails application
- And I run "capify ."
+ When I run "capify ."
And I configure the Airbrake shim
And I configure my application to require the "airbrake" gem
And I run the airbrake generator with "-k myapikey"
And I configure my application to require the "capistrano" gem if necessary
And I run "cap -T"
Then I should see "airbrake:deploy"
Scenario: Configure and deploy using only vendored gem
- When I generate a new Rails application
- And I run "capify ."
+ When I run "capify ."
And I configure the Airbrake shim
And I configure my application to require the "airbrake" gem
And I unpack the "airbrake" gem
And I run the airbrake generator with "-k myapikey"
And I uninstall the "airbrake" gem
@@ -81,52 +74,46 @@
And I configure my application to require the "capistrano" gem if necessary
And I run "cap -T"
Then I should see "airbrake:deploy"
Scenario: Try to install when the airbrake plugin still exists
- When I generate a new Rails application
- And I install the "airbrake" plugin
+ When I install the "airbrake" plugin
And I configure the Airbrake shim
And I configure the notifier to use "myapikey" as an API key
And I configure my application to require the "airbrake" gem
And I run the airbrake generator with ""
Then I should see "You must first remove the airbrake plugin. Please run: script/plugin remove airbrake"
Scenario: Rescue an exception in a controller
- When I generate a new Rails application
- And I configure the Airbrake shim
- And I configure my application to require the "airbrake" gem
- And I run the airbrake generator with "-k myapikey"
+ When I configure the Airbrake shim
+ And I configure usage of Airbrake
And I define a response for "TestController#index":
"""
session[:value] = "test"
raise RuntimeError, "some message"
"""
And I route "/test/index" to "test#index"
And I perform a request to "http://example.com:123/test/index?param=value"
Then I should receive a Airbrake notification
Scenario: The gem should not be considered a framework gem
- When I generate a new Rails application
- And I configure the Airbrake shim
+ When I configure the Airbrake shim
And I configure my application to require the "airbrake" gem
And I run the airbrake generator with "-k myapikey"
And I run "rake gems"
Then I should see that "airbrake" is not considered a framework gem
Scenario: The app uses Vlad instead of Capistrano
- When I generate a new Rails application
- And I configure the Airbrake shim
+ When I configure the Airbrake shim
And I configure my application to require the "airbrake" gem
And I run "touch config/deploy.rb"
And I run "rm Capfile"
And I run the airbrake generator with "-k myapikey"
Then "config/deploy.rb" should not contain "capistrano"
Scenario: Support the Heroku addon in the generator
- When I generate a new Rails application
- And I configure the Airbrake shim
+ When I configure the Airbrake shim
And I configure the Heroku rake shim
And I configure the Heroku gem shim with "myapikey"
And I configure my application to require the "airbrake" gem
And I run the airbrake generator with "--heroku"
Then the command should have run successfully
@@ -136,12 +123,11 @@
"""
config.api_key = ENV['HOPTOAD_API_KEY']
"""
Scenario: Support the --app option for the Heroku addon in the generator
- When I generate a new Rails application
- And I configure the Airbrake shim
+ When I configure the Airbrake shim
And I configure the Heroku rake shim
And I configure the Heroku gem shim with "myapikey" and multiple app support
And I configure my application to require the "airbrake" gem
And I run the airbrake generator with "--heroku -a myapp"
Then the command should have run successfully
@@ -151,14 +137,12 @@
"""
config.api_key = ENV['HOPTOAD_API_KEY']
"""
Scenario: Filtering parameters in a controller
- When I generate a new Rails application
- And I configure the Airbrake shim
- And I configure my application to require the "airbrake" gem
- And I run the airbrake generator with "-k myapikey"
+ When I configure the Airbrake shim
+ And I configure usage of Airbrake
When I configure the notifier to use the following configuration lines:
"""
config.api_key = "myapikey"
config.params_filters << "credit_card_number"
"""
@@ -170,14 +154,12 @@
And I route "/test/index" to "test#index"
And I perform a request to "http://example.com:123/test/index?param=value"
Then I should receive a Airbrake notification
Scenario: Filtering session in a controller
- When I generate a new Rails application
- And I configure the Airbrake shim
- And I configure my application to require the "airbrake" gem
- And I run the airbrake generator with "-k myapikey"
+ When I configure the Airbrake shim
+ And I configure usage of Airbrake
When I configure the notifier to use the following configuration lines:
"""
config.api_key = "myapikey"
config.params_filters << "secret"
"""
@@ -189,14 +171,12 @@
And I route "/test/index" to "test#index"
And I perform a request to "http://example.com:123/test/index?param=value"
Then I should receive a Airbrake notification
Scenario: Filtering session and params based on Rails parameter filters
- When I generate a new Rails application
- And I configure the Airbrake shim
- And I configure my application to require the "airbrake" gem
- And I run the airbrake generator with "-k myapikey"
+ When I configure the Airbrake shim
+ And I configure usage of Airbrake
And I configure the application to filter parameter "secret"
And I define a response for "TestController#index":
"""
params["secret"] = "red23"
session["secret"] = "blue42"
@@ -205,18 +185,23 @@
And I route "/test/index" to "test#index"
And I perform a request to "http://example.com:123/test/index?param=value"
Then I should receive a Airbrake notification
Scenario: Notify airbrake within the controller
- When I generate a new Rails application
- And I configure the Airbrake shim
- And I configure my application to require the "airbrake" gem
- And I run the airbrake generator with "-k myapikey"
+ When I configure the Airbrake shim
+ And I configure usage of Airbrake
And I define a response for "TestController#index":
"""
session[:value] = "test"
notify_airbrake(RuntimeError.new("some message"))
render :nothing => true
"""
And I route "/test/index" to "test#index"
And I perform a request to "http://example.com:123/test/index?param=value"
Then I should receive a Airbrake notification
+
+ Scenario: Reporting 404s
+ When I configure the Airbrake shim
+ And I configure usage of Airbrake
+ And I perform a request to "http://example.com:123/this/route/does/not/exist"
+ And I should see "The page you were looking for doesn't exist."
+ And I should receive a Airbrake notification