mailgun 0.8 → 0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +13 -0
- data/CONTRIBUTORS.md +5 -1
- data/README.md +39 -2
- data/lib/mailgun.rb +6 -1
- data/lib/mailgun/address.rb +20 -0
- data/lib/mailgun/base.rb +45 -16
- data/lib/mailgun/client.rb +87 -0
- data/lib/mailgun/domain.rb +9 -4
- data/lib/mailgun/list/member.rb +9 -1
- data/lib/mailgun/mailgun_error.rb +54 -1
- data/lib/mailgun/route.rb +9 -4
- data/lib/mailgun/secure.rb +30 -0
- data/lib/mailgun/webhook.rb +55 -0
- data/lib/multimap/spec/enumerable_examples.rb +22 -22
- data/lib/multimap/spec/hash_examples.rb +88 -88
- data/lib/multimap/spec/multiset_spec.rb +62 -62
- data/lib/multimap/spec/nested_multimap_spec.rb +58 -58
- data/lib/multimap/spec/set_examples.rb +112 -112
- data/lib/multimap/spec/spec_helper.rb +2 -2
- data/mailgun.gemspec +3 -5
- data/spec/address_spec.rb +27 -0
- data/spec/base_spec.rb +31 -25
- data/spec/bounce_spec.rb +5 -5
- data/spec/client_spec.rb +118 -0
- data/spec/complaint_spec.rb +4 -4
- data/spec/domain_spec.rb +17 -5
- data/spec/helpers/mailgun_helper.rb +9 -0
- data/spec/list/member_spec.rb +7 -7
- data/spec/list/message_spec.rb +3 -3
- data/spec/list_spec.rb +6 -6
- data/spec/log_spec.rb +2 -2
- data/spec/mailbox_spec.rb +4 -4
- data/spec/route_spec.rb +10 -11
- data/spec/secure_spec.rb +55 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/unsubscribe_spec.rb +6 -6
- data/spec/webhook_spec.rb +115 -0
- metadata +22 -21
data/spec/base_spec.rb
CHANGED
@@ -3,6 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Mailgun::Base do
|
4
4
|
|
5
5
|
it "should raise an error if the api_key has not been set" do
|
6
|
+
Mailgun.config { |c| c.api_key = nil }
|
6
7
|
expect do
|
7
8
|
Mailgun()
|
8
9
|
end.to raise_error ArgumentError
|
@@ -24,7 +25,7 @@ describe Mailgun::Base do
|
|
24
25
|
describe "Mailgun.new" do
|
25
26
|
it "Mailgun() method should return a new Mailgun object" do
|
26
27
|
mailgun = Mailgun({:api_key => "some-junk-string"})
|
27
|
-
mailgun.
|
28
|
+
expect(mailgun).to be_kind_of(Mailgun::Base)
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
@@ -34,16 +35,14 @@ describe Mailgun::Base do
|
|
34
35
|
end
|
35
36
|
|
36
37
|
it "Mailgun#mailboxes should return an instance of Mailgun::Mailbox" do
|
37
|
-
@mailgun.mailboxes.
|
38
|
+
expect(@mailgun.mailboxes).to be_kind_of(Mailgun::Mailbox)
|
38
39
|
end
|
39
40
|
|
40
41
|
it "Mailgun#routes should return an instance of Mailgun::Route" do
|
41
|
-
@mailgun.routes.
|
42
|
+
expect(@mailgun.routes).to be_kind_of(Mailgun::Route)
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
45
|
-
|
46
|
-
|
47
46
|
describe "internal helper methods" do
|
48
47
|
before :each do
|
49
48
|
@mailgun = Mailgun({:api_key => "some-junk-string"})
|
@@ -51,39 +50,44 @@ describe Mailgun::Base do
|
|
51
50
|
|
52
51
|
describe "Mailgun#base_url" do
|
53
52
|
it "should return https url if use_https is true" do
|
54
|
-
@mailgun.base_url.
|
53
|
+
expect(@mailgun.base_url).to eq "https://api:#{Mailgun.api_key}@#{Mailgun.mailgun_host}/#{Mailgun.api_version}"
|
55
54
|
end
|
56
55
|
end
|
57
56
|
|
58
57
|
describe "Mailgun.submit" do
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
58
|
+
let(:client_double) { double(Mailgun::Client) }
|
59
|
+
|
60
|
+
it "should send method and arguments to Mailgun::Client" do
|
61
|
+
expect(Mailgun::Client).to receive(:new)
|
62
|
+
.with('/')
|
63
|
+
.and_return(client_double)
|
64
|
+
expect(client_double).to receive(:test_method)
|
65
|
+
.with({:arg1=>"val1"})
|
66
|
+
.and_return('{}')
|
67
|
+
|
68
|
+
Mailgun.submit :test_method, '/', :arg1=>"val1"
|
64
69
|
end
|
65
70
|
end
|
66
|
-
|
67
71
|
end
|
68
72
|
|
69
73
|
describe "configuration" do
|
70
74
|
describe "default settings" do
|
71
|
-
it "api_version is
|
72
|
-
Mailgun.api_version.
|
75
|
+
it "api_version is v3" do
|
76
|
+
expect(Mailgun.api_version).to eql 'v3'
|
73
77
|
end
|
74
78
|
it "should use https by default" do
|
75
|
-
Mailgun.protocol.
|
79
|
+
expect(Mailgun.protocol).to eq "https"
|
76
80
|
end
|
77
81
|
it "mailgun_host is 'api.mailgun.net'" do
|
78
|
-
Mailgun.mailgun_host.
|
82
|
+
expect(Mailgun.mailgun_host).to eql 'api.mailgun.net'
|
79
83
|
end
|
80
84
|
|
81
85
|
it "test_mode is false" do
|
82
|
-
Mailgun.test_mode.
|
86
|
+
expect(Mailgun.test_mode).to eql false
|
83
87
|
end
|
84
88
|
|
85
89
|
it "domain is not set" do
|
86
|
-
Mailgun.domain.
|
90
|
+
expect(Mailgun.domain).to be_nil
|
87
91
|
end
|
88
92
|
end
|
89
93
|
|
@@ -99,27 +103,29 @@ describe Mailgun::Base do
|
|
99
103
|
end
|
100
104
|
end
|
101
105
|
|
106
|
+
after(:each) { Mailgun.configure { |c| c.domain = nil } }
|
107
|
+
|
102
108
|
it "allows me to set my API key easily" do
|
103
|
-
Mailgun.api_key.
|
109
|
+
expect(Mailgun.api_key).to eql 'some-api-key'
|
104
110
|
end
|
105
111
|
|
106
112
|
it "allows me to set the api_version attribute" do
|
107
|
-
Mailgun.api_version.
|
113
|
+
expect(Mailgun.api_version).to eql 'v2'
|
108
114
|
end
|
109
115
|
|
110
116
|
it "allows me to set the protocol attribute" do
|
111
|
-
Mailgun.protocol.
|
117
|
+
expect(Mailgun.protocol).to eql 'https'
|
112
118
|
end
|
113
|
-
|
119
|
+
|
114
120
|
it "allows me to set the mailgun_host attribute" do
|
115
|
-
Mailgun.mailgun_host.
|
121
|
+
expect(Mailgun.mailgun_host).to eql 'api.mailgun.net'
|
116
122
|
end
|
117
123
|
it "allows me to set the test_mode attribute" do
|
118
|
-
Mailgun.test_mode.
|
124
|
+
expect(Mailgun.test_mode).to eql false
|
119
125
|
end
|
120
126
|
|
121
127
|
it "allows me to set my domain easily" do
|
122
|
-
Mailgun.domain.
|
128
|
+
expect(Mailgun.domain).to eql 'some-domain'
|
123
129
|
end
|
124
130
|
end
|
125
131
|
end
|
data/spec/bounce_spec.rb
CHANGED
@@ -17,10 +17,10 @@ describe Mailgun::Bounce do
|
|
17
17
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
18
18
|
bounces_url = @mailgun.bounces(@sample[:domain]).send(:bounce_url)
|
19
19
|
|
20
|
-
Mailgun.
|
20
|
+
expect(Mailgun).to receive(:submit).
|
21
21
|
with(:get, bounces_url, {}).
|
22
22
|
and_return(sample_response)
|
23
|
-
|
23
|
+
|
24
24
|
@mailgun.bounces(@sample[:domain]).list
|
25
25
|
end
|
26
26
|
end
|
@@ -30,7 +30,7 @@ describe Mailgun::Bounce do
|
|
30
30
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
31
31
|
bounces_url = @mailgun.bounces(@sample[:domain]).send(:bounce_url, @sample[:email])
|
32
32
|
|
33
|
-
Mailgun.
|
33
|
+
expect(Mailgun).to receive(:submit).
|
34
34
|
with(:get, bounces_url).
|
35
35
|
and_return(sample_response)
|
36
36
|
|
@@ -43,7 +43,7 @@ describe Mailgun::Bounce do
|
|
43
43
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
44
44
|
bounces_url = @mailgun.bounces(@sample[:domain]).send(:bounce_url)
|
45
45
|
|
46
|
-
Mailgun.
|
46
|
+
expect(Mailgun).to receive(:submit).
|
47
47
|
with(:post, bounces_url, {:address => @sample[:email]} ).
|
48
48
|
and_return(sample_response)
|
49
49
|
|
@@ -56,7 +56,7 @@ describe Mailgun::Bounce do
|
|
56
56
|
sample_response = "{\"message\"=>\"Bounced address has been removed\", \"address\"=>\"postmaster@bsample.mailgun.org\"}"
|
57
57
|
bounces_url = @mailgun.bounces(@sample[:domain]).send(:bounce_url, @sample[:email])
|
58
58
|
|
59
|
-
Mailgun.
|
59
|
+
expect(Mailgun).to receive(:submit).
|
60
60
|
with(:delete, bounces_url).
|
61
61
|
and_return(sample_response)
|
62
62
|
|
data/spec/client_spec.rb
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'webmock/rspec'
|
4
|
+
|
5
|
+
describe Mailgun::Client do
|
6
|
+
subject { described_class.new(url) }
|
7
|
+
|
8
|
+
describe '#get' do
|
9
|
+
context 'without query params' do
|
10
|
+
let(:url) { 'https://api:key@api.mailgun.net/v3/routes' }
|
11
|
+
|
12
|
+
it 'sends a GET request to the given path' do
|
13
|
+
stub = stub_request(:get, 'https://api.mailgun.net/v3/routes')
|
14
|
+
.with(basic_auth: ['api', 'key'])
|
15
|
+
|
16
|
+
subject.get
|
17
|
+
|
18
|
+
expect(stub).to have_been_requested
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'with query params' do
|
23
|
+
let(:url) { 'https://api:key@api.mailgun.net/v3/routes' }
|
24
|
+
|
25
|
+
it 'sends a GET request to the given path with the params' do
|
26
|
+
stub = stub_request(:get, 'https://api.mailgun.net/v3/routes?limit=10')
|
27
|
+
.with(basic_auth: ['api', 'key'])
|
28
|
+
|
29
|
+
subject.get(limit: 10)
|
30
|
+
|
31
|
+
expect(stub).to have_been_requested
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when an error happens' do
|
36
|
+
let(:url) { 'https://api:key@api.mailgun.net/v3/routes/123' }
|
37
|
+
let(:error_body) { { "message" => "Expression is missing" }.to_json }
|
38
|
+
|
39
|
+
before do
|
40
|
+
stub_request(:get, 'https://api.mailgun.net/v3/routes/123')
|
41
|
+
.with(basic_auth: ['api', 'key'])
|
42
|
+
.to_return(status: [400, "Bad Request"],
|
43
|
+
body: error_body)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'raises exception that contains the error code and body' do
|
47
|
+
begin
|
48
|
+
subject.get
|
49
|
+
rescue => e
|
50
|
+
@exception = e
|
51
|
+
end
|
52
|
+
|
53
|
+
expect(@exception.http_code).to eq(400)
|
54
|
+
expect(@exception.http_body).to eq(error_body)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe '#post' do
|
60
|
+
let(:url) { 'https://api:key@api.mailgun.net/v3/routes' }
|
61
|
+
let(:params) { { action: ['forward', 'stop'], description: 'yolo' } }
|
62
|
+
let(:response) do
|
63
|
+
{
|
64
|
+
"message" => "Route has been created",
|
65
|
+
"route" => {
|
66
|
+
"actions" => [
|
67
|
+
"forward(\"stefan@metrilo.com\")",
|
68
|
+
"stop()"
|
69
|
+
],
|
70
|
+
"created_at" => "Wed, 15 Jun 2016 07:10:09 GMT",
|
71
|
+
"description" => "Sample route",
|
72
|
+
"expression" => "match_recipient(\".*@metrilo.com\")",
|
73
|
+
"id" => "5760ff5163badc3a756f9d2c",
|
74
|
+
"priority" => 5
|
75
|
+
}
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
before do
|
80
|
+
stub_request(:post, 'https://api.mailgun.net/v3/routes')
|
81
|
+
.with(basic_auth: ['api', 'key'],
|
82
|
+
body: 'action=forward&action=stop&description=yolo')
|
83
|
+
.to_return(body: response.to_json)
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'sends a POST request with the params form-encoded' do
|
87
|
+
expect(subject.post(params)).to eq(response.to_json)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe '#put' do
|
92
|
+
let(:url) { 'https://api:key@api.mailgun.net/v3/routes/123' }
|
93
|
+
|
94
|
+
it 'sends a PUT request with the params form-encoded' do
|
95
|
+
stub = stub_request(:put, 'https://api.mailgun.net/v3/routes/123')
|
96
|
+
.with(basic_auth: ['api', 'key'],
|
97
|
+
body: 'action=forward&action=stop&description=yolo')
|
98
|
+
|
99
|
+
subject.put(action: ['forward', 'stop'],
|
100
|
+
description: 'yolo')
|
101
|
+
|
102
|
+
expect(stub).to have_been_requested
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe '#delete' do
|
107
|
+
let(:url) { 'https://api:key@api.mailgun.net/v3/routes/123' }
|
108
|
+
|
109
|
+
it 'sends a DELETE request with the params form-encoded' do
|
110
|
+
stub = stub_request(:delete, 'https://api.mailgun.net/v3/routes/123')
|
111
|
+
.with(basic_auth: ['api', 'key'])
|
112
|
+
|
113
|
+
subject.delete
|
114
|
+
|
115
|
+
expect(stub).to have_been_requested
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
data/spec/complaint_spec.rb
CHANGED
@@ -29,7 +29,7 @@ EOF
|
|
29
29
|
|
30
30
|
complaints_url = @mailgun.complaints(@sample[:domain]).send(:complaint_url)
|
31
31
|
|
32
|
-
Mailgun.
|
32
|
+
expect(Mailgun).to receive(:submit).
|
33
33
|
with(:get, complaints_url, {}).
|
34
34
|
and_return(sample_response)
|
35
35
|
|
@@ -49,7 +49,7 @@ EOF
|
|
49
49
|
|
50
50
|
complaints_url = @mailgun.complaints(@sample[:domain]).send(:complaint_url)
|
51
51
|
|
52
|
-
Mailgun.
|
52
|
+
expect(Mailgun).to receive(:submit)
|
53
53
|
.with(:post, complaints_url, {:address => @sample[:email]})
|
54
54
|
.and_return(sample_response)
|
55
55
|
|
@@ -72,7 +72,7 @@ EOF
|
|
72
72
|
|
73
73
|
complaints_url = @mailgun.complaints(@sample[:domain]).send(:complaint_url, @sample[:email])
|
74
74
|
|
75
|
-
Mailgun.
|
75
|
+
expect(Mailgun).to receive(:submit)
|
76
76
|
.with(:get, complaints_url)
|
77
77
|
.and_return(sample_response)
|
78
78
|
|
@@ -92,7 +92,7 @@ EOF
|
|
92
92
|
|
93
93
|
complaints_url = @mailgun.complaints(@sample[:domain]).send(:complaint_url, @sample[:email])
|
94
94
|
|
95
|
-
Mailgun.
|
95
|
+
expect(Mailgun).to receive(:submit)
|
96
96
|
.with(:delete, complaints_url)
|
97
97
|
.and_return(sample_response)
|
98
98
|
|
data/spec/domain_spec.rb
CHANGED
@@ -18,10 +18,10 @@ describe Mailgun::Domain do
|
|
18
18
|
sample_response = "{\"total_count\": 1, \"items\": [{\"created_at\": \"Tue, 12 Feb 2013 20:13:49 GMT\", \"smtp_login\": \"postmaster@sample.mailgun.org\", \"name\": \"sample.mailgun.org\", \"smtp_password\": \"67bw67bz7w\" }]}"
|
19
19
|
domains_url = @mailgun.domains.send(:domain_url)
|
20
20
|
|
21
|
-
Mailgun.
|
21
|
+
expect(Mailgun).to receive(:submit).
|
22
22
|
with(:get, domains_url, {}).
|
23
23
|
and_return(sample_response)
|
24
|
-
|
24
|
+
|
25
25
|
@mailgun.domains.list
|
26
26
|
end
|
27
27
|
end
|
@@ -31,7 +31,7 @@ describe Mailgun::Domain do
|
|
31
31
|
sample_response = "{\"domain\": {\"created_at\": \"Tue, 12 Feb 2013 20:13:49 GMT\", \"smtp_login\": \"postmaster@bample.mailgun.org\", \"name\": \"sample.mailgun.org\", \"smtp_password\": \"67bw67bz7w\" }, \"receiving_dns_records\": [], \"sending_dns_records\": []}"
|
32
32
|
domains_url = @mailgun.domains.send(:domain_url, @sample[:domain])
|
33
33
|
|
34
|
-
Mailgun.
|
34
|
+
expect(Mailgun).to receive(:submit).
|
35
35
|
with(:get, domains_url).
|
36
36
|
and_return(sample_response)
|
37
37
|
|
@@ -44,7 +44,7 @@ describe Mailgun::Domain do
|
|
44
44
|
sample_response = "{\"domain\": {\"created_at\": \"Tue, 12 Feb 2013 20:13:49 GMT\", \"smtp_login\": \"postmaster@sample.mailgun.org\",\"name\": \"sample.mailgun.org\",\"smtp_password\": \"67bw67bz7w\"}, \"message\": \"Domain has been created\"}"
|
45
45
|
domains_url = @mailgun.domains.send(:domain_url)
|
46
46
|
|
47
|
-
Mailgun.
|
47
|
+
expect(Mailgun).to receive(:submit).
|
48
48
|
with(:post, domains_url, {:name => @sample[:domain]} ).
|
49
49
|
and_return(sample_response)
|
50
50
|
|
@@ -57,7 +57,7 @@ describe Mailgun::Domain do
|
|
57
57
|
sample_response = "{\"message\": \"Domain has been deleted\"}"
|
58
58
|
domains_url = @mailgun.domains.send(:domain_url, @sample[:domain])
|
59
59
|
|
60
|
-
Mailgun.
|
60
|
+
expect(Mailgun).to receive(:submit).
|
61
61
|
with(:delete, domains_url).
|
62
62
|
and_return(sample_response)
|
63
63
|
|
@@ -65,4 +65,16 @@ describe Mailgun::Domain do
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
+
describe 'verify domain' do
|
69
|
+
it 'should make a PUT request to verify with correct params' do
|
70
|
+
sample_response = "{\"domain\": {\"created_at\": \"Tue, 12 Feb 2013 20:13:49 GMT\", \"smtp_login\": \"postmaster@bample.mailgun.org\", \"name\": \"sample.mailgun.org\", \"smtp_password\": \"67bw67bz7w\", \"state\": \"active\"}, \"message\": \"Domain DNS records have been updated\", \"receiving_dns_records\": [], \"sending_dns_records\": []}"
|
71
|
+
verify_domain_url = "#{@mailgun.domains.send(:domain_url, @sample[:domain])}/verify"
|
72
|
+
|
73
|
+
expect(Mailgun).to receive(:submit)
|
74
|
+
.with(:put, verify_domain_url)
|
75
|
+
.and_return(sample_response)
|
76
|
+
|
77
|
+
@mailgun.domains.verify(@sample[:domain])
|
78
|
+
end
|
79
|
+
end
|
68
80
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module MailgunHelper
|
2
|
+
def generate_request_auth(api_key, offset=0)
|
3
|
+
timestamp = Time.now.to_i + offset * 60
|
4
|
+
token = ([nil]*50).map { ((48..57).to_a+(65..90).to_a+(97..122).to_a).sample.chr }.join
|
5
|
+
signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), api_key, '%s%s' % [timestamp, token])
|
6
|
+
|
7
|
+
return timestamp, token, signature
|
8
|
+
end
|
9
|
+
end
|
data/spec/list/member_spec.rb
CHANGED
@@ -18,10 +18,10 @@ describe Mailgun::MailingList::Member do
|
|
18
18
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
19
19
|
mailing_list_members_url = @mailgun.list_members(@sample[:list_email]).send(:list_member_url)
|
20
20
|
|
21
|
-
Mailgun.
|
21
|
+
expect(Mailgun).to receive(:submit).
|
22
22
|
with(:get, mailing_list_members_url, {}).
|
23
23
|
and_return(sample_response)
|
24
|
-
|
24
|
+
|
25
25
|
@mailgun.list_members(@sample[:list_email]).list
|
26
26
|
end
|
27
27
|
end
|
@@ -30,8 +30,8 @@ describe Mailgun::MailingList::Member do
|
|
30
30
|
it "should make a GET request with correct params to find given email address" do
|
31
31
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
32
32
|
mailing_list_members_url = @mailgun.list_members(@sample[:list_email]).send(:list_member_url, @sample[:email])
|
33
|
-
|
34
|
-
Mailgun.
|
33
|
+
|
34
|
+
expect(Mailgun).to receive(:submit).
|
35
35
|
with(:get, mailing_list_members_url).
|
36
36
|
and_return(sample_response)
|
37
37
|
|
@@ -44,7 +44,7 @@ describe Mailgun::MailingList::Member do
|
|
44
44
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
45
45
|
mailing_list_members_url = @mailgun.list_members(@sample[:list_email]).send(:list_member_url)
|
46
46
|
|
47
|
-
Mailgun.
|
47
|
+
expect(Mailgun).to receive(:submit).
|
48
48
|
with(:post, mailing_list_members_url, {
|
49
49
|
:address => @sample[:email]
|
50
50
|
}).
|
@@ -57,7 +57,7 @@ describe Mailgun::MailingList::Member do
|
|
57
57
|
describe "update member in list" do
|
58
58
|
it "should make a PUT request with correct params" do
|
59
59
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
60
|
-
Mailgun.
|
60
|
+
expect(Mailgun).to receive(:submit).
|
61
61
|
with(:put, "#{@mailgun.list_members(@sample[:list_email]).send(:list_member_url, @sample[:email])}", {
|
62
62
|
:address => @sample[:email]
|
63
63
|
}).
|
@@ -71,7 +71,7 @@ describe Mailgun::MailingList::Member do
|
|
71
71
|
it "should make a DELETE request with correct params" do
|
72
72
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
73
73
|
mailing_list_members_url = @mailgun.list_members(@sample[:list_email]).send(:list_member_url, @sample[:email])
|
74
|
-
Mailgun.
|
74
|
+
expect(Mailgun).to receive(:submit).
|
75
75
|
with(:delete, mailing_list_members_url).
|
76
76
|
and_return(sample_response)
|
77
77
|
|
data/spec/list/message_spec.rb
CHANGED
@@ -16,7 +16,7 @@ describe Mailgun::Log do
|
|
16
16
|
it "should make a POST request to send an email" do
|
17
17
|
|
18
18
|
sample_response = "{\"items\": [{\"size_bytes\": 0, \"mailbox\": \"postmaster@bsample.mailgun.org\" } ]}"
|
19
|
-
Mailgun.
|
19
|
+
expect(Mailgun).to receive(:submit)
|
20
20
|
.with(:get, "#{@mailgun.lists.send(:list_url, @sample[:list_email])}")
|
21
21
|
.and_return(sample_response)
|
22
22
|
|
@@ -29,7 +29,7 @@ describe Mailgun::Log do
|
|
29
29
|
:text => "yeah, we're gonna need you to come in on friday...yeah.",
|
30
30
|
:from => "lumberg.bill@initech.mailgun.domain"
|
31
31
|
}
|
32
|
-
Mailgun.
|
32
|
+
expect(Mailgun).to receive(:submit) \
|
33
33
|
.with(:post, @mailgun.messages.messages_url, parameters) \
|
34
34
|
.and_return(sample_response)
|
35
35
|
|
@@ -37,4 +37,4 @@ describe Mailgun::Log do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
end
|
40
|
+
end
|