bugsnag 6.12.2 → 6.13.0

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