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,40 +1,16 @@
1
1
  Feature: Metadata filters
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: Meta_data_filters should include Rails.configuration.filter_parameters
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 "/metadata_filters/filter" 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 request used the "Ruby Bugsnag Notifier" notifier
16
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
17
- And the payload field "events" is an array with 1 element
3
+ @rails3 @rails4 @rails5 @rails6
4
+ Scenario: Meta_data_filters should include Rails.configuration.filter_parameters
5
+ Given I start the rails service
6
+ When I navigate to the route "/metadata_filters/filter?filtered_parameter=foo&other_parameter=bar" 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"
18
9
  And the event "unhandled" is false
19
10
  And the exception "errorClass" equals "RuntimeError"
20
11
  And the exception "message" starts with "handled string"
21
12
  And the event "app.type" equals "rails"
22
- And the event "metaData.request.url" ends with "/metadata_filters/filter"
13
+ And the event "metaData.request.url" ends with "/metadata_filters/filter?filtered_parameter=[FILTERED]&other_parameter=bar"
23
14
  And the event "metaData.my_specific_filter" equals "[FILTERED]"
24
-
25
-
26
- Examples:
27
- | ruby_version | rails_version |
28
- | 2.0 | 3 |
29
- | 2.1 | 3 |
30
- | 2.2 | 3 |
31
- | 2.2 | 4 |
32
- | 2.2 | 5 |
33
- | 2.3 | 3 |
34
- | 2.3 | 4 |
35
- | 2.3 | 5 |
36
- | 2.4 | 3 |
37
- | 2.4 | 5 |
38
- | 2.5 | 3 |
39
- | 2.5 | 5 |
40
- | 2.5 | 6 |
15
+ And the event "metaData.request.params.filtered_parameter" equals "[FILTERED]"
16
+ And the event "metaData.request.params.other_parameter" equals "bar"
@@ -1,100 +1,26 @@
1
1
  Feature: Mongo automatic breadcrumbs
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
3
+ @rails4 @rails5 @rails6
4
+ Scenario: Successful breadcrumbs
5
+ Given I start the rails service
6
+ When I navigate to the route "/mongo/success_crash" 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"
9
+ And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/expected_breadcrumbs/mongo_success.json"
7
10
 
8
- Scenario Outline: Successful breadcrumbs
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 "/mongo/success_crash" 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 request used the "Ruby Bugsnag Notifier" notifier
16
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
17
- And the event has a "process" breadcrumb named "Mongo query succeeded"
18
- And the event "breadcrumbs.1.timestamp" is a timestamp
19
- And the event "breadcrumbs.1.metaData.event_name" equals "mongo.succeeded"
20
- And the event "breadcrumbs.1.metaData.command_name" equals "insert"
21
- And the event "breadcrumbs.1.metaData.database_name" equals "rails<rails_version>_development"
22
- And the event "breadcrumbs.1.metaData.operation_id" is not null
23
- And the event "breadcrumbs.1.metaData.request_id" is not null
24
- And the event "breadcrumbs.1.metaData.duration" is not null
25
- And the event "breadcrumbs.1.metaData.collection" equals "mongo_models"
11
+ @rails4 @rails5 @rails6
12
+ Scenario: Breadcrumb with filter parameters
13
+ Given I start the rails service
14
+ When I navigate to the route "/mongo/get_crash" on the rails app
15
+ And I wait to receive a request
16
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
17
+ And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/expected_breadcrumbs/mongo_filtered_request.json"
18
+ And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/expected_breadcrumbs/mongo_filtered_result.json"
26
19
 
27
- Examples:
28
- | ruby_version | rails_version |
29
- | 2.2 | 4 |
30
- | 2.2 | 5 |
31
- | 2.3 | 4 |
32
- | 2.3 | 5 |
33
- | 2.4 | 5 |
34
- | 2.5 | 5 |
35
-
36
- Scenario Outline: Breadcrumb with filter parameters
37
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
38
- And I start the service "rails<rails_version>"
39
- And I wait for the app to respond on port "6128<rails_version>"
40
- When I navigate to the route "/mongo/get_crash" on port "6128<rails_version>"
41
- Then I should receive a request
42
- And the request is a valid for the error reporting API
43
- And the request used the "Ruby Bugsnag Notifier" notifier
44
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
45
- And the event has a "process" breadcrumb named "Mongo query succeeded"
46
- And the event "breadcrumbs.1.timestamp" is a timestamp
47
- And the event "breadcrumbs.1.metaData.event_name" equals "mongo.succeeded"
48
- And the event "breadcrumbs.1.metaData.command_name" equals "find"
49
- And the event "breadcrumbs.1.metaData.database_name" equals "rails<rails_version>_development"
50
- And the event "breadcrumbs.1.metaData.operation_id" is not null
51
- And the event "breadcrumbs.1.metaData.request_id" is not null
52
- And the event "breadcrumbs.1.metaData.duration" is not null
53
- And the event "breadcrumbs.1.metaData.collection" equals "mongo_models"
54
- And the event "breadcrumbs.1.metaData.filter" equals "{"string_field":"?"}"
55
- And the event "breadcrumbs.2.timestamp" is a timestamp
56
- And the event "breadcrumbs.2.metaData.event_name" equals "mongo.succeeded"
57
- And the event "breadcrumbs.2.metaData.command_name" equals "find"
58
- And the event "breadcrumbs.2.metaData.database_name" equals "rails<rails_version>_development"
59
- And the event "breadcrumbs.2.metaData.operation_id" is not null
60
- And the event "breadcrumbs.2.metaData.request_id" is not null
61
- And the event "breadcrumbs.2.metaData.duration" is not null
62
- And the event "breadcrumbs.2.metaData.collection" equals "mongo_models"
63
- And the event "breadcrumbs.2.metaData.filter" equals "{"$or":[{"string_field":"?"},{"numeric_field":"?"}]}"
64
-
65
- Examples:
66
- | ruby_version | rails_version |
67
- | 2.2 | 4 |
68
- | 2.2 | 5 |
69
- | 2.3 | 4 |
70
- | 2.3 | 5 |
71
- | 2.4 | 5 |
72
- | 2.5 | 5 |
73
-
74
- Scenario Outline: Failure breadcrumbs
75
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
76
- And I start the service "rails<rails_version>"
77
- And I wait for the app to respond on port "6128<rails_version>"
78
- When I navigate to the route "/mongo/failure_crash" on port "6128<rails_version>"
79
- Then I should receive a request
80
- And the request is a valid for the error reporting API
81
- And the request used the "Ruby Bugsnag Notifier" notifier
82
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
83
- And the event has a "process" breadcrumb named "Mongo query failed"
84
- And the event "breadcrumbs.1.timestamp" is a timestamp
85
- And the event "breadcrumbs.1.metaData.event_name" equals "mongo.failed"
86
- And the event "breadcrumbs.1.metaData.command_name" equals "bogus"
87
- And the event "breadcrumbs.1.metaData.database_name" equals "rails<rails_version>_development"
88
- And the event "breadcrumbs.1.metaData.operation_id" is not null
89
- And the event "breadcrumbs.1.metaData.request_id" is not null
90
- And the event "breadcrumbs.1.metaData.duration" is not null
91
- And the event "breadcrumbs.1.metaData.collection" equals 1
92
-
93
- Examples:
94
- | ruby_version | rails_version |
95
- | 2.2 | 4 |
96
- | 2.2 | 5 |
97
- | 2.3 | 4 |
98
- | 2.3 | 5 |
99
- | 2.4 | 5 |
100
- | 2.5 | 5 |
20
+ @rails4 @rails5 @rails6
21
+ Scenario: Failure breadcrumbs
22
+ Given I start the rails service
23
+ When I navigate to the route "/mongo/failure_crash" 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"
26
+ And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/expected_breadcrumbs/mongo_failed.json"
@@ -1,100 +1,35 @@
1
1
  Feature: Project root 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: Project_root should default to Rails.root
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 "/project_root/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 request used the "Ruby Bugsnag Notifier" notifier
16
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
17
- And the payload field "events" is an array with 1 element
3
+ @rails3 @rails4 @rails5 @rails6
4
+ Scenario: Project_root should default to Rails.root
5
+ Given I start the rails service
6
+ When I navigate to the route "/project_root/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"
18
9
  And the exception "errorClass" equals "RuntimeError"
19
10
  And the exception "message" starts with "handled string"
20
11
  And the event "metaData.request.url" ends with "/project_root/default"
21
12
  And the "file" of the top non-bugsnag stackframe equals "app/controllers/project_root_controller.rb"
22
13
 
23
- Examples:
24
- | ruby_version | rails_version |
25
- | 2.0 | 3 |
26
- | 2.1 | 3 |
27
- | 2.2 | 3 |
28
- | 2.2 | 4 |
29
- | 2.2 | 5 |
30
- | 2.3 | 3 |
31
- | 2.3 | 4 |
32
- | 2.3 | 5 |
33
- | 2.4 | 3 |
34
- | 2.4 | 5 |
35
- | 2.5 | 3 |
36
- | 2.5 | 5 |
37
- | 2.5 | 6 |
38
-
39
- Scenario Outline: Project_root can be set in an initializer
40
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
41
- And I set environment variable "BUGSNAG_PROJECT_ROOT" to "/foo/bar"
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 "/project_root/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
14
+ @rails3 @rails4 @rails5 @rails6
15
+ Scenario: Project_root can be set in an initializer
16
+ Given I set environment variable "BUGSNAG_PROJECT_ROOT" to "/foo/bar"
17
+ And I start the rails service
18
+ When I navigate to the route "/project_root/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 "/project_root/initializer"
53
24
  And the "file" of the top non-bugsnag stackframe equals "/usr/src/app/controllers/project_root_controller.rb"
54
25
 
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 |
70
-
71
- Scenario Outline: Project_root can be set after an initializer
72
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
73
- And I start the service "rails<rails_version>"
74
- And I wait for the app to respond on port "6128<rails_version>"
75
- When I navigate to the route "/project_root/after" on port "6128<rails_version>"
76
- Then I should receive a request
77
- And the request is a valid for the error reporting API
78
- And the request used the "Ruby Bugsnag Notifier" notifier
79
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
80
- And the payload field "events" is an array with 1 element
26
+ @rails3 @rails4 @rails5 @rails6
27
+ Scenario: Project_root can be set after an initializer
28
+ Given I start the rails service
29
+ When I navigate to the route "/project_root/after" on the rails app
30
+ And I wait to receive a request
31
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
81
32
  And the exception "errorClass" equals "RuntimeError"
82
33
  And the exception "message" starts with "handled string"
83
34
  And the event "metaData.request.url" ends with "/project_root/after"
84
35
  And the "file" of the top non-bugsnag stackframe equals "/usr/src/app/controllers/project_root_controller.rb"
85
-
86
- Examples:
87
- | ruby_version | rails_version |
88
- | 2.0 | 3 |
89
- | 2.1 | 3 |
90
- | 2.2 | 3 |
91
- | 2.2 | 4 |
92
- | 2.2 | 5 |
93
- | 2.3 | 3 |
94
- | 2.3 | 4 |
95
- | 2.3 | 5 |
96
- | 2.4 | 3 |
97
- | 2.4 | 5 |
98
- | 2.5 | 3 |
99
- | 2.5 | 5 |
100
- | 2.5 | 6 |
@@ -1,89 +1,27 @@
1
1
  Feature: Release stage
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: Release_stage should default to RAILS_ENV
9
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
10
- And I set environment variable "RAILS_ENV" to "rails_env"
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 "/release_stage/default" 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 contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
17
- And the payload field "events" is an array with 1 element
3
+ @rails3 @rails4 @rails5 @rails6
4
+ Scenario: Release_stage should default to RAILS_ENV
5
+ Given I set environment variable "RAILS_ENV" to "rails_env"
6
+ And I start the rails service
7
+ When I navigate to the route "/release_stage/default" 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"
18
10
  And the event "app.releaseStage" equals "rails_env"
19
11
 
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: Release_stage can be set in an initializer
37
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
38
- And I set environment variable "BUGSNAG_RELEASE_STAGE" to "maze_release_stage_env"
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 "/release_stage/default" 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
12
+ @rails3 @rails4 @rails5 @rails6
13
+ Scenario: Release_stage can be set in an initializer
14
+ Given I set environment variable "BUGSNAG_RELEASE_STAGE" to "maze_release_stage_env"
15
+ And I start the rails service
16
+ When I navigate to the route "/release_stage/default" on the rails app
17
+ And I wait to receive a request
18
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
46
19
  And the event "app.releaseStage" equals "maze_release_stage_env"
47
20
 
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
-
64
- Scenario Outline: Release_stage can be set after an initializer
65
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
66
- And I start the service "rails<rails_version>"
67
- And I wait for the app to respond on port "6128<rails_version>"
68
- When I navigate to the route "/release_stage/after?stage=set_after_env" on port "6128<rails_version>"
69
- Then I should receive a request
70
- And the request is a valid for the error reporting API
71
- And the request contained the api key "a35a2a72bd230ac0aa0f52715bbdc6aa"
72
- And the payload field "events" is an array with 1 element
21
+ @rails3 @rails4 @rails5 @rails6
22
+ Scenario: Release_stage can be set after an initializer
23
+ Given I start the rails service
24
+ When I navigate to the route "/release_stage/after?stage=set_after_env" on the rails app
25
+ And I wait to receive a request
26
+ Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
73
27
  And the event "app.releaseStage" equals "set_after_env"
74
-
75
- Examples:
76
- | ruby_version | rails_version |
77
- | 2.0 | 3 |
78
- | 2.1 | 3 |
79
- | 2.2 | 3 |
80
- | 2.2 | 4 |
81
- | 2.2 | 5 |
82
- | 2.3 | 3 |
83
- | 2.3 | 4 |
84
- | 2.3 | 5 |
85
- | 2.4 | 3 |
86
- | 2.4 | 5 |
87
- | 2.5 | 3 |
88
- | 2.5 | 5 |
89
- | 2.5 | 6 |
@@ -1,60 +1,18 @@
1
1
  Feature: Send code
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: Send_code can be updated in an initializer
9
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
10
- And I set environment variable "BUGSNAG_SEND_CODE" 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 "/send_code/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 payload field "events" is an array with 1 element
3
+ @rails3 @rails4 @rails5 @rails6
4
+ Scenario: Send_code can be updated in an initializer
5
+ Given I set environment variable "BUGSNAG_SEND_CODE" to "false"
6
+ And I start the rails service
7
+ When I navigate to the route "/send_code/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"
17
10
  And the event "exceptions.0.stacktrace.0.code" is null
18
11
 
19
- Examples:
20
- | ruby_version | rails_version |
21
- | 2.0 | 3 |
22
- | 2.1 | 3 |
23
- | 2.2 | 3 |
24
- | 2.2 | 4 |
25
- | 2.2 | 5 |
26
- | 2.3 | 3 |
27
- | 2.3 | 4 |
28
- | 2.3 | 5 |
29
- | 2.4 | 3 |
30
- | 2.4 | 5 |
31
- | 2.5 | 3 |
32
- | 2.5 | 5 |
33
- | 2.5 | 6 |
34
-
35
- Scenario Outline: Send_code can be updated after an initializer
36
- Given I set environment variable "RUBY_VERSION" to "<ruby_version>"
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 "/send_code/after" 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
12
+ @rails3 @rails4 @rails5 @rails6
13
+ Scenario: Send_code can be updated after an initializer
14
+ Given I start the rails service
15
+ When I navigate to the route "/send_code/after" 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 "exceptions.0.stacktrace.0.code" is null
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 |