-
Notifications
You must be signed in to change notification settings - Fork 64
/
Copy pathcc_recipients_spec.rb
119 lines (97 loc) · 7.88 KB
/
cc_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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
require 'spec_helper'
describe SparkPostRails::DeliveryMethod do
before(:each) do
@delivery_method = SparkPostRails::DeliveryMethod.new
end
context "CC Recipients" do
context "single to recipient and single cc recipient" do
it "handles email only" do
test_email = Mailer.test_email cc: "[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][:headers]).to eq({cc: "[email protected]"})
end
it "handles name and email" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>", cc: "Carl 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: "Carl Test", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content][:headers]).to eq({cc: "[email protected]"})
end
end
context "single to recipient and multiple cc recipients" do
it "handles email only" do
test_email = Mailer.test_email cc: "[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][:headers]).to eq({cc: "[email protected],[email protected]"})
end
it "handles name and email" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>", cc: "Carl Test <[email protected]>, Chris 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: "Carl Test", header_to: "[email protected]"}},
{address: {email: "[email protected]", name: "Chris Test", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content][:headers]).to eq({cc: "[email protected],[email protected]"})
end
it "handles mix of email only and name/email" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>", cc: "Carl 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: "Carl 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
context "multiple to recipients with single cc recipient" do
it "handles email only" do
@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]"}}])
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]>"
@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]"}}])
expect(@delivery_method.data[:content][:headers]).to eq({cc: "[email protected]"})
end
end
context "multiple to recipients with multiple cc recipients" do
it "handles email only" do
test_email = Mailer.test_email to: "[email protected], [email protected]", cc: "[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}}),
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],[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]>, Chris 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: "Chris Test", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content][:headers]).to eq({cc: "[email protected],[email protected]"})
end
it "handles mix of email only and name/email for to recipients" do
test_email = Mailer.test_email to: "Joe Test <[email protected]>, [email protected]", cc: "[email protected], Chris 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]", header_to: anything}}),
{address: {email: "[email protected]", header_to: "[email protected]"}},
{address: {email: "[email protected]", name: "Chris Test", header_to: "[email protected]"}}])
expect(@delivery_method.data[:content][:headers]).to eq({cc: "[email protected],[email protected]"})
end
end
end
end