-
Notifications
You must be signed in to change notification settings - Fork 173
/
integrations.feature
245 lines (229 loc) · 12.6 KB
/
integrations.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
Feature: App type is set correctly for integrations in a Rails app
Background:
Given I start the rails service
And I run the "db:prepare" rake task in the rails app
And I run the "db:migrate" rake task in the rails app
@rails_integrations
Scenario: Delayed job
When I run the "jobs:work" rake task in the rails app
And I run "User.new.delay.raise_the_roof" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "severity" equals "error"
And the event "context" equals "User#raise_the_roof"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "DelayedJob"
And the event "app.type" equals "delayed_job"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.job.class" equals "Delayed::Backend::ActiveRecord::Job"
And the event "metaData.job.id" is not null
And the event "metaData.job.attempt" equals 1
And the event "metaData.job.max_attempts" equals 25
And the event "metaData.job.payload.display_name" equals "User#raise_the_roof"
And the event "metaData.job.payload.method_name" equals "raise_the_roof"
@rails_integrations
Scenario: Mailman
When I run "./run_mailman" in the rails app
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "context" is null
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Mailman"
And the event "app.type" equals "mailman"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.mailman.message" starts with "Date: Mon, 04 Feb 2019 17:54:01 +0000"
@rails_integrations
Scenario: Que
When I run "bundle exec que ./config/environment.rb" in the rails app
And I run "QueJob.enqueue" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Que"
And the event "app.type" equals "que"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.job.job_id" equals 1
And the event "metaData.job.job_class" equals "QueJob"
@rails_integrations
Scenario: Rake
When I run the "rake_task:raise" rake task in the rails app
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Rake"
And the event "app.type" equals "rake"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.rake_task.name" equals "rake_task:raise"
And the event "metaData.rake_task.description" is null
And the event "metaData.rake_task.arguments" is null
@rails_integrations
Scenario: Resque (no on_exit hooks)
When I run "bundle exec rake resque:work" in the rails app
And I run "Resque.enqueue(ResqueWorker)" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "context" equals "ResqueWorker@crash"
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Resque"
And the event "app.type" equals "resque"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.config.delivery_method" equals "synchronous"
And the event "metaData.context" equals "ResqueWorker@crash"
And the event "metaData.payload.class" equals "ResqueWorker"
And the event "metaData.rake_task.name" equals "resque:work"
And the event "metaData.rake_task.description" equals "Start a Resque worker"
And the event "metaData.rake_task.arguments" is null
@rails_integrations
Scenario: Resque (with on_exit hooks)
Given I set environment variable "RUN_AT_EXIT_HOOKS" to "1"
When I run "bundle exec rake resque:work" in the rails app
And I run "Resque.enqueue(ResqueWorker)" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "context" equals "ResqueWorker@crash"
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Resque"
And the event "app.type" equals "resque"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.config.delivery_method" equals "thread_queue"
And the event "metaData.context" equals "ResqueWorker@crash"
And the event "metaData.payload.class" equals "ResqueWorker"
And the event "metaData.rake_task.name" equals "resque:work"
And the event "metaData.rake_task.description" equals "Start a Resque worker"
And the event "metaData.rake_task.arguments" is null
@rails_integrations
Scenario: Sidekiq
When I run "bundle exec sidekiq" in the rails app
And I run "SidekiqWorker.perform_async" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "context" equals "SidekiqWorker@default"
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Sidekiq"
And the event "app.type" equals "sidekiq"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.sidekiq.msg.queue" equals "default"
And the event "metaData.sidekiq.msg.class" equals "SidekiqWorker"
And the event "metaData.sidekiq.queue" equals "default"
@rails_integrations
Scenario: Using Sidekiq as the Active Job queue adapter for a job that raises
When I set environment variable "ACTIVE_JOB_QUEUE_ADAPTER" to "sidekiq"
And I run "bundle exec sidekiq" in the rails app
And I run "UnhandledJob.perform_later(1, yes: true)" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "context" equals "UnhandledJob@default"
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Sidekiq"
And the event "app.type" equals "sidekiq"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.active_job" is null
And the event "metaData.sidekiq.msg.queue" equals "default"
And the event "metaData.sidekiq.msg.class" equals "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
And the event "metaData.sidekiq.msg.wrapped" equals "UnhandledJob"
And the event "metaData.sidekiq.msg.args.0.arguments.0" equals 1
And the event "metaData.sidekiq.msg.args.0.arguments.1.yes" is true
And the event "metaData.sidekiq.queue" equals "default"
@rails_integrations
Scenario: Using Rescue as the Active Job queue adapter for a job that raises
When I set environment variable "ACTIVE_JOB_QUEUE_ADAPTER" to "resque"
And I run "bundle exec rake resque:work" in the rails app
And I run "UnhandledJob.perform_later(1, yes: true)" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "context" equals "UnhandledJob@default"
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Resque"
And the event "app.type" equals "resque"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.active_job" is null
And the event "metaData.payload.class" equals "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper"
And the event "metaData.payload.wrapped" equals "UnhandledJob"
And the event "metaData.payload.args.0.arguments.0" equals 1
And the event "metaData.payload.args.0.arguments.1.yes" is true
And the event "metaData.payload.args.0.queue_name" equals "default"
@rails_integrations
Scenario: Using Que as the Active Job queue adapter for a job that raises
When I set environment variable "ACTIVE_JOB_QUEUE_ADAPTER" to "que"
And I run "bundle exec que -q default ./config/environment.rb" in the rails app
And I run "UnhandledJob.perform_later(1, yes: true)" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "context" is null
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "Que"
And the event "app.type" equals "que"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.active_job" is null
And the event "metaData.job.wrapper_job_class" equals "ActiveJob::QueueAdapters::QueAdapter::JobWrapper"
And the event "metaData.job.job_class" equals "UnhandledJob"
And the event "metaData.job.args.0" equals 1
And the event "metaData.job.args.1.yes" is true
And the event "metaData.job.queue" equals "default"
@rails_integrations
Scenario: Using Delayed Job as the Active Job queue adapter for a job that raises
When I set environment variable "ACTIVE_JOB_QUEUE_ADAPTER" to "delayed_job"
And I run the "jobs:work" rake task in the rails app
And I run "UnhandledJob.perform_later(1, yes: true)" with the rails runner
And I wait to receive a request
Then the request is valid for the error reporting API version "4.0" for the "Ruby Bugsnag Notifier"
And the event "unhandled" is true
And the event "context" equals "UnhandledJob@default"
And the event "severity" equals "error"
And the event "severityReason.type" equals "unhandledExceptionMiddleware"
And the event "severityReason.attributes.framework" equals "DelayedJob"
And the event "app.type" equals "delayed_job"
And the exception "errorClass" equals "RuntimeError"
And the event "metaData.active_job" is null
And the event "metaData.job.payload.class" equals "ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper"
And the event "metaData.job.payload.job_class" equals "UnhandledJob"
And the event "metaData.job.payload.arguments.0" equals 1
And the event "metaData.job.payload.arguments.1.yes" is true
And the event "metaData.job.queue" equals "default"
@rails_integrations
Scenario: Using Sidekiq as the Active Job queue adapter for a job that works
When I set environment variable "ACTIVE_JOB_QUEUE_ADAPTER" to "sidekiq"
And I run "bundle exec sidekiq" in the rails app
And I run "WorkingJob.perform_later" with the rails runner
And I wait for 10 seconds
Then I should receive no requests
@rails_integrations
Scenario: Using Rescue as the Active Job queue adapter for a job that works
When I set environment variable "ACTIVE_JOB_QUEUE_ADAPTER" to "resque"
And I run "bundle exec rake resque:work" in the rails app
And I run "WorkingJob.perform_later" with the rails runner
And I wait for 10 seconds
Then I should receive no requests
@rails_integrations
Scenario: Using Que as the Active Job queue adapter for a job that works
When I set environment variable "ACTIVE_JOB_QUEUE_ADAPTER" to "que"
And I run "bundle exec que -q default ./config/environment.rb" in the rails app
And I run "WorkingJob.perform_later" with the rails runner
And I wait for 10 seconds
Then I should receive no requests
@rails_integrations
Scenario: Using Delayed Job as the Active Job queue adapter for a job that works
When I set environment variable "ACTIVE_JOB_QUEUE_ADAPTER" to "delayed_job"
And I run the "jobs:work" rake task in the rails app
And I run "WorkingJob.perform_later" with the rails runner
And I wait for 10 seconds
Then I should receive no requests