postmark 1.25.0 → 1.25.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b36e7eff4dabb977637da4527446a61f1f5b1907b0d327fefee9b9068f9ee874
4
- data.tar.gz: c65b4c7bb6b1e7529f3b202d93e0898fdb51a067ae8496a8c8ae04b0eca9eb48
3
+ metadata.gz: 90fcc71a7a7018bbcd3e4784d0276291a511ada74d290f284ca88d0909aea119
4
+ data.tar.gz: 8f7474cc7af5f878fd3ffee1f98e8eeab4361e48981359794f0426411c7659ee
5
5
  SHA512:
6
- metadata.gz: 122e2d925a0dcff98d93fbd60d11db94c5e8f443b73cf67a20eea839a07fd4955fcf0e782a1e49bc3ee9abf0593f8d513a957e6541bc6774ecfb1b1268d152d9
7
- data.tar.gz: 7db9801b4d8cbdb47c6d8b277d03871ea40ccacb62df06e10169f61cf3368c416e41699a65cfd0f667e0889df7c88e796b0ae4fbac30832a84644644ff63bfdf
6
+ metadata.gz: c90ab55895ab6b55b399e137e5193cc4465d081d554611df9e60751b0167102ffe598594d83c9ff2f94aac0a5ec165ed17cc94386807c9958ec10889972d6d9a
7
+ data.tar.gz: 9857b3188c3dec4daeaa1217cf0c6e8ce1142a7f057556b931e19ca8c981ed8812d2443a26757f1b7474080d2f406c22404c6b9e4f3021c7ca9326bc10c17428
data/CHANGELOG.rdoc CHANGED
@@ -1,5 +1,8 @@
1
1
  = Changelog
2
2
 
3
+ == 1.25.1
4
+ * Fix: Postmark::AccountApiClient would mutate "options" argument
5
+
3
6
  == 1.25.0
4
7
  * Add support for https://postmarkapp.com/developer/api/data-removals-api
5
8
 
data/README.md CHANGED
@@ -23,8 +23,8 @@ For details about Postmark API in general, please check out [Postmark developer
23
23
  You will need a Postmark account, server and sender signature (or verified domain) set up to use it. For details about setup, check out [wiki pages](https://github.com/ActiveCampaign/postmark-gem/wiki/Getting-Started).
24
24
 
25
25
  If you plan using the library in a Rails project, check out the [postmark-rails](https://github.com/ActiveCampaign/postmark-rails/) gem, which
26
- is meant to integrate with ActionMailer. The plugin will try to use ActiveSupport JSon if it is already included. If not,
27
- it will attempt to use the built-in Ruby JSon library.
26
+ is meant to integrate with ActionMailer. The plugin will try to use ActiveSupport JSON if it is already included. If not,
27
+ it will attempt to use the built-in Ruby JSON library.
28
28
 
29
29
  You can also explicitly specify which one to be used, using following code:
30
30
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.25.0
1
+ 1.25.1
@@ -3,6 +3,7 @@ module Postmark
3
3
  class AccountApiClient < Client
4
4
 
5
5
  def initialize(api_token, options = {})
6
+ options = options.dup
6
7
  options[:auth_header_name] = 'X-Postmark-Account-Token'
7
8
  super
8
9
  end
@@ -1,3 +1,3 @@
1
1
  module Postmark
2
- VERSION = '1.25.0'
2
+ VERSION = '1.25.1'
3
3
  end
data/postmark.gemspec CHANGED
@@ -21,6 +21,10 @@ Gem::Specification.new do |s|
21
21
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
22
  s.require_paths = ["lib"]
23
23
 
24
+ if s.respond_to?(:metadata) # not supported in Bundler/Ruby 1.x
25
+ s.metadata["changelog_uri"] = "https://github.com/ActiveCampaign/postmark-gem/blob/main/CHANGELOG.rdoc"
26
+ end
27
+
24
28
  s.post_install_message = %q{
25
29
  ==================
26
30
  Thanks for installing the postmark gem. If you don't have an account, please
@@ -12,6 +12,13 @@ describe Postmark::AccountApiClient do
12
12
  expect { subject.new(api_token, :http_read_timeout => 5) }.not_to raise_error
13
13
  end
14
14
 
15
+ it "doesn't mutate options hash" do
16
+ options = { "my_option" => true }
17
+ subject.new(api_token, options)
18
+
19
+ expect(options).to eq({ "my_option" => true })
20
+ end
21
+
15
22
  context 'instance' do
16
23
  subject { Postmark::AccountApiClient.new(api_token) }
17
24
 
@@ -37,7 +44,8 @@ describe Postmark::AccountApiClient do
37
44
  end
38
45
 
39
46
  it 'lazily loads senders' do
40
- allow(subject.http_client).to receive(:get).
47
+ expect(subject.http_client).to receive(:get).
48
+ exactly(5).times.
41
49
  with('senders', an_instance_of(Hash)).and_return(response)
42
50
  subject.senders.take(1000)
43
51
  end
@@ -63,20 +71,20 @@ describe Postmark::AccountApiClient do
63
71
  end
64
72
 
65
73
  it 'performs a GET request to /senders endpoint' do
66
- allow(subject.http_client).to receive(:get).
74
+ expect(subject.http_client).to receive(:get).
67
75
  with('senders', :offset => 0, :count => 30).
68
76
  and_return(response)
69
77
  subject.get_senders
70
78
  end
71
79
 
72
80
  it 'formats the keys of returned list of senders' do
73
- allow(subject.http_client).to receive(:get).and_return(response)
81
+ expect(subject.http_client).to receive(:get).and_return(response)
74
82
  keys = subject.get_senders.map { |s| s.keys }.flatten
75
83
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
76
84
  end
77
85
 
78
86
  it 'accepts offset and count options' do
79
- allow(subject.http_client).to receive(:get).
87
+ expect(subject.http_client).to receive(:get).
80
88
  with('senders', :offset => 10, :count => 42).
81
89
  and_return(response)
82
90
  subject.get_senders(:offset => 10, :count => 42)
@@ -92,7 +100,7 @@ describe Postmark::AccountApiClient do
92
100
  end
93
101
 
94
102
  it 'returns a total number of senders' do
95
- allow(subject.http_client).to receive(:get).
103
+ expect(subject.http_client).to receive(:get).
96
104
  with('senders', an_instance_of(Hash)).and_return(response)
97
105
  expect(subject.get_senders_count).to eq(42)
98
106
  end
@@ -115,13 +123,13 @@ describe Postmark::AccountApiClient do
115
123
  end
116
124
 
117
125
  it 'performs a GET request to /senders/:id endpoint' do
118
- allow(subject.http_client).to receive(:get).with("senders/42").
126
+ expect(subject.http_client).to receive(:get).with("senders/42").
119
127
  and_return(response)
120
128
  subject.get_sender(42)
121
129
  end
122
130
 
123
131
  it 'formats the keys of returned response' do
124
- allow(subject.http_client).to receive(:get).and_return(response)
132
+ expect(subject.http_client).to receive(:get).and_return(response)
125
133
  keys = subject.get_sender(42).keys
126
134
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
127
135
  end
@@ -144,19 +152,19 @@ describe Postmark::AccountApiClient do
144
152
  end
145
153
 
146
154
  it 'performs a POST request to /senders endpoint' do
147
- allow(subject.http_client).to receive(:post).
155
+ expect(subject.http_client).to receive(:post).
148
156
  with("senders", an_instance_of(String)).and_return(response)
149
157
  subject.create_sender(:name => 'Chris Nagele')
150
158
  end
151
159
 
152
160
  it 'converts the sender attributes names to camel case' do
153
- allow(subject.http_client).to receive(:post).
161
+ expect(subject.http_client).to receive(:post).
154
162
  with("senders", {'FooBar' => 'bar'}.to_json).and_return(response)
155
163
  subject.create_sender(:foo_bar => 'bar')
156
164
  end
157
165
 
158
166
  it 'formats the keys of returned response' do
159
- allow(subject.http_client).to receive(:post).and_return(response)
167
+ expect(subject.http_client).to receive(:post).and_return(response)
160
168
  keys = subject.create_sender(:foo => 'bar').keys
161
169
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
162
170
  end
@@ -180,19 +188,19 @@ describe Postmark::AccountApiClient do
180
188
  end
181
189
 
182
190
  it 'performs a PUT request to /senders/:id endpoint' do
183
- allow(subject.http_client).to receive(:put).
191
+ expect(subject.http_client).to receive(:put).
184
192
  with('senders/42', an_instance_of(String)).and_return(response)
185
193
  subject.update_sender(42, :name => 'Chris Nagele')
186
194
  end
187
195
 
188
196
  it 'converts the sender attributes names to camel case' do
189
- allow(subject.http_client).to receive(:put).
197
+ expect(subject.http_client).to receive(:put).
190
198
  with('senders/42', {'FooBar' => 'bar'}.to_json).and_return(response)
191
199
  subject.update_sender(42, :foo_bar => 'bar')
192
200
  end
193
201
 
194
202
  it 'formats the keys of returned response' do
195
- allow(subject.http_client).to receive(:put).and_return(response)
203
+ expect(subject.http_client).to receive(:put).and_return(response)
196
204
  keys = subject.update_sender(42, :foo => 'bar').keys
197
205
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
198
206
  end
@@ -212,13 +220,13 @@ describe Postmark::AccountApiClient do
212
220
  end
213
221
 
214
222
  it 'performs a POST request to /senders/:id/resend endpoint' do
215
- allow(subject.http_client).to receive(:post).
223
+ expect(subject.http_client).to receive(:post).
216
224
  with('senders/42/resend').and_return(response)
217
225
  subject.resend_sender_confirmation(42)
218
226
  end
219
227
 
220
228
  it 'formats the keys of returned response' do
221
- allow(subject.http_client).to receive(:post).and_return(response)
229
+ expect(subject.http_client).to receive(:post).and_return(response)
222
230
  keys = subject.resend_sender_confirmation(42).keys
223
231
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
224
232
  end
@@ -233,18 +241,18 @@ describe Postmark::AccountApiClient do
233
241
  end
234
242
 
235
243
  it 'performs a POST request to /senders/:id/verifyspf endpoint' do
236
- allow(subject.http_client).to receive(:post).
244
+ expect(subject.http_client).to receive(:post).
237
245
  with('senders/42/verifyspf').and_return(response)
238
246
  subject.verified_sender_spf?(42)
239
247
  end
240
248
 
241
249
  it 'returns false when SPFVerified field of the response is false' do
242
- allow(subject.http_client).to receive(:post).and_return(false_response)
250
+ expect(subject.http_client).to receive(:post).and_return(false_response)
243
251
  expect(subject.verified_sender_spf?(42)).to be false
244
252
  end
245
253
 
246
254
  it 'returns true when SPFVerified field of the response is true' do
247
- allow(subject.http_client).to receive(:post).and_return(response)
255
+ expect(subject.http_client).to receive(:post).and_return(response)
248
256
  expect(subject.verified_sender_spf?(42)).to be true
249
257
  end
250
258
  end
@@ -267,13 +275,13 @@ describe Postmark::AccountApiClient do
267
275
  end
268
276
 
269
277
  it 'performs a POST request to /senders/:id/requestnewdkim endpoint' do
270
- allow(subject.http_client).to receive(:post).
278
+ expect(subject.http_client).to receive(:post).
271
279
  with('senders/42/requestnewdkim').and_return(response)
272
280
  subject.request_new_sender_dkim(42)
273
281
  end
274
282
 
275
283
  it 'formats the keys of returned response' do
276
- allow(subject.http_client).to receive(:post).and_return(response)
284
+ expect(subject.http_client).to receive(:post).and_return(response)
277
285
  keys = subject.request_new_sender_dkim(42).keys
278
286
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
279
287
  end
@@ -292,13 +300,13 @@ describe Postmark::AccountApiClient do
292
300
  end
293
301
 
294
302
  it 'performs a DELETE request to /senders/:id endpoint' do
295
- allow(subject.http_client).to receive(:delete).
303
+ expect(subject.http_client).to receive(:delete).
296
304
  with('senders/42').and_return(response)
297
305
  subject.delete_sender(42)
298
306
  end
299
307
 
300
308
  it 'formats the keys of returned response' do
301
- allow(subject.http_client).to receive(:delete).and_return(response)
309
+ expect(subject.http_client).to receive(:delete).and_return(response)
302
310
  keys = subject.delete_sender(42).keys
303
311
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
304
312
  end
@@ -312,7 +320,8 @@ describe Postmark::AccountApiClient do
312
320
  end
313
321
 
314
322
  it 'lazily loads domains' do
315
- allow(subject.http_client).to receive(:get).
323
+ expect(subject.http_client).to receive(:get).
324
+ exactly(5).times.
316
325
  with('domains', an_instance_of(Hash)).and_return(response)
317
326
  subject.domains.take(1000)
318
327
  end
@@ -332,20 +341,20 @@ describe Postmark::AccountApiClient do
332
341
  }
333
342
 
334
343
  it 'performs a GET request to /domains endpoint' do
335
- allow(subject.http_client).to receive(:get).
344
+ expect(subject.http_client).to receive(:get).
336
345
  with('domains', :offset => 0, :count => 30).
337
346
  and_return(response)
338
347
  subject.get_domains
339
348
  end
340
349
 
341
350
  it 'formats the keys of returned list of domains' do
342
- allow(subject.http_client).to receive(:get).and_return(response)
351
+ expect(subject.http_client).to receive(:get).and_return(response)
343
352
  keys = subject.get_domains.map { |s| s.keys }.flatten
344
353
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
345
354
  end
346
355
 
347
356
  it 'accepts offset and count options' do
348
- allow(subject.http_client).to receive(:get).
357
+ expect(subject.http_client).to receive(:get).
349
358
  with('domains', :offset => 10, :count => 42).
350
359
  and_return(response)
351
360
  subject.get_domains(:offset => 10, :count => 42)
@@ -357,7 +366,7 @@ describe Postmark::AccountApiClient do
357
366
  let(:response) { {'TotalCount' => 42} }
358
367
 
359
368
  it 'returns a total number of domains' do
360
- allow(subject.http_client).to receive(:get).
369
+ expect(subject.http_client).to receive(:get).
361
370
  with('domains', an_instance_of(Hash)).and_return(response)
362
371
  expect(subject.get_domains_count).to eq(42)
363
372
  end
@@ -372,13 +381,13 @@ describe Postmark::AccountApiClient do
372
381
  }
373
382
 
374
383
  it 'performs a GET request to /domains/:id endpoint' do
375
- allow(subject.http_client).to receive(:get).with("domains/42").
384
+ expect(subject.http_client).to receive(:get).with("domains/42").
376
385
  and_return(response)
377
386
  subject.get_domain(42)
378
387
  end
379
388
 
380
389
  it 'formats the keys of returned response' do
381
- allow(subject.http_client).to receive(:get).and_return(response)
390
+ expect(subject.http_client).to receive(:get).and_return(response)
382
391
  keys = subject.get_domain(42).keys
383
392
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
384
393
  end
@@ -393,19 +402,19 @@ describe Postmark::AccountApiClient do
393
402
  }
394
403
 
395
404
  it 'performs a POST request to /domains endpoint' do
396
- allow(subject.http_client).to receive(:post).
405
+ expect(subject.http_client).to receive(:post).
397
406
  with("domains", an_instance_of(String)).and_return(response)
398
407
  subject.create_domain(:name => 'example.com')
399
408
  end
400
409
 
401
410
  it 'converts the domain attributes names to camel case' do
402
- allow(subject.http_client).to receive(:post).
411
+ expect(subject.http_client).to receive(:post).
403
412
  with("domains", {'FooBar' => 'bar'}.to_json).and_return(response)
404
413
  subject.create_domain(:foo_bar => 'bar')
405
414
  end
406
415
 
407
416
  it 'formats the keys of returned response' do
408
- allow(subject.http_client).to receive(:post).and_return(response)
417
+ expect(subject.http_client).to receive(:post).and_return(response)
409
418
  keys = subject.create_domain(:foo => 'bar').keys
410
419
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
411
420
  end
@@ -421,19 +430,19 @@ describe Postmark::AccountApiClient do
421
430
  }
422
431
 
423
432
  it 'performs a PUT request to /domains/:id endpoint' do
424
- allow(subject.http_client).to receive(:put).
433
+ expect(subject.http_client).to receive(:put).
425
434
  with('domains/42', an_instance_of(String)).and_return(response)
426
435
  subject.update_domain(42, :return_path_domain => 'updated-return.example.com')
427
436
  end
428
437
 
429
438
  it 'converts the domain attributes names to camel case' do
430
- allow(subject.http_client).to receive(:put).
439
+ expect(subject.http_client).to receive(:put).
431
440
  with('domains/42', {'FooBar' => 'bar'}.to_json).and_return(response)
432
441
  subject.update_domain(42, :foo_bar => 'bar')
433
442
  end
434
443
 
435
444
  it 'formats the keys of returned response' do
436
- allow(subject.http_client).to receive(:put).and_return(response)
445
+ expect(subject.http_client).to receive(:put).and_return(response)
437
446
  keys = subject.update_domain(42, :foo => 'bar').keys
438
447
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
439
448
  end
@@ -444,18 +453,18 @@ describe Postmark::AccountApiClient do
444
453
  let(:false_response) { {"SPFVerified" => false} }
445
454
 
446
455
  it 'performs a POST request to /domains/:id/verifyspf endpoint' do
447
- allow(subject.http_client).to receive(:post).
456
+ expect(subject.http_client).to receive(:post).
448
457
  with('domains/42/verifyspf').and_return(response)
449
458
  subject.verified_domain_spf?(42)
450
459
  end
451
460
 
452
461
  it 'returns false when SPFVerified field of the response is false' do
453
- allow(subject.http_client).to receive(:post).and_return(false_response)
462
+ expect(subject.http_client).to receive(:post).and_return(false_response)
454
463
  expect(subject.verified_domain_spf?(42)).to be false
455
464
  end
456
465
 
457
466
  it 'returns true when SPFVerified field of the response is true' do
458
- allow(subject.http_client).to receive(:post).and_return(response)
467
+ expect(subject.http_client).to receive(:post).and_return(response)
459
468
  expect(subject.verified_domain_spf?(42)).to be true
460
469
  end
461
470
  end
@@ -469,13 +478,13 @@ describe Postmark::AccountApiClient do
469
478
  }
470
479
 
471
480
  it 'performs a POST request to /domains/:id/rotatedkim endpoint' do
472
- allow(subject.http_client).to receive(:post).
481
+ expect(subject.http_client).to receive(:post).
473
482
  with('domains/42/rotatedkim').and_return(response)
474
483
  subject.rotate_domain_dkim(42)
475
484
  end
476
485
 
477
486
  it 'formats the keys of returned response' do
478
- allow(subject.http_client).to receive(:post).and_return(response)
487
+ expect(subject.http_client).to receive(:post).and_return(response)
479
488
  keys = subject.rotate_domain_dkim(42).keys
480
489
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
481
490
  end
@@ -490,13 +499,13 @@ describe Postmark::AccountApiClient do
490
499
  }
491
500
 
492
501
  it 'performs a DELETE request to /domains/:id endpoint' do
493
- allow(subject.http_client).to receive(:delete).
502
+ expect(subject.http_client).to receive(:delete).
494
503
  with('domains/42').and_return(response)
495
504
  subject.delete_domain(42)
496
505
  end
497
506
 
498
507
  it 'formats the keys of returned response' do
499
- allow(subject.http_client).to receive(:delete).and_return(response)
508
+ expect(subject.http_client).to receive(:delete).and_return(response)
500
509
  keys = subject.delete_sender(42).keys
501
510
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
502
511
  end
@@ -510,7 +519,8 @@ describe Postmark::AccountApiClient do
510
519
  end
511
520
 
512
521
  it 'lazily loads servers' do
513
- allow(subject.http_client).to receive(:get).
522
+ expect(subject.http_client).to receive(:get).
523
+ exactly(5).times.
514
524
  with('servers', an_instance_of(Hash)).and_return(response)
515
525
  subject.servers.take(100)
516
526
  end
@@ -542,19 +552,19 @@ describe Postmark::AccountApiClient do
542
552
  }
543
553
 
544
554
  it 'performs a GET request to /servers endpoint' do
545
- allow(subject.http_client).to receive(:get).
555
+ expect(subject.http_client).to receive(:get).
546
556
  with('servers', an_instance_of(Hash)).and_return(response)
547
557
  subject.get_servers
548
558
  end
549
559
 
550
560
  it 'formats the keys of returned list of servers' do
551
- allow(subject.http_client).to receive(:get).and_return(response)
561
+ expect(subject.http_client).to receive(:get).and_return(response)
552
562
  keys = subject.get_servers.map { |s| s.keys }.flatten
553
563
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
554
564
  end
555
565
 
556
566
  it 'accepts offset and count options' do
557
- allow(subject.http_client).to receive(:get).
567
+ expect(subject.http_client).to receive(:get).
558
568
  with('servers', :offset => 30, :count => 50).
559
569
  and_return(response)
560
570
  subject.get_servers(:offset => 30, :count => 50)
@@ -582,13 +592,13 @@ describe Postmark::AccountApiClient do
582
592
  }
583
593
 
584
594
  it 'performs a GET request to /servers/:id endpoint' do
585
- allow(subject.http_client).to receive(:get).
595
+ expect(subject.http_client).to receive(:get).
586
596
  with('servers/42').and_return(response)
587
597
  subject.get_server(42)
588
598
  end
589
599
 
590
600
  it 'formats the keys of returned response' do
591
- allow(subject.http_client).to receive(:get).and_return(response)
601
+ expect(subject.http_client).to receive(:get).and_return(response)
592
602
  keys = subject.get_server(42).keys
593
603
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
594
604
  end
@@ -598,7 +608,7 @@ describe Postmark::AccountApiClient do
598
608
  let(:response) { {'TotalCount' => 42} }
599
609
 
600
610
  it 'returns a total number of servers' do
601
- allow(subject.http_client).to receive(:get).
611
+ expect(subject.http_client).to receive(:get).
602
612
  with('servers', an_instance_of(Hash)).and_return(response)
603
613
  expect(subject.get_servers_count).to eq(42)
604
614
  end
@@ -619,20 +629,20 @@ describe Postmark::AccountApiClient do
619
629
  }
620
630
 
621
631
  it 'performs a POST request to /servers endpoint' do
622
- allow(subject.http_client).to receive(:post).
632
+ expect(subject.http_client).to receive(:post).
623
633
  with('servers', an_instance_of(String)).and_return(response)
624
634
  subject.create_server(:foo => 'bar')
625
635
  end
626
636
 
627
637
  it 'converts the server attribute names to camel case' do
628
- allow(subject.http_client).to receive(:post).
638
+ expect(subject.http_client).to receive(:post).
629
639
  with('servers', {'FooBar' => 'foo_bar'}.to_json).
630
640
  and_return(response)
631
641
  subject.create_server(:foo_bar => 'foo_bar')
632
642
  end
633
643
 
634
644
  it 'formats the keys of returned response' do
635
- allow(subject.http_client).to receive(:post).and_return(response)
645
+ expect(subject.http_client).to receive(:post).and_return(response)
636
646
  keys = subject.create_server(:foo => 'bar').keys
637
647
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
638
648
  end
@@ -659,21 +669,21 @@ describe Postmark::AccountApiClient do
659
669
  }
660
670
 
661
671
  it 'converts the server attribute names to camel case' do
662
- allow(subject.http_client).to receive(:put).
672
+ expect(subject.http_client).to receive(:put).
663
673
  with(an_instance_of(String), {'FooBar' => 'foo_bar'}.to_json).
664
674
  and_return(response)
665
675
  subject.update_server(42, :foo_bar => 'foo_bar')
666
676
  end
667
677
 
668
678
  it 'performs a PUT request to /servers/:id endpoint' do
669
- allow(subject.http_client).to receive(:put).
679
+ expect(subject.http_client).to receive(:put).
670
680
  with('servers/42', an_instance_of(String)).
671
681
  and_return(response)
672
682
  subject.update_server(42, :foo => 'bar')
673
683
  end
674
684
 
675
685
  it 'formats the keys of returned response' do
676
- allow(subject.http_client).to receive(:put).and_return(response)
686
+ expect(subject.http_client).to receive(:put).and_return(response)
677
687
  keys = subject.update_server(42, :foo => 'bar').keys
678
688
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
679
689
  end
@@ -688,13 +698,13 @@ describe Postmark::AccountApiClient do
688
698
  }
689
699
 
690
700
  it 'performs a DELETE request to /servers/:id endpoint' do
691
- allow(subject.http_client).to receive(:delete).
701
+ expect(subject.http_client).to receive(:delete).
692
702
  with('servers/42').and_return(response)
693
703
  subject.delete_server(42)
694
704
  end
695
705
 
696
706
  it 'formats the keys of returned response' do
697
- allow(subject.http_client).to receive(:delete).and_return(response)
707
+ expect(subject.http_client).to receive(:delete).and_return(response)
698
708
  keys = subject.delete_server(42).keys
699
709
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
700
710
  end
@@ -711,7 +721,7 @@ describe Postmark::AccountApiClient do
711
721
  let(:request_data) {{:source_server_id => 1, :destination_server_id => 2, :perform_changes => false}}
712
722
 
713
723
  it 'gets templates info and converts it to ruby format' do
714
- allow(subject.http_client).to receive(:put).and_return(response)
724
+ expect(subject.http_client).to receive(:put).and_return(response)
715
725
  templates = subject.push_templates({:source_server_id => 1, :destination_server_id => 2, :perform_changes => false} )
716
726
 
717
727
  expect(templates.size).to eq(2)
@@ -720,7 +730,7 @@ describe Postmark::AccountApiClient do
720
730
  end
721
731
 
722
732
  it 'formats the keys of returned response' do
723
- allow(subject.http_client).to receive(:put).and_return(response)
733
+ expect(subject.http_client).to receive(:put).and_return(response)
724
734
  templates = subject.push_templates({:source_server_id => 1, :destination_server_id => 2, :perform_changes => false} )
725
735
 
726
736
  keys = templates.map { |template| template.keys }.flatten
@@ -737,13 +747,13 @@ describe Postmark::AccountApiClient do
737
747
  }
738
748
 
739
749
  it 'performs a GET request to /data-removals/:id endpoint' do
740
- allow(subject.http_client).to receive(:get).
750
+ expect(subject.http_client).to receive(:get).
741
751
  with('data-removals/42').and_return(response)
742
752
  subject.get_data_removal_status(42)
743
753
  end
744
754
 
745
755
  it 'formats the keys of returned response' do
746
- allow(subject.http_client).to receive(:get).and_return(response)
756
+ expect(subject.http_client).to receive(:get).and_return(response)
747
757
  keys = subject.get_data_removal_status(42).keys
748
758
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
749
759
  end
@@ -758,13 +768,13 @@ describe Postmark::AccountApiClient do
758
768
  }
759
769
 
760
770
  it 'performs a POST request to /data-removals endpoint' do
761
- allow(subject.http_client).to receive(:post).
771
+ expect(subject.http_client).to receive(:post).
762
772
  with('data-removals', an_instance_of(String)).and_return(response)
763
773
  subject.request_data_removal(:foo => 'bar')
764
774
  end
765
775
 
766
776
  it 'formats the keys of returned response' do
767
- allow(subject.http_client).to receive(:post).and_return(response)
777
+ expect(subject.http_client).to receive(:post).and_return(response)
768
778
  keys = subject.request_data_removal(:foo => 'bar').keys
769
779
  expect(keys.all? { |k| k.is_a?(Symbol) }).to be true
770
780
  end
@@ -161,7 +161,7 @@ describe Postmark::ApiClient do
161
161
  end
162
162
 
163
163
  it "proxies errors" do
164
- allow(http_client).to receive(:post).and_raise(Postmark::TimeoutError)
164
+ expect(http_client).to receive(:post).and_raise(Postmark::TimeoutError)
165
165
  expect {subject}.to raise_error(Postmark::TimeoutError)
166
166
  end
167
167
 
@@ -188,7 +188,7 @@ describe Postmark::ApiClient do
188
188
  end
189
189
 
190
190
  it "proxies errors" do
191
- allow(http_client).to receive(:post).and_raise(Postmark::TimeoutError)
191
+ expect(http_client).to receive(:post).and_raise(Postmark::TimeoutError)
192
192
  expect {subject}.to raise_error(Postmark::TimeoutError)
193
193
  end
194
194
 
@@ -262,7 +262,7 @@ describe Postmark::ApiClient do
262
262
  end
263
263
 
264
264
  it 'loads outbound messages' do
265
- allow(api_client.http_client).to receive(:get).
265
+ expect(api_client.http_client).to receive(:get).
266
266
  with('messages/outbound', an_instance_of(Hash)).and_return(response)
267
267
  expect(api_client.messages.count).to eq(5)
268
268
  end
@@ -276,7 +276,7 @@ describe Postmark::ApiClient do
276
276
  end
277
277
 
278
278
  it 'loads inbound messages' do
279
- allow(api_client.http_client).to receive(:get).with('messages/inbound', an_instance_of(Hash)).and_return(response)
279
+ expect(api_client.http_client).to receive(:get).with('messages/inbound', an_instance_of(Hash)).and_return(response)
280
280
  expect(api_client.messages(:inbound => true).count).to eq(5)
281
281
  end
282
282
  end
@@ -308,19 +308,22 @@ describe Postmark::ApiClient do
308
308
  let(:response) {{'TotalCount' => 42}}
309
309
 
310
310
  context 'given outbound' do
311
-
312
- it 'requests and returns outbound messages count' do
313
- allow(api_client.http_client).to receive(:get).
311
+ it 'requests and returns outbound messages count by default' do
312
+ expect(api_client.http_client).to receive(:get).
314
313
  with('messages/outbound', an_instance_of(Hash)).and_return(response)
315
314
  expect(api_client.get_messages_count).to eq(42)
316
- expect(api_client.get_messages_count(:inbound => false)).to eq(42)
317
315
  end
318
316
 
317
+ it 'requests and returns outbound messages count when inbound => false' do
318
+ expect(api_client.http_client).to receive(:get).
319
+ with('messages/outbound', an_instance_of(Hash)).and_return(response)
320
+ expect(api_client.get_messages_count(:inbound => false)).to eq(42)
321
+ end
319
322
  end
320
323
 
321
324
  context 'given inbound' do
322
325
  it 'requests and returns inbound messages count' do
323
- allow(api_client.http_client).to receive(:get).
326
+ expect(api_client.http_client).to receive(:get).
324
327
  with('messages/inbound', an_instance_of(Hash)).and_return(response)
325
328
  expect(api_client.get_messages_count(:inbound => true)).to eq(42)
326
329
  end
@@ -382,7 +385,7 @@ describe Postmark::ApiClient do
382
385
  end
383
386
 
384
387
  it 'requests data at /bounces' do
385
- allow(api_client.http_client).to receive(:get).
388
+ expect(api_client.http_client).to receive(:get).
386
389
  with('bounces', an_instance_of(Hash)).
387
390
  and_return('TotalCount' => 1, 'Bounces' => [{}])
388
391
  expect(api_client.bounces.first(5).count).to eq(1)
@@ -394,9 +397,10 @@ describe Postmark::ApiClient do
394
397
  let(:response) {{"Bounces" => []}}
395
398
 
396
399
  it 'requests data at /bounces' do
397
- allow(http_client).to receive(:get).with("bounces", options) {response}
398
- expect(api_client.get_bounces(options)).to be_an(Array)
399
- expect(api_client.get_bounces(options).count).to be_zero
400
+ expect(http_client).to receive(:get).with("bounces", options) {response}
401
+ result = api_client.get_bounces(options)
402
+ expect(result).to be_an(Array)
403
+ expect(result.count).to be_zero
400
404
  end
401
405
  end
402
406
 
@@ -434,7 +438,7 @@ describe Postmark::ApiClient do
434
438
  end
435
439
 
436
440
  it 'performs a GET request to /opens/tags' do
437
- allow(api_client.http_client).to receive(:get).
441
+ expect(api_client.http_client).to receive(:get).
438
442
  with('messages/outbound/opens', an_instance_of(Hash)).
439
443
  and_return('TotalCount' => 1, 'Opens' => [{}])
440
444
  expect(api_client.opens.first(5).count).to eq(1)
@@ -447,7 +451,7 @@ describe Postmark::ApiClient do
447
451
  end
448
452
 
449
453
  it 'performs a GET request to /clicks/tags' do
450
- allow(api_client.http_client).to receive(:get).
454
+ expect(api_client.http_client).to receive(:get).
451
455
  with('messages/outbound/clicks', an_instance_of(Hash)).
452
456
  and_return('TotalCount' => 1, 'Clicks' => [{}])
453
457
  expect(api_client.clicks.first(5).count).to eq(1)
@@ -459,9 +463,10 @@ describe Postmark::ApiClient do
459
463
  let(:response) {{'Opens' => [], 'TotalCount' => 0}}
460
464
 
461
465
  it 'performs a GET request to /messages/outbound/opens' do
462
- allow(http_client).to receive(:get).with('messages/outbound/opens', options) {response}
463
- expect(api_client.get_opens(options)).to be_an(Array)
464
- expect(api_client.get_opens(options).count).to be_zero
466
+ expect(http_client).to receive(:get).with('messages/outbound/opens', options) {response}
467
+ result = api_client.get_opens(options)
468
+ expect(result).to be_an(Array)
469
+ expect(result.count).to be_zero
465
470
  end
466
471
  end
467
472
 
@@ -470,9 +475,10 @@ describe Postmark::ApiClient do
470
475
  let(:response) {{'Clicks' => [], 'TotalCount' => 0}}
471
476
 
472
477
  it 'performs a GET request to /messages/outbound/clicks' do
473
- allow(http_client).to receive(:get).with('messages/outbound/clicks', options) {response}
474
- expect(api_client.get_clicks(options)).to be_an(Array)
475
- expect(api_client.get_clicks(options).count).to be_zero
478
+ expect(http_client).to receive(:get).with('messages/outbound/clicks', options) {response}
479
+ result = api_client.get_clicks(options)
480
+ expect(result).to be_an(Array)
481
+ expect(result.count).to be_zero
476
482
  end
477
483
  end
478
484
 
@@ -482,9 +488,10 @@ describe Postmark::ApiClient do
482
488
  let(:response) {{'Opens' => [], 'TotalCount' => 0}}
483
489
 
484
490
  it 'performs a GET request to /messages/outbound/opens' do
485
- allow(http_client).to receive(:get).with("messages/outbound/opens/#{message_id}", options).and_return(response)
486
- expect(api_client.get_opens_by_message_id(message_id, options)).to be_an(Array)
487
- expect(api_client.get_opens_by_message_id(message_id, options).count).to be_zero
491
+ expect(http_client).to receive(:get).with("messages/outbound/opens/#{message_id}", options).and_return(response)
492
+ result = api_client.get_opens_by_message_id(message_id, options)
493
+ expect(result).to be_an(Array)
494
+ expect(result.count).to be_zero
488
495
  end
489
496
  end
490
497
 
@@ -494,9 +501,10 @@ describe Postmark::ApiClient do
494
501
  let(:response) {{'Clicks' => [], 'TotalCount' => 0}}
495
502
 
496
503
  it 'performs a GET request to /messages/outbound/clicks' do
497
- allow(http_client).to receive(:get).with("messages/outbound/clicks/#{message_id}", options).and_return(response)
498
- expect(api_client.get_clicks_by_message_id(message_id, options)).to be_an(Array)
499
- expect(api_client.get_clicks_by_message_id(message_id, options).count).to be_zero
504
+ expect(http_client).to receive(:get).with("messages/outbound/clicks/#{message_id}", options).and_return(response)
505
+ result = api_client.get_clicks_by_message_id(message_id, options)
506
+ expect(result).to be_an(Array)
507
+ expect(result.count).to be_zero
500
508
  end
501
509
  end
502
510
 
@@ -508,7 +516,7 @@ describe Postmark::ApiClient do
508
516
  end
509
517
 
510
518
  it 'performs a GET request to /opens/tags' do
511
- allow(api_client.http_client).to receive(:get).
519
+ expect(api_client.http_client).to receive(:get).
512
520
  with("messages/outbound/opens/#{message_id}", an_instance_of(Hash)).
513
521
  and_return('TotalCount' => 1, 'Opens' => [{}])
514
522
  expect(api_client.opens_by_message_id(message_id).first(5).count).to eq(1)
@@ -523,7 +531,7 @@ describe Postmark::ApiClient do
523
531
  end
524
532
 
525
533
  it 'performs a GET request to /clicks/tags' do
526
- allow(api_client.http_client).to receive(:get).
534
+ expect(api_client.http_client).to receive(:get).
527
535
  with("messages/outbound/clicks/#{message_id}", an_instance_of(Hash)).
528
536
  and_return('TotalCount' => 1, 'Clicks' => [{}])
529
537
  expect(api_client.clicks_by_message_id(message_id).first(5).count).to eq(1)
@@ -536,13 +544,13 @@ describe Postmark::ApiClient do
536
544
  let(:response) {{'Rule' => 'example.com'}}
537
545
 
538
546
  it 'performs a POST request to /triggers/inboundrules with given options' do
539
- allow(http_client).to receive(:post).with('triggers/inboundrules',
547
+ expect(http_client).to receive(:post).with('triggers/inboundrules',
540
548
  {'Rule' => 'example.com'}.to_json)
541
549
  api_client.create_trigger(:inbound_rules, options)
542
550
  end
543
551
 
544
552
  it 'symbolizes response keys' do
545
- allow(http_client).to receive(:post).and_return(response)
553
+ expect(http_client).to receive(:post).and_return(response)
546
554
  expect(api_client.create_trigger(:inbound_rules, options)).to eq(:rule => 'example.com')
547
555
  end
548
556
  end
@@ -552,12 +560,12 @@ describe Postmark::ApiClient do
552
560
  let(:id) {42}
553
561
 
554
562
  it 'performs a GET request to /triggers/tags/:id' do
555
- allow(http_client).to receive(:get).with("triggers/tags/#{id}")
563
+ expect(http_client).to receive(:get).with("triggers/tags/#{id}")
556
564
  api_client.get_trigger(:tags, id)
557
565
  end
558
566
 
559
567
  it 'symbolizes response keys' do
560
- allow(http_client).to receive(:get).and_return('Foo' => 'Bar')
568
+ expect(http_client).to receive(:get).and_return('Foo' => 'Bar')
561
569
  expect(api_client.get_trigger(:tags, id)).to eq(:foo => 'Bar')
562
570
  end
563
571
  end
@@ -567,12 +575,12 @@ describe Postmark::ApiClient do
567
575
  let(:id) {42}
568
576
 
569
577
  it 'performs a DELETE request to /triggers/tags/:id' do
570
- allow(http_client).to receive(:delete).with("triggers/tags/#{id}")
578
+ expect(http_client).to receive(:delete).with("triggers/tags/#{id}")
571
579
  api_client.delete_trigger(:tags, id)
572
580
  end
573
581
 
574
582
  it 'symbolizes response keys' do
575
- allow(http_client).to receive(:delete).and_return('Foo' => 'Bar')
583
+ expect(http_client).to receive(:delete).and_return('Foo' => 'Bar')
576
584
  expect(api_client.delete_trigger(:tags, id)).to eq(:foo => 'Bar')
577
585
  end
578
586
  end
@@ -581,12 +589,12 @@ describe Postmark::ApiClient do
581
589
  let(:id) {42}
582
590
 
583
591
  it 'performs a DELETE request to /triggers/inboundrules/:id' do
584
- allow(http_client).to receive(:delete).with("triggers/inboundrules/#{id}")
592
+ expect(http_client).to receive(:delete).with("triggers/inboundrules/#{id}")
585
593
  api_client.delete_trigger(:inbound_rules, id)
586
594
  end
587
595
 
588
596
  it 'symbolizes response keys' do
589
- allow(http_client).to receive(:delete).and_return('Rule' => 'example.com')
597
+ expect(http_client).to receive(:delete).and_return('Rule' => 'example.com')
590
598
  expect(api_client.delete_trigger(:tags, id)).to eq(:rule => 'example.com')
591
599
  end
592
600
  end
@@ -599,9 +607,10 @@ describe Postmark::ApiClient do
599
607
  let(:response) {{'InboundRules' => [], 'TotalCount' => 0}}
600
608
 
601
609
  it 'performs a GET request to /triggers/inboundrules' do
602
- allow(http_client).to receive(:get).with('triggers/inboundrules', options) {response}
603
- expect(api_client.get_triggers(:inbound_rules, options)).to be_an(Array)
604
- expect(api_client.get_triggers(:inbound_rules, options).count).to be_zero
610
+ expect(http_client).to receive(:get).with('triggers/inboundrules', options) {response}
611
+ result = api_client.get_triggers(:inbound_rules, options)
612
+ expect(result).to be_an(Array)
613
+ expect(result.count).to be_zero
605
614
  end
606
615
  end
607
616
  end
@@ -612,7 +621,7 @@ describe Postmark::ApiClient do
612
621
  end
613
622
 
614
623
  it 'performs a GET request to /triggers/tags' do
615
- allow(api_client.http_client).to receive(:get).
624
+ expect(api_client.http_client).to receive(:get).
616
625
  with('triggers/tags', an_instance_of(Hash)).
617
626
  and_return('TotalCount' => 1, 'Tags' => [{}])
618
627
  expect(api_client.triggers(:tags).first(5).count).to eq(1)
@@ -688,7 +697,7 @@ describe Postmark::ApiClient do
688
697
  end
689
698
 
690
699
  it 'requests data at /templates' do
691
- allow(api_client.http_client).to receive(:get).
700
+ expect(api_client.http_client).to receive(:get).
692
701
  with('templates', an_instance_of(Hash)).
693
702
  and_return('TotalCount' => 1, 'Templates' => [{}])
694
703
  expect(api_client.templates.first(5).count).to eq(1)
@@ -1025,7 +1034,7 @@ describe Postmark::ApiClient do
1025
1034
  subject(:result) { api_client.get_message_streams(:offset => 22, :count => 33) }
1026
1035
 
1027
1036
  before do
1028
- allow(http_client).to receive(:get).
1037
+ expect(http_client).to receive(:get).
1029
1038
  with('message-streams', :offset => 22, :count => 33).
1030
1039
  and_return({ 'TotalCount' => 1, 'MessageStreams' => [{'Name' => 'abc'}]})
1031
1040
  end
@@ -1045,7 +1054,7 @@ describe Postmark::ApiClient do
1045
1054
  it { is_expected.to be_kind_of(Enumerable) }
1046
1055
 
1047
1056
  it 'requests data at /message-streams' do
1048
- allow(http_client).to receive(:get).
1057
+ expect(http_client).to receive(:get).
1049
1058
  with('message-streams', anything).
1050
1059
  and_return('TotalCount' => 1, 'MessageStreams' => [{}])
1051
1060
  expect(subject.first(5).count).to eq(1)
@@ -1056,7 +1065,7 @@ describe Postmark::ApiClient do
1056
1065
  subject(:result) { api_client.get_message_stream(123) }
1057
1066
 
1058
1067
  before do
1059
- allow(http_client).to receive(:get).
1068
+ expect(http_client).to receive(:get).
1060
1069
  with('message-streams/123').
1061
1070
  and_return({
1062
1071
  'Id' => 'xxx',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postmark
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.25.0
4
+ version: 1.25.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomek Maszkowski
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2023-10-11 00:00:00.000000000 Z
16
+ date: 2024-06-20 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: json
@@ -133,7 +133,8 @@ files:
133
133
  homepage: https://postmarkapp.com
134
134
  licenses:
135
135
  - MIT
136
- metadata: {}
136
+ metadata:
137
+ changelog_uri: https://github.com/ActiveCampaign/postmark-gem/blob/main/CHANGELOG.rdoc
137
138
  post_install_message: "\n ==================\n Thanks for installing the postmark
138
139
  gem. If you don't have an account, please\n sign up at https://postmarkapp.com/.\n\n
139
140
  \ Review the README.md for implementation details and examples.\n ==================\n