pagerduty 2.1.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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