-
Notifications
You must be signed in to change notification settings - Fork 64
/
Copy pathbcc_recipients_spec.rb
102 lines (82 loc) · 6.72 KB
/
bcc_recipients_spec.rb
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
require 'spec_helper'
describe SparkPostRails::DeliveryMethod do
before(:each) do
@delivery_method = SparkPostRails::DeliveryMethod.new
end
context "BCC Recipients" do
context "single bcc recipient, no cc recipients" do
it "handles email only" do
test_email = Mailer.test_email bcc: "[email protected]"
@delivery_method.deliver!(test_email)
expect(@delivery_method.data[:recipients]).to match([a_hash_including({address: {email: "[email protected]", header_to: anything}}),
{address: {email: "[email protected]", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content]).not_to include(:headers)
end
it "handles name and email" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>, Sam Test <[email protected]>", bcc: "Brock Test <[email protected]>"
@delivery_method.deliver!(test_email)
expect(@delivery_method.data[:recipients]).to match([a_hash_including({address: {email: "[email protected]", name: "Joe Test", header_to: anything}}),
a_hash_including({address: {email: "[email protected]", name: "Sam Test", header_to: anything}}),
{address: {email: "[email protected]", name: "Brock Test", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content]).not_to include(:headers)
end
end
context "multiple bcc recipients, no cc recipientsa" do
it "handles email only" do
test_email = Mailer.test_email bcc: "[email protected], [email protected]"
@delivery_method.deliver!(test_email)
expect(@delivery_method.data[:recipients]).to match([a_hash_including({address: {email: "[email protected]", header_to: anything}}),
{address: {email: "[email protected]", header_to: "[email protected]"}},
{address: {email: "[email protected]", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content]).not_to include(:headers)
end
it "handles name and email" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>", bcc: "Brock Test <[email protected]>, Brack Test <[email protected]>"
@delivery_method.deliver!(test_email)
expect(@delivery_method.data[:recipients]).to match([a_hash_including({address: {email: "[email protected]", name: "Joe Test", header_to: anything}}),
{address: {email: "[email protected]", name: "Brock Test", header_to: "[email protected]"}},
{address: {email: "[email protected]", name: "Brack Test", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content]).not_to include(:headers)
end
it "handles mix of email only and name/email" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>", bcc: "Brock Test <[email protected]>, [email protected]"
@delivery_method.deliver!(test_email)
expect(@delivery_method.data[:recipients]).to match([a_hash_including({address: {email: "[email protected]", name: "Joe Test", header_to: anything}}),
{address: {email: "[email protected]", name: "Brock Test", header_to: "[email protected]"}},
{address: {email: "[email protected]", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content]).not_to include(:headers)
end
end
context "bcc and cc recipients" do
it "handles email only" do
test_email = Mailer.test_email to: "[email protected], [email protected]", cc: "[email protected]", bcc: "[email protected]"
@delivery_method.deliver!(test_email)
expect(@delivery_method.data[:recipients]).to match([a_hash_including({address: {email: "[email protected]", header_to: anything}}),
a_hash_including({address: {email: "[email protected]", header_to: anything}}),
{address: {email: "[email protected]", header_to: "[email protected]"}},
{address: {email: "[email protected]", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content][:headers]).to eq({cc: "[email protected]"})
end
it "handles name and email" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>, Sam Test <[email protected]>", cc: "Carl Test <[email protected]>", bcc: "Brock Test <[email protected]>"
@delivery_method.deliver!(test_email)
expect(@delivery_method.data[:recipients]).to match([a_hash_including({address: {email: "[email protected]", name: "Joe Test", header_to: anything}}),
a_hash_including({address: {email: "[email protected]", name: "Sam Test", header_to: anything}}),
{address: {email: "[email protected]", name: "Carl Test", header_to: "[email protected]"}},
{address: {email: "[email protected]", name: "Brock Test", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content][:headers]).to eq({cc: "[email protected]"})
end
it "handles mix of email only and name/email" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>, [email protected]", cc: "[email protected], Chris Test <[email protected]>", bcc: "Brock Test <[email protected]>, [email protected]"
@delivery_method.deliver!(test_email)
expect(@delivery_method.data[:recipients]).to match([a_hash_including({address: {email: "[email protected]", name: "Joe Test", header_to: anything}}),
a_hash_including({address: {email: "[email protected]", header_to: anything}}),
{address: {email: "[email protected]", header_to: "[email protected]"}},
{address: {email: "[email protected]", name: "Chris Test", header_to: "[email protected]"}},
{address: {email: "[email protected]", name: "Brock Test", header_to: "[email protected]"}},
{address: {email: "[email protected]", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content][:headers]).to eq({cc: "[email protected],[email protected]"})
end
end
end
end