pagerduty 2.1.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,364 +0,0 @@
1
-
2
- require "spec_helper"
3
-
4
- describe Pagerduty do
5
- Given(:pagerduty) { Pagerduty.new(service_key, options) }
6
-
7
- Given(:service_key) { "a-test-service-key" }
8
- Given(:options) { { transport: transport } }
9
- Given(:transport) { spy }
10
-
11
- describe "#trigger" do
12
- describe "provides the correct request" do
13
- Given {
14
- allow(transport)
15
- .to receive(:send_payload)
16
- .and_return(standard_response)
17
- }
18
-
19
- context "no options" do
20
- When(:incident) { pagerduty.trigger("a-test-description") }
21
- Then {
22
- expect(transport).to have_received(:send_payload).with(
23
- service_key: "a-test-service-key",
24
- event_type: "trigger",
25
- description: "a-test-description",
26
- )
27
- }
28
- end
29
-
30
- context "all options" do
31
- When(:incident) {
32
- pagerduty.trigger(
33
- "a-test-description",
34
- incident_key: "a-test-incident-key",
35
- client: "a-test-client",
36
- client_url: "a-test-client-url",
37
- details: { key: "value" },
38
- )
39
- }
40
- Then {
41
- expect(transport).to have_received(:send_payload).with(
42
- service_key: "a-test-service-key",
43
- event_type: "trigger",
44
- description: "a-test-description",
45
- incident_key: "a-test-incident-key",
46
- client: "a-test-client",
47
- client_url: "a-test-client-url",
48
- details: { key: "value" },
49
- )
50
- }
51
- end
52
-
53
- context "with proxy" do
54
- Given(:options) {
55
- {
56
- proxy_host: "test-proxy-host",
57
- proxy_port: "test-proxy-port",
58
- proxy_username: "test-proxy-username",
59
- proxy_password: "test-proxy-password",
60
- }
61
- }
62
- Given {
63
- allow(Pagerduty::HttpTransport)
64
- .to receive(:new)
65
- .and_return(transport)
66
- }
67
- When(:incident) { pagerduty.trigger("a-test-description") }
68
- Then {
69
- expect(Pagerduty::HttpTransport).to have_received(:new).with(
70
- proxy_host: "test-proxy-host",
71
- proxy_port: "test-proxy-port",
72
- proxy_username: "test-proxy-username",
73
- proxy_password: "test-proxy-password",
74
- )
75
- }
76
- end
77
- end
78
-
79
- describe "handles all responses" do
80
- context "PagerDuty successfully creates the incident" do
81
- Given {
82
- allow(transport).to receive(:send_payload).and_return(
83
- "status" => "success",
84
- "incident_key" => "My Incident Key",
85
- "message" => "Event processed",
86
- )
87
- }
88
- When(:incident) { pagerduty.trigger("description") }
89
- Then { expect(incident).to be_a PagerdutyIncident }
90
- Then { incident.service_key == service_key }
91
- Then { incident.incident_key == "My Incident Key" }
92
- Then { incident.instance_variable_get("@transport") == transport }
93
- end
94
-
95
- context "PagerDuty fails to create the incident" do
96
- Given {
97
- allow(transport).to receive(:send_payload).and_return(
98
- "status" => "failure",
99
- "message" => "Event not processed",
100
- )
101
- }
102
- When(:incident) { pagerduty.trigger("description") }
103
- Then { expect(incident).to have_raised PagerdutyException }
104
- end
105
-
106
- context "PagerDuty responds with HTTP bad request" do
107
- Given {
108
- allow(transport)
109
- .to receive(:send_payload)
110
- .and_raise(Net::HTTPServerException.new(nil, nil))
111
- }
112
- When(:incident) { pagerduty.trigger("description") }
113
- Then { expect(incident).to have_raised Net::HTTPServerException }
114
- end
115
- end
116
- end
117
-
118
- describe "#get_incident" do
119
- When(:incident) { pagerduty.get_incident(incident_key) }
120
-
121
- context "a valid incident_key" do
122
- Given(:incident_key) { "a-test-incident-key" }
123
- Then { expect(incident).to be_a PagerdutyIncident }
124
- Then { incident.service_key == service_key }
125
- Then { incident.incident_key == incident_key }
126
- Then { incident.instance_variable_get("@transport") == transport }
127
- end
128
-
129
- context "a nil incident_key" do
130
- Given(:incident_key) { nil }
131
- Then { expect(incident).to have_failed ArgumentError }
132
- end
133
- end
134
-
135
- describe PagerdutyIncident do
136
- Given(:incident) {
137
- PagerdutyIncident.new(service_key, incident_key, options)
138
- }
139
- Given(:incident_key) { "a-test-incident-key" }
140
-
141
- describe "#acknowledge" do
142
- describe "provides the correct request" do
143
- Given {
144
- allow(transport)
145
- .to receive(:send_payload)
146
- .and_return(standard_response)
147
- }
148
-
149
- context "no args" do
150
- When(:acknowledge) { incident.acknowledge }
151
- Then {
152
- expect(transport).to have_received(:send_payload).with(
153
- event_type: "acknowledge",
154
- service_key: "a-test-service-key",
155
- incident_key: "a-test-incident-key",
156
- )
157
- }
158
- end
159
-
160
- context "a description" do
161
- When(:acknowledge) { incident.acknowledge("test-description") }
162
- Then {
163
- expect(transport).to have_received(:send_payload).with(
164
- event_type: "acknowledge",
165
- service_key: "a-test-service-key",
166
- incident_key: "a-test-incident-key",
167
- description: "test-description",
168
- )
169
- }
170
- end
171
-
172
- context "a description and details" do
173
- When(:acknowledge) {
174
- incident.acknowledge("test-description", my: "detail")
175
- }
176
- Then {
177
- expect(transport).to have_received(:send_payload).with(
178
- event_type: "acknowledge",
179
- service_key: "a-test-service-key",
180
- incident_key: "a-test-incident-key",
181
- description: "test-description",
182
- details: { my: "detail" },
183
- )
184
- }
185
- end
186
- end
187
-
188
- describe "handles all responses" do
189
- context "PagerDuty successfully acknowledges the incident" do
190
- Given {
191
- allow(transport).to receive(:send_payload).and_return(
192
- "status" => "success",
193
- "incident_key" => "a-test-incident-key",
194
- "message" => "Event acknowledged",
195
- )
196
- }
197
- When(:acknowledge) { incident.acknowledge }
198
- Then { expect(acknowledge).to be incident }
199
- end
200
-
201
- context "PagerDuty fails to acknowledge the incident" do
202
- Given {
203
- allow(transport).to receive(:send_payload).and_return(
204
- "status" => "failure",
205
- "incident_key" => "a-test-incident-key",
206
- "message" => "Event not acknowledged",
207
- )
208
- }
209
- When(:acknowledge) { incident.acknowledge }
210
- Then { expect(acknowledge).to have_failed PagerdutyException }
211
- end
212
-
213
- context "PagerDuty responds with HTTP bad request" do
214
- Given {
215
- allow(transport)
216
- .to receive(:send_payload)
217
- .and_raise(Net::HTTPServerException.new(nil, nil))
218
- }
219
- When(:acknowledge) { incident.acknowledge }
220
- Then { expect(acknowledge).to have_failed Net::HTTPServerException }
221
- end
222
- end
223
- end
224
-
225
- describe "#resolve" do
226
- describe "provides the correct request" do
227
- Given {
228
- allow(transport)
229
- .to receive(:send_payload)
230
- .and_return(standard_response)
231
- }
232
-
233
- context "no args" do
234
- When(:resolve) { incident.resolve }
235
- Then {
236
- expect(transport).to have_received(:send_payload).with(
237
- event_type: "resolve",
238
- service_key: "a-test-service-key",
239
- incident_key: "a-test-incident-key",
240
- )
241
- }
242
- end
243
-
244
- context "a description" do
245
- When(:resolve) { incident.resolve("test-description") }
246
- Then {
247
- expect(transport).to have_received(:send_payload).with(
248
- event_type: "resolve",
249
- service_key: "a-test-service-key",
250
- incident_key: "a-test-incident-key",
251
- description: "test-description",
252
- )
253
- }
254
- end
255
-
256
- context "a description and details" do
257
- When(:resolve) { incident.resolve("test-description", my: "detail") }
258
- Then {
259
- expect(transport).to have_received(:send_payload).with(
260
- event_type: "resolve",
261
- service_key: "a-test-service-key",
262
- incident_key: "a-test-incident-key",
263
- description: "test-description",
264
- details: { my: "detail" },
265
- )
266
- }
267
- end
268
- end
269
-
270
- describe "handles all responses" do
271
- context "PagerDuty successfully resolves the incident" do
272
- Given {
273
- allow(transport).to receive(:send_payload).and_return(
274
- "status" => "success",
275
- "incident_key" => "a-test-incident-key",
276
- "message" => "Event resolved",
277
- )
278
- }
279
- When(:resolve) { incident.resolve }
280
- Then { expect(resolve).to be incident }
281
- end
282
-
283
- context "PagerDuty fails to create the incident" do
284
- Given {
285
- allow(transport).to receive(:send_payload).and_return(
286
- "status" => "failure",
287
- "message" => "Event not resolved",
288
- )
289
- }
290
- When(:resolve) { incident.resolve }
291
- Then { expect(resolve).to have_failed PagerdutyException }
292
- end
293
-
294
- context "PagerDuty responds with HTTP bad request" do
295
- Given {
296
- allow(transport)
297
- .to receive(:send_payload)
298
- .and_raise(Net::HTTPServerException.new(nil, nil))
299
- }
300
- When(:resolve) { incident.resolve }
301
- Then { expect(resolve).to have_failed Net::HTTPServerException }
302
- end
303
- end
304
- end
305
-
306
- describe "#trigger" do
307
- describe "provides the correct request" do
308
- Given {
309
- allow(transport)
310
- .to receive(:send_payload)
311
- .and_return(standard_response)
312
- }
313
-
314
- context "no options" do
315
- Given(:incident_key) { "instance incident_key" }
316
- When(:trigger) { incident.trigger("description") }
317
- Then {
318
- expect(transport).to have_received(:send_payload).with(
319
- incident_key: "instance incident_key",
320
- service_key: "a-test-service-key",
321
- event_type: "trigger",
322
- description: "description",
323
- )
324
- }
325
- end
326
-
327
- context "with incident_key option" do
328
- When(:trigger) {
329
- incident.trigger(
330
- "description",
331
- incident_key: "method param incident_key",
332
- )
333
- }
334
- Then {
335
- expect(transport).to have_received(:send_payload).with(
336
- incident_key: "method param incident_key",
337
- service_key: "a-test-service-key",
338
- event_type: "trigger",
339
- description: "description",
340
- )
341
- }
342
- end
343
- end
344
- end
345
- end
346
-
347
- def standard_response
348
- { "status" => "success", "incident_key" => "My Incident Key" }
349
- end
350
-
351
- describe PagerdutyException do
352
- Given(:pagerduty_instance) { double }
353
- Given(:api_response) { double }
354
- Given(:message) { "a test error message" }
355
-
356
- When(:pagerduty_exception) {
357
- PagerdutyException.new(pagerduty_instance, api_response, message)
358
- }
359
-
360
- Then { pagerduty_exception.pagerduty_instance == pagerduty_instance }
361
- Then { pagerduty_exception.api_response == api_response }
362
- Then { pagerduty_exception.message == message }
363
- end
364
- end
data/spec/spec_helper.rb DELETED
@@ -1,14 +0,0 @@
1
-
2
- Dir[File.expand_path("support/**/*.rb", __dir__)].each { |f| require f }
3
-
4
- Warnings.silenced do
5
- require "rspec/given"
6
- require "json"
7
- require "net/https"
8
- end
9
-
10
- require "pagerduty"
11
-
12
- RSpec.configure do |config|
13
- config.color = true
14
- end
@@ -1,13 +0,0 @@
1
- module Warnings
2
- def self.silenced(&block)
3
- with_flag(nil, &block)
4
- end
5
-
6
- def self.with_flag(flag)
7
- old_verbose = $VERBOSE
8
- $VERBOSE = flag
9
- yield
10
- ensure
11
- $VERBOSE = old_verbose
12
- end
13
- end