mailgun-ruby 1.4.2 → 1.4.3

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +30 -8
  3. data/.rubocop.yml +68 -0
  4. data/Gemfile +1 -1
  5. data/README.md +1 -1
  6. data/Rakefile +0 -5
  7. data/lib/mailgun/client.rb +12 -8
  8. data/lib/mailgun/domains/domains.rb +4 -2
  9. data/lib/mailgun/lists/opt_in_handler.rb +2 -4
  10. data/lib/mailgun/messages/batch_message.rb +2 -1
  11. data/lib/mailgun/messages/message_builder.rb +4 -32
  12. data/lib/mailgun/metrics/metrics.rb +6 -2
  13. data/lib/mailgun/response.rb +2 -2
  14. data/lib/mailgun/tags/analytics_tags.rb +9 -5
  15. data/lib/mailgun/tags/tags.rb +4 -2
  16. data/lib/mailgun/version.rb +1 -1
  17. data/lib/railgun/attachment.rb +4 -6
  18. data/lib/railgun/mailer.rb +2 -2
  19. data/mailgun.gemspec +4 -1
  20. data/spec/integration/analytics_tags_spec.rb +1 -1
  21. data/spec/integration/domains_spec.rb +7 -13
  22. data/spec/integration/events_spec.rb +1 -3
  23. data/spec/integration/list_members_spec.rb +1 -1
  24. data/spec/integration/logs_spec.rb +1 -1
  25. data/spec/integration/mailgun_spec.rb +3 -2
  26. data/spec/integration/metrics_spec.rb +9 -3
  27. data/spec/integration/suppressions_spec.rb +203 -26
  28. data/spec/integration/webhook_spec.rb +7 -2
  29. data/spec/spec_helper.rb +7 -0
  30. data/spec/unit/client_spec.rb +424 -0
  31. data/spec/unit/connection/test_client.rb +60 -13
  32. data/spec/unit/events/events_spec.rb +25 -9
  33. data/spec/unit/helpers/api_version_checker_spec.rb +206 -0
  34. data/spec/unit/lists/opt_in_handler_spec.rb +4 -2
  35. data/spec/unit/mailgun_spec.rb +7 -5
  36. data/spec/unit/messages/batch_message_spec.rb +25 -24
  37. data/spec/unit/messages/message_builder_spec.rb +83 -86
  38. data/spec/unit/railgun/content_type_spec.rb +7 -7
  39. data/spec/unit/railgun/mailer_spec.rb +17 -14
  40. data/spec/unit/response_spec.rb +225 -0
  41. data/vcr_cassettes/For_the_suppressions_handling_class/creates_a_single_bounce.yml +55 -0
  42. data/vcr_cassettes/suppressions.yml +1053 -170
  43. metadata +55 -5
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
  require 'stringio'
5
5
 
6
6
  describe 'MessageBuilder attribute readers' do
7
- it 'should be readable' do
7
+ it 'is readable' do
8
8
  @mb_obj = Mailgun::MessageBuilder.new
9
9
 
10
10
  expect(@mb_obj).to respond_to(:message)
@@ -13,7 +13,7 @@ describe 'MessageBuilder attribute readers' do
13
13
  end
14
14
 
15
15
  describe 'The instantiation of MessageBuilder' do
16
- before(:each) do
16
+ before do
17
17
  @mb_obj = Mailgun::MessageBuilder.new
18
18
  end
19
19
 
@@ -37,7 +37,7 @@ describe 'The instantiation of MessageBuilder' do
37
37
  end
38
38
 
39
39
  describe 'The method add_recipient' do
40
- before(:each) do
40
+ before do
41
41
  @mb_obj = Mailgun::MessageBuilder.new
42
42
  @address = 'jane@example.com'
43
43
  @variables = { 'first' => 'Jane', 'last' => 'Doe' }
@@ -92,6 +92,7 @@ describe 'The method add_recipient' do
92
92
  expect(@mb_obj.message[recipient_type][0]).to eq("'#{@variables['first']} #{@variables['last']}' <#{@address}>")
93
93
  @mb_obj.counters[:recipients].each_value { |value| expect(value).to eq(0) }
94
94
  end
95
+
95
96
  it 'adds too many to recipients and raises an exception.' do
96
97
  recipient_type = :to
97
98
 
@@ -101,6 +102,7 @@ describe 'The method add_recipient' do
101
102
  end
102
103
  end.to raise_error(Mailgun::ParameterError)
103
104
  end
105
+
104
106
  it 'adds too many cc recipients and raises an exception.' do
105
107
  recipient_type = :cc
106
108
 
@@ -110,6 +112,7 @@ describe 'The method add_recipient' do
110
112
  end
111
113
  end.to raise_error(Mailgun::ParameterError)
112
114
  end
115
+
113
116
  it 'adds too many bcc recipients and raises an exception.' do
114
117
  recipient_type = :bcc
115
118
 
@@ -130,7 +133,7 @@ describe 'The method set_subject' do
130
133
  end
131
134
 
132
135
  describe 'The method subject' do
133
- before(:each) do
136
+ before do
134
137
  @mb_obj = Mailgun::MessageBuilder.new
135
138
  end
136
139
 
@@ -167,18 +170,21 @@ describe 'The method set_text_body' do
167
170
  end
168
171
 
169
172
  describe 'The method body_text' do
170
- before(:each) do
173
+ before do
171
174
  @mb_obj = Mailgun::MessageBuilder.new
172
175
  end
176
+
173
177
  it 'sets the body_text to blank if called and no parameters are provided' do
174
178
  @mb_obj.body_text
175
179
  @mb_obj.message[:text] = ''
176
180
  end
181
+
177
182
  it 'sets the message text if called with the body_text parameter' do
178
183
  the_text = 'Don\'t mess with Texas!'
179
184
  @mb_obj.body_text(the_text)
180
185
  @mb_obj.message[:text] = the_text
181
186
  end
187
+
182
188
  it 'ensures no duplicate text bodies can exist and last setter is stored' do
183
189
  the_first_text = 'Mess with Texas!'
184
190
  the_second_text = 'Don\'t mess with Texas!'
@@ -209,7 +215,7 @@ describe 'The method set_from_address' do
209
215
  end
210
216
 
211
217
  describe 'The method from' do
212
- before(:each) do
218
+ before do
213
219
  @mb_obj = Mailgun::MessageBuilder.new
214
220
  end
215
221
 
@@ -246,9 +252,10 @@ describe 'The method from' do
246
252
  end
247
253
 
248
254
  describe 'The method add_attachment' do
249
- before(:each) do
255
+ before do
250
256
  @mb_obj = Mailgun::MessageBuilder.new
251
257
  end
258
+
252
259
  it 'adds a few file paths to the message object' do
253
260
  file1 = "#{File.dirname(__FILE__)}/sample_data/mailgun_icon.png"
254
261
  file2 = "#{File.dirname(__FILE__)}/sample_data/rackspace_logo.jpg"
@@ -283,9 +290,10 @@ describe 'The method add_attachment' do
283
290
  end
284
291
 
285
292
  describe 'The method add_inline_image' do
286
- before(:each) do
293
+ before do
287
294
  @mb_obj = Mailgun::MessageBuilder.new
288
295
  end
296
+
289
297
  it 'adds a few file paths to the message object' do
290
298
  file1 = "#{File.dirname(__FILE__)}/sample_data/mailgun_icon.png"
291
299
  file2 = "#{File.dirname(__FILE__)}/sample_data/rackspace_logo.jpg"
@@ -299,7 +307,7 @@ describe 'The method add_inline_image' do
299
307
  end
300
308
 
301
309
  describe 'The method list_unsubscribe' do
302
- before(:each) do
310
+ before do
303
311
  @mb_obj = Mailgun::MessageBuilder.new
304
312
  end
305
313
 
@@ -323,38 +331,35 @@ describe 'The method list_unsubscribe' do
323
331
  end
324
332
  end
325
333
 
326
- describe 'The method set_test_mode' do
327
- it 'warns of set_test_mode deprecation' do
328
- @mb_obj = Mailgun::MessageBuilder.new
329
- expect(@mb_obj).to receive :warn
330
- @mb_obj.set_test_mode 'Yes'
331
- end
332
- end
333
-
334
334
  describe 'The method test_mode' do
335
- before(:each) do
335
+ before do
336
336
  @mb_obj = Mailgun::MessageBuilder.new
337
337
  end
338
+
338
339
  it 'turns on test mode with boolean true' do
339
340
  @mb_obj.test_mode(true)
340
341
 
341
342
  expect(@mb_obj.message['o:testmode'][0]).to eq('yes')
342
343
  end
344
+
343
345
  it 'turns on test mode with string true' do
344
346
  @mb_obj.test_mode('true')
345
347
 
346
348
  expect(@mb_obj.message['o:testmode'][0]).to eq('yes')
347
349
  end
350
+
348
351
  it 'turns off test mode with boolean false' do
349
352
  @mb_obj.test_mode(false)
350
353
 
351
354
  expect(@mb_obj.message['o:testmode'][0]).to eq('no')
352
355
  end
356
+
353
357
  it 'turns off test mode with string false' do
354
358
  @mb_obj.test_mode('false')
355
359
 
356
360
  expect(@mb_obj.message['o:testmode'][0]).to eq('no')
357
361
  end
362
+
358
363
  it 'does not allow multiple values' do
359
364
  @mb_obj.test_mode('false')
360
365
  @mb_obj.test_mode('true')
@@ -365,38 +370,35 @@ describe 'The method test_mode' do
365
370
  end
366
371
  end
367
372
 
368
- describe 'The method set_dkim' do
369
- it 'warns of set_dkim deprecation' do
370
- @mb_obj = Mailgun::MessageBuilder.new
371
- expect(@mb_obj).to receive :warn
372
- @mb_obj.set_dkim 'Yes'
373
- end
374
- end
375
-
376
373
  describe 'The method dkim' do
377
- before(:each) do
374
+ before do
378
375
  @mb_obj = Mailgun::MessageBuilder.new
379
376
  end
377
+
380
378
  it 'turns on dkim with boolean true' do
381
379
  @mb_obj.dkim(true)
382
380
 
383
381
  expect(@mb_obj.message['o:dkim'][0]).to eq('yes')
384
382
  end
383
+
385
384
  it 'turns on dkim with string true' do
386
385
  @mb_obj.dkim('true')
387
386
 
388
387
  expect(@mb_obj.message['o:dkim'][0]).to eq('yes')
389
388
  end
389
+
390
390
  it 'turns off dkim with boolean false' do
391
391
  @mb_obj.dkim(false)
392
392
 
393
393
  expect(@mb_obj.message['o:dkim'][0]).to eq('no')
394
394
  end
395
+
395
396
  it 'turns off dkim with string false' do
396
397
  @mb_obj.dkim('false')
397
398
 
398
399
  expect(@mb_obj.message['o:dkim'][0]).to eq('no')
399
400
  end
401
+
400
402
  it 'does not allow multiple values' do
401
403
  @mb_obj.dkim('false')
402
404
  @mb_obj.dkim('true')
@@ -408,14 +410,16 @@ describe 'The method dkim' do
408
410
  end
409
411
 
410
412
  describe 'The method add_campaign_id' do
411
- before(:each) do
413
+ before do
412
414
  @mb_obj = Mailgun::MessageBuilder.new
413
415
  end
416
+
414
417
  it 'adds a campaign ID to the message' do
415
418
  @mb_obj.add_campaign_id('My-Campaign-Id-1')
416
419
 
417
420
  expect(@mb_obj.message['o:campaign'][0]).to eq('My-Campaign-Id-1')
418
421
  end
422
+
419
423
  it 'adds a few more campaign IDs to the message' do
420
424
  @mb_obj.add_campaign_id('My-Campaign-Id-1')
421
425
  @mb_obj.add_campaign_id('My-Campaign-Id-2')
@@ -425,6 +429,7 @@ describe 'The method add_campaign_id' do
425
429
  expect(@mb_obj.message['o:campaign'][1]).to eq('My-Campaign-Id-2')
426
430
  expect(@mb_obj.message['o:campaign'][2]).to eq('My-Campaign-Id-3')
427
431
  end
432
+
428
433
  it 'adds too many campaign IDs to the message' do
429
434
  expect do
430
435
  10.times do
@@ -435,14 +440,16 @@ describe 'The method add_campaign_id' do
435
440
  end
436
441
 
437
442
  describe 'The method add_tag' do
438
- before(:each) do
443
+ before do
439
444
  @mb_obj = Mailgun::MessageBuilder.new
440
445
  end
446
+
441
447
  it 'adds a tag to the message' do
442
448
  @mb_obj.add_tag('My-Tag-1')
443
449
 
444
450
  expect(@mb_obj.message['o:tag'][0]).to eq('My-Tag-1')
445
451
  end
452
+
446
453
  it 'adds a few more tags to the message' do
447
454
  @mb_obj.add_tag('My-Tag-1')
448
455
  @mb_obj.add_tag('My-Tag-2')
@@ -452,6 +459,7 @@ describe 'The method add_tag' do
452
459
  expect(@mb_obj.message['o:tag'][1]).to eq('My-Tag-2')
453
460
  expect(@mb_obj.message['o:tag'][2]).to eq('My-Tag-3')
454
461
  end
462
+
455
463
  it 'adds too many tags to the message' do
456
464
  expect do
457
465
  12.times do
@@ -461,18 +469,11 @@ describe 'The method add_tag' do
461
469
  end
462
470
  end
463
471
 
464
- describe 'The method set_open_tracking' do
465
- it 'warns of set_open_tracking deprecation' do
466
- @mb_obj = Mailgun::MessageBuilder.new
467
- expect(@mb_obj).to receive :warn
468
- @mb_obj.set_open_tracking 'Yes'
469
- end
470
- end
471
-
472
472
  describe 'The method track_opens' do
473
- before(:each) do
473
+ before do
474
474
  @mb_obj = Mailgun::MessageBuilder.new
475
475
  end
476
+
476
477
  it 'enables/disables open tracking on a per message basis.' do
477
478
  @mb_obj.track_opens('Yes')
478
479
 
@@ -493,18 +494,11 @@ describe 'The method track_opens' do
493
494
  end
494
495
  end
495
496
 
496
- describe 'The method set_click_tracking' do
497
- it 'warns of set_click_tracking deprecation' do
498
- @mb_obj = Mailgun::MessageBuilder.new
499
- expect(@mb_obj).to receive :warn
500
- @mb_obj.set_click_tracking 'Yes'
501
- end
502
- end
503
-
504
497
  describe 'The method track_clicks' do
505
- before(:each) do
498
+ before do
506
499
  @mb_obj = Mailgun::MessageBuilder.new
507
500
  end
501
+
508
502
  it 'enables/disables click tracking on a per message basis.' do
509
503
  @mb_obj.track_clicks('Yes')
510
504
 
@@ -536,18 +530,11 @@ describe 'The method track_clicks' do
536
530
  end
537
531
  end
538
532
 
539
- describe 'The method set_delivery_time' do
540
- it 'warns of set_delivery_time deprecation' do
541
- @mb_obj = Mailgun::MessageBuilder.new
542
- expect(@mb_obj).to receive :warn
543
- @mb_obj.set_delivery_time 'October 25, 2013 10:00PM CST'
544
- end
545
- end
546
-
547
533
  describe 'The method deliver_at' do
548
- before(:each) do
534
+ before do
549
535
  @mb_obj = Mailgun::MessageBuilder.new
550
536
  end
537
+
551
538
  it 'defines a time/date to deliver a message in RFC2822 format.' do
552
539
  @mb_obj.deliver_at('October 25, 2013 10:00PM CST')
553
540
 
@@ -564,48 +551,53 @@ describe 'The method set_custom_data' do
564
551
  end
565
552
 
566
553
  describe 'The method header' do
567
- before(:each) do
554
+ before do
568
555
  @mb_obj = Mailgun::MessageBuilder.new
569
556
  end
557
+
570
558
  it 'accepts valid JSON and appends as data to the message.' do
571
559
  @mb_obj.header('my-data', '{"key":"value"}')
572
560
 
573
- expect(@mb_obj.message['h:my-data']).to be_kind_of(String)
561
+ expect(@mb_obj.message['h:my-data']).to be_a(String)
574
562
  expect(@mb_obj.message['h:my-data'].to_s).to eq('{"key":"value"}')
575
563
  end
576
564
  end
577
565
 
578
566
  describe 'The method variable' do
579
- before(:each) do
567
+ before do
580
568
  @mb_obj = Mailgun::MessageBuilder.new
581
569
  end
570
+
582
571
  it 'accepts valid JSON and stores it as message[param].' do
583
572
  @mb_obj.variable('my-data', '{"key":"value"}')
584
573
 
585
- expect(@mb_obj.message['v:my-data']).to be_kind_of(String)
574
+ expect(@mb_obj.message['v:my-data']).to be_a(String)
586
575
  expect(@mb_obj.message['v:my-data'].to_s).to eq('{"key":"value"}')
587
576
  end
577
+
588
578
  it 'accepts a hash and appends as data to the message.' do
589
579
  data = { 'key' => 'value' }
590
580
  @mb_obj.variable('my-data', data)
591
581
 
592
- expect(@mb_obj.message['v:my-data']).to be_kind_of(String)
582
+ expect(@mb_obj.message['v:my-data']).to be_a(String)
593
583
  expect(@mb_obj.message['v:my-data'].to_s).to eq('{"key":"value"}')
594
584
  end
585
+
595
586
  it 'accepts string values' do
596
587
  data = 'String Value.'
597
588
 
598
589
  @mb_obj.variable('my-data', data)
599
590
 
600
- expect(@mb_obj.message['v:my-data']).to be_kind_of(String)
591
+ expect(@mb_obj.message['v:my-data']).to be_a(String)
601
592
  expect(@mb_obj.message['v:my-data'].to_s).to eq('String Value.')
602
593
  end
603
594
  end
604
595
 
605
596
  describe 'The method add_custom_parameter' do
606
- before(:each) do
597
+ before do
607
598
  @mb_obj = Mailgun::MessageBuilder.new
608
599
  end
600
+
609
601
  it 'adds an undefined parameter to the message.' do
610
602
  @mb_obj.add_custom_parameter('h:my-sweet-header', 'datagoeshere')
611
603
 
@@ -622,35 +614,39 @@ describe 'The method set_message_id' do
622
614
  end
623
615
 
624
616
  describe 'The method message_id' do
625
- before(:each) do
617
+ before do
626
618
  @mb_obj = Mailgun::MessageBuilder.new
627
619
  @the_message_id = '<20141014000000.11111.11111@example.com>'
628
620
  end
621
+
629
622
  it 'correctly sets the Message-Id header' do
630
623
  @mb_obj.message_id(@the_message_id)
631
624
 
632
625
  expect(@mb_obj.message['h:Message-Id']).to eq(@the_message_id)
633
626
  end
627
+
634
628
  it 'correctly clears the Message-Id header when passed nil' do
635
629
  @mb_obj.message_id(nil)
636
630
 
637
- expect(@mb_obj.message.key?('h:Message-Id')).to eq(false)
631
+ expect(@mb_obj.message.key?('h:Message-Id')).to be(false)
638
632
  end
633
+
639
634
  it 'correctly sets the Message-Id header when passed an empty string' do
640
635
  @mb_obj.message_id(@the_message_id)
641
636
 
642
- expect(@mb_obj.message.key?('h:Message-Id')).to eq(true)
637
+ expect(@mb_obj.message.key?('h:Message-Id')).to be(true)
643
638
 
644
639
  @mb_obj.message_id('')
645
640
 
646
- expect(@mb_obj.message.key?('h:Message-Id')).to eq(false)
641
+ expect(@mb_obj.message.key?('h:Message-Id')).to be(false)
647
642
  end
648
643
  end
649
644
 
650
645
  describe 'The method template' do
651
- before(:each) do
646
+ before do
652
647
  @mb_obj = Mailgun::MessageBuilder.new
653
648
  end
649
+
654
650
  context 'when template name is passed' do
655
651
  it 'sets `template` to the message' do
656
652
  template_name = 'template.name'
@@ -662,33 +658,34 @@ describe 'The method template' do
662
658
 
663
659
  context 'when multiple values are passed' do
664
660
  it 'sets the last value as message template' do
665
- template_name_1 = 'template.name_1'
666
- template_name_2 = 'template.name_2'
661
+ template_name1 = 'template.name_1'
662
+ template_name2 = 'template.name_2'
667
663
 
668
- @mb_obj.template(template_name_1)
669
- @mb_obj.template(template_name_2)
664
+ @mb_obj.template(template_name1)
665
+ @mb_obj.template(template_name2)
670
666
 
671
- expect(@mb_obj.message['template']).to eq(template_name_2)
667
+ expect(@mb_obj.message['template']).to eq(template_name2)
672
668
  end
673
669
  end
674
670
 
675
671
  context 'when template name is not passed' do
676
- it 'it deletes `template` key from the message' do
672
+ it 'deletes `template` key from the message' do
677
673
  @mb_obj.template('template.name')
678
674
 
679
- expect(@mb_obj.message.key?('template')).to eq(true)
675
+ expect(@mb_obj.message.key?('template')).to be(true)
680
676
 
681
677
  @mb_obj.template
682
678
 
683
- expect(@mb_obj.message.key?('template')).to eq(false)
679
+ expect(@mb_obj.message.key?('template')).to be(false)
684
680
  end
685
681
  end
686
682
  end
687
683
 
688
684
  describe 'The method template_version' do
689
- before(:each) do
685
+ before do
690
686
  @mb_obj = Mailgun::MessageBuilder.new
691
687
  end
688
+
692
689
  context 'when template version is passed' do
693
690
  it 'adds `t:version` key value to the message' do
694
691
  version = 'version_1'
@@ -700,31 +697,31 @@ describe 'The method template_version' do
700
697
 
701
698
  context 'when multiple values are passed' do
702
699
  it 'adds the last value as `t:version` key value to the message' do
703
- version_1 = 'version_1'
704
- version_2 = 'version_2'
700
+ version1 = 'version_1'
701
+ version2 = 'version_2'
705
702
 
706
- @mb_obj.template_version(version_1)
707
- @mb_obj.template_version(version_2)
703
+ @mb_obj.template_version(version1)
704
+ @mb_obj.template_version(version2)
708
705
 
709
- expect(@mb_obj.message['t:version']).to eq(version_2)
706
+ expect(@mb_obj.message['t:version']).to eq(version2)
710
707
  end
711
708
  end
712
709
 
713
710
  context 'when version is not passed' do
714
- it 'it deletes `t:version` key from the message' do
711
+ it 'deletes `t:version` key from the message' do
715
712
  @mb_obj.template_version('version')
716
713
 
717
- expect(@mb_obj.message.key?('t:version')).to eq(true)
714
+ expect(@mb_obj.message.key?('t:version')).to be(true)
718
715
 
719
716
  @mb_obj.template_version
720
717
 
721
- expect(@mb_obj.message.key?('t:version')).to eq(false)
718
+ expect(@mb_obj.message.key?('t:version')).to be(false)
722
719
  end
723
720
  end
724
721
  end
725
722
 
726
723
  describe 'The method template_text' do
727
- before(:each) do
724
+ before do
728
725
  @mb_obj = Mailgun::MessageBuilder.new
729
726
  end
730
727
 
@@ -41,11 +41,11 @@ describe 'extract_body' do
41
41
  context 'with <Content-Type: text/plain>' do
42
42
  let(:sample_mail) { Mail.new(text_mail_option) }
43
43
 
44
- it 'should return body text' do
44
+ it 'returns body text' do
45
45
  expect(Railgun.extract_body_text(sample_mail)).to eq(text_content)
46
46
  end
47
47
 
48
- it 'should not return body html' do
48
+ it 'does not return body html' do
49
49
  expect(Railgun.extract_body_html(sample_mail)).to be_nil
50
50
  end
51
51
  end
@@ -53,11 +53,11 @@ describe 'extract_body' do
53
53
  context 'with <Content-Type: text/html>' do
54
54
  let(:sample_mail) { Mail.new(html_mail_option) }
55
55
 
56
- it 'should not return body text' do
56
+ it 'does not return body text' do
57
57
  expect(Railgun.extract_body_text(sample_mail)).to be_nil
58
58
  end
59
59
 
60
- it 'should return body html' do
60
+ it 'returns body html' do
61
61
  expect(Railgun.extract_body_html(sample_mail)).to eq(html_content)
62
62
  end
63
63
  end
@@ -74,15 +74,15 @@ describe 'extract_body' do
74
74
  @sample_mail.add_part html_mail
75
75
  end
76
76
 
77
- it 'should return body text' do
77
+ it 'returns body text' do
78
78
  expect(Railgun.extract_body_text(@sample_mail)).to eq(text_content)
79
79
  end
80
80
 
81
- it 'should return body html' do
81
+ it 'returns body html' do
82
82
  expect(Railgun.extract_body_html(@sample_mail)).to eq(html_content)
83
83
  end
84
84
 
85
- it 'should return AMP html' do
85
+ it 'returns AMP html' do
86
86
  expect(Railgun.extract_amp_html(@sample_mail)).to eq(amp_content)
87
87
  end
88
88
  end
@@ -162,17 +162,20 @@ describe 'Railgun::Mailer' do
162
162
  end
163
163
 
164
164
  it 'properly handles headers that are passed as separate POST params' do
165
- message = UnitTestMailer.plain_message('test@example.org', 'Test!', {
166
- # `From`, `To`, and `Subject` are set on the envelope, so they should be ignored as headers
167
- 'From' => 'units@example.net',
168
- 'To' => 'user@example.com',
169
- 'Subject' => 'This should disappear',
170
- # If `Bcc` or `Cc` are set as headers, they should be carried over as POST params, not headers
171
- 'Bcc' => ['list@example.org'],
172
- 'Cc' => ['admin@example.com'],
173
- # This is an arbitrary header and should be carried over properly
174
- 'X-Source' => 'unit tests'
175
- })
165
+ message = UnitTestMailer.plain_message(
166
+ 'test@example.org', 'Test!',
167
+ {
168
+ # `From`, `To`, and `Subject` are set on the envelope, so they should be ignored as headers
169
+ 'From' => 'units@example.net',
170
+ 'To' => 'user@example.com',
171
+ 'Subject' => 'This should disappear',
172
+ # If `Bcc` or `Cc` are set as headers, they should be carried over as POST params, not headers
173
+ 'Bcc' => ['list@example.org'],
174
+ 'Cc' => ['admin@example.com'],
175
+ # This is an arbitrary header and should be carried over properly
176
+ 'X-Source' => 'unit tests'
177
+ }
178
+ )
176
179
 
177
180
  body = Railgun.transform_for_mailgun(message)
178
181
 
@@ -202,7 +205,7 @@ describe 'Railgun::Mailer' do
202
205
  }
203
206
  end
204
207
  body = Railgun.transform_for_mailgun(message)
205
- expect(body['v:my-data']).to be_kind_of(String)
208
+ expect(body['v:my-data']).to be_a(String)
206
209
  expect(body['v:my-data'].to_s).to eq('{"key":"value"}')
207
210
  end
208
211
 
@@ -214,7 +217,7 @@ describe 'Railgun::Mailer' do
214
217
  end
215
218
  body = Railgun.transform_for_mailgun(message)
216
219
 
217
- expect(body['v:my-data']).to be_kind_of(String)
220
+ expect(body['v:my-data']).to be_a(String)
218
221
  expect(body['v:my-data'].to_s).to eq('{"key":"value"}')
219
222
  end
220
223
 
@@ -226,7 +229,7 @@ describe 'Railgun::Mailer' do
226
229
  end
227
230
  body = Railgun.transform_for_mailgun(message)
228
231
 
229
- expect(body['v:my-data']).to be_kind_of(String)
232
+ expect(body['v:my-data']).to be_a(String)
230
233
  expect(body['v:my-data'].to_s).to eq('String Value.')
231
234
  end
232
235
  end