pew_pew 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,38 +1,38 @@
1
- require 'spec_helper'
1
+ module PewPew
2
+ RSpec.describe Config do
3
+ {
4
+ BASE_URI: 'https://api.mailgun.net/v2',
5
+ USER_AGENT: "PewPew Ruby Gem #{VERSION}",
6
+ USERNAME: 'api'
7
+ }.each do |constant, value|
8
+ context "::#{constant}" do
9
+ subject { described_class.const_get(constant) }
2
10
 
3
- describe PewPew::Config do
4
- {
5
- BASE_URI: 'https://api.mailgun.net/v2',
6
- USER_AGENT: "PewPew Ruby Gem #{PewPew::VERSION}",
7
- USERNAME: 'api'
8
- }.each do |constant, value|
9
- context constant do
10
- subject { described_class.const_get(constant) }
11
-
12
- it { should == value }
11
+ it { should == value }
12
+ end
13
13
  end
14
- end
15
14
 
16
- subject { Class.new { include PewPew::Config }.new }
15
+ subject(:config) { Class.new { include Config }.new }
17
16
 
18
- context 'defaults' do
19
- its(:api_key) { should be_nil }
20
- its(:domain) { should be_nil }
21
- end
17
+ context 'defaults' do
18
+ its(:api_key) { should be_nil }
19
+ its(:domain) { should be_nil }
20
+ end
22
21
 
23
- context '#api_key=' do
24
- specify do
25
- expect {
26
- subject.api_key = 'key-02n9f3ijl9sm9u97-8p7r-d7-15q-ui1'
27
- }.to change(subject, :api_key).to('key-02n9f3ijl9sm9u97-8p7r-d7-15q-ui1')
22
+ context '#api_key=' do
23
+ specify do
24
+ expect { config.api_key = 'key-02n9f3ijl9sm9u97-8p7r-d7-15q-ui1' }
25
+ .to change(config, :api_key)
26
+ .to('key-02n9f3ijl9sm9u97-8p7r-d7-15q-ui1')
27
+ end
28
28
  end
29
- end
30
29
 
31
- context '#domain=' do
32
- specify do
33
- expect {
34
- subject.domain = 'pewpew.mailgun.org'
35
- }.to change(subject, :domain).to('pewpew.mailgun.org')
30
+ context '#domain=' do
31
+ specify do
32
+ expect {
33
+ config.domain = 'pewpew.mailgun.org'
34
+ }.to change(config, :domain).to('pewpew.mailgun.org')
35
+ end
36
36
  end
37
37
  end
38
38
  end
@@ -1,46 +1,52 @@
1
- require 'spec_helper'
2
-
3
- describe PewPew::Resource do
4
- let(:client) { PewPew::Client.new }
5
- let(:resource) { Class.new { include PewPew::Resource }.new(client) }
6
-
7
- context '#connection' do
8
- subject { resource.send(:connection) }
9
-
10
- context 'middleware' do
11
- let(:handlers) { subject.builder.handlers }
12
-
13
- [
14
- PewPew::Resource::ResponseDecorator,
15
- FaradayMiddleware::Mashify,
16
- FaradayMiddleware::ParseJson,
17
- Faraday::Request::Multipart,
18
- Faraday::Request::UrlEncoded,
19
- Faraday::Adapter::NetHttp
20
- ].each.with_index do |middleware, index|
21
- it "uses #{middleware}" do
22
- handlers.index(middleware).should == index
1
+ module PewPew
2
+ RSpec.describe Resource do
3
+ let(:client) { Client.new }
4
+
5
+ subject(:resource) { Class.new { include Resource }.new(client) }
6
+
7
+ context '#connection' do
8
+ let(:connection) { resource.send(:connection) }
9
+
10
+ context 'middleware' do
11
+ let(:handlers) { connection.builder.handlers }
12
+
13
+ [
14
+ Resource::ResponseDecorator,
15
+ Faraday::Mashify::Middleware,
16
+ Faraday::Response::Json,
17
+ Faraday::Multipart::Middleware,
18
+ Faraday::Request::UrlEncoded
19
+ ].each.with_index do |middleware, index|
20
+ it "uses #{middleware}" do
21
+ expect(handlers.index(middleware)).to eq index
22
+ end
23
23
  end
24
24
  end
25
25
  end
26
26
  end
27
- end
28
27
 
29
- describe PewPew::Resource::ResponseDecorator do
30
- it { should be_a(Faraday::Response::Middleware) }
28
+ RSpec.describe Resource::ResponseDecorator do
29
+ subject(:middleware) { described_class.new }
31
30
 
32
- it 'converts an array response into a mash' do
33
- env = { body: [:response] }
34
- subject.on_complete(env)
35
- env[:body].total_count.should == 1
36
- env[:body].items.should == [:response]
37
- end
31
+ it { is_expected.to be_a Faraday::Middleware }
38
32
 
39
- it 'stores the request status on the response body' do
40
- env = { body: PewPew::Response.new, status: 200 }
33
+ it 'converts an array response into a mash' do
34
+ env = { body: [:response] }
41
35
 
42
- expect {
43
- subject.on_complete(env)
44
- }.to change(env[:body], :status).from(nil).to(200)
36
+ middleware.on_complete env
37
+
38
+ expect(env).to match a_hash_including(
39
+ body: an_object_having_attributes(total_count: 1, items: [:response])
40
+ )
41
+ end
42
+
43
+ it 'stores the request status on the response body' do
44
+ env = { body: Response.new, status: 200 }
45
+
46
+ expect { middleware.on_complete env }
47
+ .to change(env[:body], :status)
48
+ .from(nil)
49
+ .to(200)
50
+ end
45
51
  end
46
52
  end
@@ -1,78 +1,82 @@
1
- require 'spec_helper'
1
+ module PewPew
2
+ module Resources
3
+ RSpec.describe Bounces, :resource, :domain do
4
+ let(:resource) { described_class.new(client) }
2
5
 
3
- describe PewPew::Resources::Bounces, :resource, :domain do
4
- let(:resource) { described_class.new(client) }
6
+ context '#all' do
7
+ let(:response) { resource.all }
5
8
 
6
- context '#all' do
7
- let(:response) { resource.all }
9
+ subject { response }
8
10
 
9
- subject { response }
11
+ specify { should be_success }
10
12
 
11
- specify { should be_success }
13
+ its(:status) { should == 200 }
14
+ its(:total_count) { should == 1 }
12
15
 
13
- its(:status) { should == 200 }
14
- its(:total_count) { should == 1 }
16
+ context 'item' do
17
+ subject { response.items.first }
15
18
 
16
- context 'item' do
17
- subject { response.items.first }
19
+ its(:address) { should == 'test@example.com' }
20
+ its(:code) { should == '554' }
21
+ its(:error) { should == 'Relay access denied' }
22
+ its(:created_at) { should == 'Sat, 02 Jun 2012 07:24:08 GMT' }
23
+ end
24
+ end
18
25
 
19
- its(:address) { should == 'test@example.com' }
20
- its(:code) { should == '554' }
21
- its(:error) { should == 'Relay access denied' }
22
- its(:created_at) { should == 'Sat, 02 Jun 2012 07:24:08 GMT' }
23
- end
24
- end
26
+ context '#find' do
27
+ let(:response) { resource.find('test@example.com') }
25
28
 
26
- context '#find' do
27
- let(:response) { resource.find('test@example.com') }
29
+ subject { response }
28
30
 
29
- subject { response }
31
+ specify { should be_success }
30
32
 
31
- specify { should be_success }
33
+ its(:status) { should == 200 }
32
34
 
33
- its(:status) { should == 200 }
35
+ context 'bounce' do
36
+ subject { response.bounce }
34
37
 
35
- context 'bounce' do
36
- subject { response.bounce }
37
-
38
- its(:address) { should == 'test@example.com' }
39
- its(:code) { should == '554' }
40
- its(:error) { should == 'Relay access denied' }
41
- its(:created_at) { should == 'Sat, 02 Jun 2012 07:24:08 GMT' }
42
- end
43
- end
38
+ its(:address) { should == 'test@example.com' }
39
+ its(:code) { should == '554' }
40
+ its(:error) { should == 'Relay access denied' }
41
+ its(:created_at) { should == 'Sat, 02 Jun 2012 07:24:08 GMT' }
42
+ end
43
+ end
44
44
 
45
- context '#create' do
46
- let(:params) do
47
- {
48
- address: 'test@example.com',
49
- code: 554,
50
- error: 'Relay access denied',
51
- }
52
- end
45
+ context '#create' do
46
+ let(:params) do
47
+ {
48
+ address: 'test@example.com',
49
+ code: 554,
50
+ error: 'Relay access denied',
51
+ }
52
+ end
53
53
 
54
- let(:response) { resource.create(params) }
54
+ let(:response) { resource.create(params) }
55
55
 
56
- subject { response }
56
+ subject { response }
57
57
 
58
- specify { should be_success }
58
+ specify { should be_success }
59
59
 
60
- its(:status) { should == 200 }
61
- its(:message) { should == 'Address has been added to the bounces table' }
60
+ its(:status) { should == 200 }
61
+ its(:message) {
62
+ should == 'Address has been added to the bounces table'
63
+ }
62
64
 
63
- its(:address) { should == 'test@example.com' }
64
- end
65
+ its(:address) { should == 'test@example.com' }
66
+ end
65
67
 
66
- context '#remove' do
67
- subject { response }
68
+ context '#remove' do
69
+ subject { response }
68
70
 
69
- let(:response) { resource.remove('test@example.com') }
71
+ let(:response) { resource.remove('test@example.com') }
70
72
 
71
- specify { should be_success }
73
+ specify { should be_success }
72
74
 
73
- its(:status) { should == 200 }
74
- its(:message) { should == 'Bounced address has been removed' }
75
+ its(:status) { should == 200 }
76
+ its(:message) { should == 'Bounced address has been removed' }
75
77
 
76
- its(:address) { should == 'test@example.com' }
78
+ its(:address) { should == 'test@example.com' }
79
+ end
80
+ end
77
81
  end
78
82
  end