bugsnag 6.12.0 → 6.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.yml +470 -0
  3. data/.rubocop.yml +55 -0
  4. data/.rubocop_todo.yml +530 -160
  5. data/CHANGELOG.md +67 -0
  6. data/CONTRIBUTING.md +1 -9
  7. data/Gemfile +14 -7
  8. data/TESTING.md +81 -0
  9. data/VERSION +1 -1
  10. data/docker-compose.yml +46 -0
  11. data/dockerfiles/Dockerfile.jruby-unit-tests +13 -0
  12. data/dockerfiles/Dockerfile.ruby-maze-runner +26 -0
  13. data/dockerfiles/Dockerfile.ruby-unit-tests +12 -0
  14. data/features/delayed_job.feature +6 -22
  15. data/features/fixtures/delayed_job/Dockerfile +2 -4
  16. data/features/fixtures/delayed_job/app/Gemfile +1 -1
  17. data/features/fixtures/delayed_job/app/Rakefile +18 -0
  18. data/features/fixtures/docker-compose.yml +28 -40
  19. data/features/fixtures/expected_breadcrumbs/active_job.json +9 -0
  20. data/features/fixtures/expected_breadcrumbs/mongo_failed.json +15 -0
  21. data/features/fixtures/expected_breadcrumbs/mongo_filtered_request.json +15 -0
  22. data/features/fixtures/expected_breadcrumbs/mongo_filtered_result.json +15 -0
  23. data/features/fixtures/expected_breadcrumbs/mongo_success.json +14 -0
  24. data/features/fixtures/expected_breadcrumbs/request.json +13 -0
  25. data/features/fixtures/expected_breadcrumbs/sql_with_bindings.json +12 -0
  26. data/features/fixtures/expected_breadcrumbs/sql_without_bindings.json +11 -0
  27. data/features/fixtures/plain/Dockerfile +2 -2
  28. data/features/fixtures/plain/app/app.rb +1 -3
  29. data/features/fixtures/plain/app/delivery/fork_threadpool.rb +3 -1
  30. data/features/fixtures/plain/app/unhandled/{Interrupt.rb → interrupt.rb} +0 -0
  31. data/features/fixtures/rack1/Dockerfile +2 -2
  32. data/features/fixtures/rack2/Dockerfile +2 -2
  33. data/features/fixtures/rails3/Dockerfile +2 -2
  34. data/features/fixtures/rails3/app/Gemfile +4 -0
  35. data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +3 -2
  36. data/features/fixtures/rails4/Dockerfile +2 -5
  37. data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +2 -1
  38. data/features/fixtures/rails5/Dockerfile +2 -2
  39. data/features/fixtures/rails5/app/Gemfile +3 -2
  40. data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +2 -1
  41. data/features/fixtures/rails6/Dockerfile +2 -2
  42. data/features/fixtures/rails6/app/Gemfile +3 -2
  43. data/features/fixtures/rails6/app/app/controllers/mongo_controller.rb +22 -0
  44. data/features/fixtures/rails6/app/app/models/mongo_model.rb +6 -0
  45. data/features/fixtures/rails6/app/config/environments/development.rb +2 -0
  46. data/features/fixtures/rails6/app/config/environments/production.rb +1 -0
  47. data/features/fixtures/rails6/app/config/environments/rails_env.rb +1 -0
  48. data/features/fixtures/rails6/app/config/environments/test.rb +1 -0
  49. data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +2 -1
  50. data/features/fixtures/rails6/app/config/mongoid.yml +23 -0
  51. data/features/fixtures/rails6/app/config/routes.rb +4 -0
  52. data/features/fixtures/resque/Dockerfile +2 -2
  53. data/features/fixtures/sidekiq/Dockerfile +5 -7
  54. data/features/fixtures/sidekiq/app/Gemfile +2 -1
  55. data/features/fixtures/sidekiq/app/Rakefile.rb +14 -0
  56. data/features/fixtures/sinatra1/Dockerfile +2 -2
  57. data/features/fixtures/sinatra2/Dockerfile +2 -2
  58. data/features/plain_features/add_tab.feature +24 -97
  59. data/features/plain_features/app_type.feature +6 -25
  60. data/features/plain_features/app_version.feature +6 -25
  61. data/features/plain_features/auto_notify.feature +4 -20
  62. data/features/plain_features/delivery.feature +12 -60
  63. data/features/plain_features/exception_data.feature +24 -94
  64. data/features/plain_features/filters.feature +9 -43
  65. data/features/plain_features/handled_errors.feature +16 -78
  66. data/features/plain_features/ignore_classes.feature +5 -23
  67. data/features/plain_features/ignore_report.feature +6 -24
  68. data/features/plain_features/proxies.feature +13 -56
  69. data/features/plain_features/release_stages.feature +9 -40
  70. data/features/plain_features/report_api_key.feature +9 -35
  71. data/features/plain_features/report_severity.feature +8 -35
  72. data/features/plain_features/report_stack_frames.feature +24 -92
  73. data/features/plain_features/report_user.feature +23 -96
  74. data/features/plain_features/unhandled_errors.feature +17 -88
  75. data/features/rails_features/api_key.feature +12 -58
  76. data/features/rails_features/app_type.feature +13 -58
  77. data/features/rails_features/app_version.feature +19 -80
  78. data/features/rails_features/auto_capture_sessions.feature +31 -112
  79. data/features/rails_features/auto_notify.feature +28 -105
  80. data/features/rails_features/before_notify.feature +18 -83
  81. data/features/rails_features/breadcrumbs.feature +40 -137
  82. data/features/rails_features/handled.feature +18 -82
  83. data/features/rails_features/ignore_classes.feature +12 -51
  84. data/features/rails_features/meta_data_filters.feature +9 -33
  85. data/features/rails_features/mongo_breadcrumbs.feature +22 -96
  86. data/features/rails_features/project_root.feature +19 -84
  87. data/features/rails_features/release_stage.feature +20 -82
  88. data/features/rails_features/send_code.feature +13 -55
  89. data/features/rails_features/send_environment.feature +7 -33
  90. data/features/rails_features/unhandled.feature +6 -31
  91. data/features/rails_features/user_info.feature +27 -65
  92. data/features/sidekiq.feature +12 -79
  93. data/features/steps/ruby_notifier_steps.rb +59 -15
  94. data/features/support/env.rb +12 -45
  95. data/lib/bugsnag.rb +74 -21
  96. data/lib/bugsnag/breadcrumbs/breadcrumbs.rb +0 -2
  97. data/lib/bugsnag/breadcrumbs/validator.rb +0 -6
  98. data/lib/bugsnag/cleaner.rb +129 -60
  99. data/lib/bugsnag/configuration.rb +31 -2
  100. data/lib/bugsnag/helpers.rb +2 -4
  101. data/lib/bugsnag/integrations/que.rb +7 -4
  102. data/lib/bugsnag/integrations/railtie.rb +1 -1
  103. data/lib/bugsnag/middleware/discard_error_class.rb +30 -0
  104. data/lib/bugsnag/middleware/exception_meta_data.rb +15 -9
  105. data/lib/bugsnag/middleware/ignore_error_class.rb +2 -0
  106. data/lib/bugsnag/middleware/rack_request.rb +2 -4
  107. data/lib/bugsnag/report.rb +3 -13
  108. data/lib/bugsnag/stacktrace.rb +6 -10
  109. data/spec/breadcrumbs/breadcrumb_spec.rb +1 -1
  110. data/spec/breadcrumbs/validator_spec.rb +1 -26
  111. data/spec/bugsnag_spec.rb +2 -2
  112. data/spec/cleaner_spec.rb +202 -10
  113. data/spec/configuration_spec.rb +16 -1
  114. data/spec/fixtures/apps/rails-initializer-config/Gemfile +5 -1
  115. data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +5 -1
  116. data/spec/fixtures/apps/rails-no-config/Gemfile +5 -1
  117. data/spec/helper_spec.rb +0 -31
  118. data/spec/integrations/logger_spec.rb +1 -1
  119. data/spec/integrations/rack_spec.rb +8 -6
  120. data/spec/integrations/rake_spec.rb +1 -1
  121. data/spec/report_spec.rb +324 -26
  122. data/spec/spec_helper.rb +6 -1
  123. data/spec/stacktrace_spec.rb +179 -72
  124. metadata +23 -7
  125. data/.travis.yml +0 -117
  126. data/features/plain_features/api_key.feature +0 -25
@@ -1,69 +1,24 @@
1
1
  Feature: App type configuration
2
2
 
3
- Background:
4
- Given I set environment variable "BUGSNAG_API_KEY" to "a35a2a72bd230ac0aa0f52715bbdc6aa"
5
- And I set environment variable "APP_PATH" to "/usr/src"
6
- And I configure the bugsnag endpoint
7
-
8
- Scenario Outline: Setting app_type in initializer works
9
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
10
- And I set environment variable "BUGSNAG_APP_TYPE" to "custom_app_type"
11
- And I start the service "rails<rails_version>"
12
- And I wait for the app to respond on port "6128<rails_version>"
13
- When I navigate to the route "/app_type/initializer" on port "6128<rails_version>"
14
- Then I should receive a request
15
- And the request is a valid for the error reporting API
16
- And the request used the "Ruby Bugsnag Notifier" notifier
17
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
18
- And the payload field "events" is an array with 1 element
3
+ @rails3 @rails4 @rails5 @rails6
4
+ Scenario: Setting app_type in initializer works
5
+ Given I set environment variable "BUGSNAG_APP_TYPE" to "custom_app_type"
6
+ And I start the rails service
7
+ When I navigate to the route "/app_type/initializer" on the rails app
8
+ And I wait to receive a request
9
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
19
10
  And the exception "errorClass" equals "RuntimeError"
20
11
  And the exception "message" starts with "handled string"
21
12
  And the event "metaData.request.url" ends with "/app_type/initializer"
22
13
  And the event "app.type" equals "custom_app_type"
23
14
 
24
- Examples:
25
- | ruby_version | rails_version |
26
- | 2.0 | 3 |
27
- | 2.1 | 3 |
28
- | 2.2 | 3 |
29
- | 2.2 | 4 |
30
- | 2.2 | 5 |
31
- | 2.3 | 3 |
32
- | 2.3 | 4 |
33
- | 2.3 | 5 |
34
- | 2.4 | 3 |
35
- | 2.4 | 5 |
36
- | 2.5 | 3 |
37
- | 2.5 | 5 |
38
- | 2.5 | 6 |
39
-
40
- Scenario Outline: Changing app_type after initializer works
41
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
42
- And I start the service "rails<rails_version>"
43
- And I wait for the app to respond on port "6128<rails_version>"
44
- When I navigate to the route "/app_type/after?type=maze_after_initializer" on port "6128<rails_version>"
45
- Then I should receive a request
46
- And the request is a valid for the error reporting API
47
- And the request used the "Ruby Bugsnag Notifier" notifier
48
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
49
- And the payload field "events" is an array with 1 element
15
+ @rails3 @rails4 @rails5 @rails6
16
+ Scenario: Changing app_type after initializer works
17
+ Given I start the rails service
18
+ When I navigate to the route "/app_type/after?type=maze_after_initializer" on the rails app
19
+ And I wait to receive a request
20
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
50
21
  And the exception "errorClass" equals "RuntimeError"
51
22
  And the exception "message" starts with "handled string"
52
23
  And the event "metaData.request.url" ends with "/app_type/after?type=maze_after_initializer"
53
24
  And the event "app.type" equals "maze_after_initializer"
54
-
55
- Examples:
56
- | ruby_version | rails_version |
57
- | 2.0 | 3 |
58
- | 2.1 | 3 |
59
- | 2.2 | 3 |
60
- | 2.2 | 4 |
61
- | 2.2 | 5 |
62
- | 2.3 | 3 |
63
- | 2.3 | 4 |
64
- | 2.3 | 5 |
65
- | 2.4 | 3 |
66
- | 2.4 | 5 |
67
- | 2.5 | 3 |
68
- | 2.5 | 5 |
69
- | 2.5 | 6 |
@@ -1,87 +1,26 @@
1
1
  Feature: App version configuration
2
2
 
3
- Background:
4
- Given I set environment variable "BUGSNAG_API_KEY" to "a35a2a72bd230ac0aa0f52715bbdc6aa"
5
- And I set environment variable "APP_PATH" to "/usr/src"
6
- And I configure the bugsnag endpoint
7
-
8
- Scenario Outline: App_version is nil by default
9
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
10
- And I start the service "rails<rails_version>"
11
- And I wait for the app to respond on port "6128<rails_version>"
12
- When I navigate to the route "/app_version/default" on port "6128<rails_version>"
13
- Then I should receive a request
14
- And the request is a valid for the error reporting API
15
- And the payload field "events" is an array with 1 element
3
+ @rails3 @rails4 @rails5 @rails6
4
+ Scenario: App_version is nil by default
5
+ Given I start the rails service
6
+ When I navigate to the route "/app_version/default" on the rails app
7
+ And I wait to receive a request
8
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
16
9
  And the event "app.version" is null
17
10
 
18
- Examples:
19
- | ruby_version | rails_version |
20
- | 2.0 | 3 |
21
- | 2.1 | 3 |
22
- | 2.2 | 3 |
23
- | 2.2 | 4 |
24
- | 2.2 | 5 |
25
- | 2.3 | 3 |
26
- | 2.3 | 4 |
27
- | 2.3 | 5 |
28
- | 2.4 | 3 |
29
- | 2.4 | 5 |
30
- | 2.5 | 3 |
31
- | 2.5 | 5 |
32
- | 2.5 | 6 |
33
-
34
- Scenario Outline: Setting app_version in initializer works
35
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
36
- And I set environment variable "BUGSNAG_APP_VERSION" to "1.0.0"
37
- And I start the service "rails<rails_version>"
38
- And I wait for the app to respond on port "6128<rails_version>"
39
- When I navigate to the route "/app_version/initializer" on port "6128<rails_version>"
40
- Then I should receive a request
41
- And the request is a valid for the error reporting API
42
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
43
- And the payload field "events" is an array with 1 element
11
+ @rails3 @rails4 @rails5 @rails6
12
+ Scenario: Setting app_version in initializer works
13
+ Given I set environment variable "BUGSNAG_APP_VERSION" to "1.0.0"
14
+ And I start the rails service
15
+ When I navigate to the route "/app_version/initializer" on the rails app
16
+ And I wait to receive a request
17
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
44
18
  And the event "app.version" equals "1.0.0"
45
19
 
46
- Examples:
47
- | ruby_version | rails_version |
48
- | 2.0 | 3 |
49
- | 2.1 | 3 |
50
- | 2.2 | 3 |
51
- | 2.2 | 4 |
52
- | 2.2 | 5 |
53
- | 2.3 | 3 |
54
- | 2.3 | 4 |
55
- | 2.3 | 5 |
56
- | 2.4 | 3 |
57
- | 2.4 | 5 |
58
- | 2.5 | 3 |
59
- | 2.5 | 5 |
60
- | 2.5 | 6 |
61
-
62
- Scenario Outline: Setting app_version after initializer works
63
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
64
- And I start the service "rails<rails_version>"
65
- And I wait for the app to respond on port "6128<rails_version>"
66
- When I navigate to the route "/app_version/after?version=1.1.0" on port "6128<rails_version>"
67
- Then I should receive a request
68
- And the request is a valid for the error reporting API
69
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
70
- And the payload field "events" is an array with 1 element
20
+ @rails3 @rails4 @rails5 @rails6
21
+ Scenario: Setting app_version after initializer works
22
+ Given I start the rails service
23
+ When I navigate to the route "/app_version/after?version=1.1.0" on the rails app
24
+ And I wait to receive a request
25
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
71
26
  And the event "app.version" equals "1.1.0"
72
-
73
- Examples:
74
- | ruby_version | rails_version |
75
- | 2.0 | 3 |
76
- | 2.1 | 3 |
77
- | 2.2 | 3 |
78
- | 2.2 | 4 |
79
- | 2.2 | 5 |
80
- | 2.3 | 3 |
81
- | 2.3 | 4 |
82
- | 2.3 | 5 |
83
- | 2.4 | 3 |
84
- | 2.4 | 5 |
85
- | 2.5 | 3 |
86
- | 2.5 | 5 |
87
- | 2.5 | 6 |
@@ -1,115 +1,34 @@
1
1
  Feature: Auto capture sessions
2
2
 
3
- Background:
4
- Given I set environment variable "BUGSNAG_API_KEY" to "a35a2a72bd230ac0aa0f52715bbdc6aa"
5
- And I set environment variable "APP_PATH" to "/usr/src"
6
- And I configure the bugsnag endpoint
7
-
8
- Scenario Outline: Auto_capture_sessions defaults to true
9
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
10
- And I set environment variable "USE_DEFAULT_AUTO_CAPTURE_SESSIONS" to "true"
11
- And I start the service "rails<rails_version>"
12
- And I wait for the app to respond on port "6128<rails_version>"
13
- When I navigate to the route "/session_tracking/initializer" on port "6128<rails_version>"
14
- Then I should receive a request
15
- And the request is a valid for the session tracking API
16
- And the request used the "Ruby Bugsnag Notifier" notifier
17
- And the "Bugsnag-API-Key" header equals "a35a2a72bd230ac0aa0f52715bbdc6aa"
18
- And the sessionCount "startedAt" is a timestamp
19
-
20
- Examples:
21
- | ruby_version | rails_version |
22
- | 2.0 | 3 |
23
- | 2.1 | 3 |
24
- | 2.2 | 3 |
25
- | 2.2 | 4 |
26
- | 2.2 | 5 |
27
- | 2.3 | 3 |
28
- | 2.3 | 4 |
29
- | 2.3 | 5 |
30
- | 2.4 | 3 |
31
- | 2.4 | 5 |
32
- | 2.5 | 3 |
33
- | 2.5 | 5 |
34
- | 2.5 | 6 |
35
-
36
- Scenario Outline: Auto_capture_sessions can be set to false in the initializer
37
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
38
- And I set environment variable "BUGSNAG_AUTO_CAPTURE_SESSIONS" to "false"
39
- And I start the service "rails<rails_version>"
40
- And I wait for the app to respond on port "6128<rails_version>"
41
- When I navigate to the route "/session_tracking/initializer" on port "6128<rails_version>"
42
- Then I should receive 0 requests
43
-
44
- Examples:
45
- | ruby_version | rails_version |
46
- | 2.0 | 3 |
47
- | 2.1 | 3 |
48
- | 2.2 | 3 |
49
- | 2.2 | 4 |
50
- | 2.2 | 5 |
51
- | 2.3 | 3 |
52
- | 2.3 | 4 |
53
- | 2.3 | 5 |
54
- | 2.4 | 3 |
55
- | 2.4 | 5 |
56
- | 2.5 | 3 |
57
- | 2.5 | 5 |
58
- | 2.5 | 6 |
59
-
60
- Scenario Outline: Manual sessions are still sent if Auto_capture_sessions is false
61
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
62
- And I set environment variable "BUGSNAG_AUTO_CAPTURE_SESSIONS" to "false"
63
- And I start the service "rails<rails_version>"
64
- And I wait for the app to respond on port "6128<rails_version>"
65
- When I navigate to the route "/session_tracking/manual" on port "6128<rails_version>"
66
- Then I should receive a request
67
- And the request is a valid for the session tracking API
68
- And the request used the "Ruby Bugsnag Notifier" notifier
69
- And the "Bugsnag-API-Key" header equals "a35a2a72bd230ac0aa0f52715bbdc6aa"
70
- And the sessionCount "startedAt" is a timestamp
71
-
72
- Examples:
73
- | ruby_version | rails_version |
74
- | 2.0 | 3 |
75
- | 2.1 | 3 |
76
- | 2.2 | 3 |
77
- | 2.2 | 4 |
78
- | 2.2 | 5 |
79
- | 2.3 | 3 |
80
- | 2.3 | 4 |
81
- | 2.3 | 5 |
82
- | 2.4 | 3 |
83
- | 2.4 | 5 |
84
- | 2.5 | 3 |
85
- | 2.5 | 5 |
86
- | 2.5 | 6 |
87
-
88
- Scenario Outline: 100 session calls results in 100 sessions
89
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
90
- And I set environment variable "BUGSNAG_AUTO_CAPTURE_SESSIONS" to "false"
91
- And I start the service "rails<rails_version>"
92
- And I wait for the app to respond on port "6128<rails_version>"
93
- When I navigate to the route "/session_tracking/multi_sessions" on port "6128<rails_version>"
94
- Then I should receive a request
95
- And the request is a valid for the session tracking API
96
- And the request used the "Ruby Bugsnag Notifier" notifier
97
- And the "Bugsnag-API-Key" header equals "a35a2a72bd230ac0aa0f52715bbdc6aa"
98
- And the sessionCount "startedAt" is a timestamp
3
+ @rails3 @rails4 @rails5 @rails6
4
+ Scenario: Auto_capture_sessions defaults to true
5
+ Given I set environment variable "USE_DEFAULT_AUTO_CAPTURE_SESSIONS" to "true"
6
+ And I start the rails service
7
+ When I navigate to the route "/session_tracking/initializer" on the rails app
8
+ And I wait to receive a request
9
+ Then the request is valid for the session reporting API version "1.0" for the "Ruby Bugsnag Notifier" notifier
10
+
11
+ @rails3 @rails4 @rails5 @rails6
12
+ Scenario: Auto_capture_sessions can be set to false in the initializer
13
+ Given I set environment variable "BUGSNAG_AUTO_CAPTURE_SESSIONS" to "false"
14
+ And I start the rails service
15
+ When I navigate to the route "/session_tracking/initializer" on the rails app
16
+ And I wait for 3 seconds
17
+ Then I should receive no requests
18
+
19
+ @rails3 @rails4 @rails5 @rails6
20
+ Scenario: Manual sessions are still sent if Auto_capture_sessions is false
21
+ Given I set environment variable "BUGSNAG_AUTO_CAPTURE_SESSIONS" to "false"
22
+ And I start the rails service
23
+ When I navigate to the route "/session_tracking/manual" on the rails app
24
+ And I wait to receive a request
25
+ Then the request is valid for the session reporting API version "1.0" for the "Ruby Bugsnag Notifier" notifier
26
+
27
+ @rails3 @rails4 @rails5 @rails6
28
+ Scenario: 100 session calls results in 100 sessions
29
+ Given I set environment variable "BUGSNAG_AUTO_CAPTURE_SESSIONS" to "false"
30
+ And I start the rails service
31
+ When I navigate to the route "/session_tracking/multi_sessions" on the rails app
32
+ And I wait to receive a request
33
+ Then the request is valid for the session reporting API version "1.0" for the "Ruby Bugsnag Notifier" notifier
99
34
  And the total sessionStarted count equals 100
100
-
101
- Examples:
102
- | ruby_version | rails_version |
103
- | 2.0 | 3 |
104
- | 2.1 | 3 |
105
- | 2.2 | 3 |
106
- | 2.2 | 4 |
107
- | 2.2 | 5 |
108
- | 2.3 | 3 |
109
- | 2.3 | 4 |
110
- | 2.3 | 5 |
111
- | 2.4 | 3 |
112
- | 2.4 | 5 |
113
- | 2.5 | 3 |
114
- | 2.5 | 5 |
115
- | 2.5 | 6 |
@@ -1,118 +1,41 @@
1
1
  Feature: Auto notify
2
2
 
3
- Background:
4
- Given I set environment variable "BUGSNAG_API_KEY" to "a35a2a72bd230ac0aa0f52715bbdc6aa"
5
- And I set environment variable "APP_PATH" to "/usr/src"
6
- And I configure the bugsnag endpoint
7
-
8
- Scenario Outline: Auto_notify set to false in the initializer prevents unhandled error sending
9
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
10
- And I set environment variable "BUGSNAG_AUTO_NOTIFY" to "false"
11
- And I start the service "rails<rails_version>"
12
- And I wait for the app to respond on port "6128<rails_version>"
13
- When I navigate to the route "/auto_notify/unhandled" on port "6128<rails_version>"
14
- Then I should receive 0 requests
15
-
16
- Examples:
17
- | ruby_version | rails_version |
18
- | 2.0 | 3 |
19
- | 2.1 | 3 |
20
- | 2.2 | 3 |
21
- | 2.2 | 4 |
22
- | 2.2 | 5 |
23
- | 2.3 | 3 |
24
- | 2.3 | 4 |
25
- | 2.3 | 5 |
26
- | 2.4 | 3 |
27
- | 2.4 | 5 |
28
- | 2.5 | 3 |
29
- | 2.5 | 5 |
30
- | 2.5 | 6 |
31
-
32
- Scenario Outline: Auto_notify set to false in the initializer still sends handled errors
33
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
34
- And I set environment variable "BUGSNAG_AUTO_NOTIFY" to "false"
35
- And I start the service "rails<rails_version>"
36
- And I wait for the app to respond on port "6128<rails_version>"
37
- When I navigate to the route "/auto_notify/handled" on port "6128<rails_version>"
38
- Then I should receive a request
39
- And the request is a valid for the error reporting API
40
- And the request used the "Ruby Bugsnag Notifier" notifier
41
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
42
- And the payload field "events" is an array with 1 element
3
+ @rails3 @rails4 @rails5 @rails6
4
+ Scenario: Auto_notify set to false in the initializer prevents unhandled error sending
5
+ Given I set environment variable "BUGSNAG_AUTO_NOTIFY" to "false"
6
+ And I start the rails service
7
+ When I navigate to the route "/auto_notify/unhandled" on the rails app
8
+ And I wait for 3 seconds
9
+ Then I should receive no requests
10
+
11
+ @rails3 @rails4 @rails5 @rails6
12
+ Scenario: Auto_notify set to false in the initializer still sends handled errors
13
+ Given I set environment variable "BUGSNAG_AUTO_NOTIFY" to "false"
14
+ And I start the rails service
15
+ When I navigate to the route "/auto_notify/handled" on the rails app
16
+ And I wait to receive a request
17
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
43
18
  And the event "unhandled" is false
44
19
  And the exception "errorClass" equals "RuntimeError"
45
20
  And the exception "message" starts with "handled string"
46
21
  And the event "app.type" equals "rails"
47
22
  And the event "metaData.request.url" ends with "/auto_notify/handled"
48
23
 
49
- Examples:
50
- | ruby_version | rails_version |
51
- | 2.0 | 3 |
52
- | 2.1 | 3 |
53
- | 2.2 | 3 |
54
- | 2.2 | 4 |
55
- | 2.2 | 5 |
56
- | 2.3 | 3 |
57
- | 2.3 | 4 |
58
- | 2.3 | 5 |
59
- | 2.4 | 3 |
60
- | 2.4 | 5 |
61
- | 2.5 | 3 |
62
- | 2.5 | 5 |
63
- | 2.5 | 6 |
64
-
65
- Scenario Outline: Auto_notify set to false after the initializer prevents unhandled error sending
66
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
67
- And I start the service "rails<rails_version>"
68
- And I wait for the app to respond on port "6128<rails_version>"
69
- When I navigate to the route "/auto_notify/unhandled_after" on port "6128<rails_version>"
70
- Then I should receive 0 requests
71
-
72
- Examples:
73
- | ruby_version | rails_version |
74
- | 2.0 | 3 |
75
- | 2.1 | 3 |
76
- | 2.2 | 3 |
77
- | 2.2 | 4 |
78
- | 2.2 | 5 |
79
- | 2.3 | 3 |
80
- | 2.3 | 4 |
81
- | 2.3 | 5 |
82
- | 2.4 | 3 |
83
- | 2.4 | 5 |
84
- | 2.5 | 3 |
85
- | 2.5 | 5 |
86
- | 2.5 | 6 |
87
-
88
- Scenario Outline: Auto_notify set to false after the initializer still sends handled errors
89
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
90
- And I start the service "rails<rails_version>"
91
- And I wait for the app to respond on port "6128<rails_version>"
92
- When I navigate to the route "/auto_notify/handled_after" on port "6128<rails_version>"
93
- Then I should receive a request
94
- And the request is a valid for the error reporting API
95
- And the request used the "Ruby Bugsnag Notifier" notifier
96
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
97
- And the payload field "events" is an array with 1 element
24
+ @rails3 @rails4 @rails5 @rails6
25
+ Scenario: Auto_notify set to false after the initializer prevents unhandled error sending
26
+ Given I start the rails service
27
+ When I navigate to the route "/auto_notify/unhandled_after" on the rails app
28
+ And I wait for 3 seconds
29
+ Then I should receive no requests
30
+
31
+ @rails3 @rails4 @rails5 @rails6
32
+ Scenario: Auto_notify set to false after the initializer still sends handled errors
33
+ Given I start the rails service
34
+ When I navigate to the route "/auto_notify/handled_after" on the rails app
35
+ And I wait to receive a request
36
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
98
37
  And the exception "errorClass" equals "RuntimeError"
99
38
  And the exception "message" starts with "handled string"
100
39
  And the event "unhandled" is false
101
40
  And the event "metaData.request.url" ends with "/auto_notify/handled_after"
102
41
  And the event "app.type" equals "rails"
103
-
104
- Examples:
105
- | ruby_version | rails_version |
106
- | 2.0 | 3 |
107
- | 2.1 | 3 |
108
- | 2.2 | 3 |
109
- | 2.2 | 4 |
110
- | 2.2 | 5 |
111
- | 2.3 | 3 |
112
- | 2.3 | 4 |
113
- | 2.3 | 5 |
114
- | 2.4 | 3 |
115
- | 2.4 | 5 |
116
- | 2.5 | 3 |
117
- | 2.5 | 5 |
118
- | 2.5 | 6 |