drip-ruby 2.0.0 → 3.0.0

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.
@@ -2,25 +2,17 @@ require File.dirname(__FILE__) + '/../../test_helper.rb'
2
2
 
3
3
  class Drip::Client::WorkflowTriggersTest < Drip::TestCase
4
4
  def setup
5
- @stubs = Faraday::Adapter::Test::Stubs.new
6
-
7
- @connection = Faraday.new do |builder|
8
- builder.adapter :test, @stubs
9
- end
10
-
11
5
  @client = Drip::Client.new { |c| c.account_id = "12345" }
12
- @client.expects(:connection).at_least_once.returns(@connection)
13
6
  end
14
7
 
15
8
  context "#workflow_triggers" do
16
9
  setup do
17
10
  @id = 9999999
18
11
  @response_status = 200
19
- @response_body = stub
12
+ @response_body = "stub"
20
13
 
21
- @stubs.get "12345/workflows/#{@id}/triggers" do
22
- [@response_status, {}, @response_body]
23
- end
14
+ stub_request(:get, "https://api.getdrip.com/v2/12345/workflows/#{@id}/triggers").
15
+ to_return(status: @response_status, body: @response_body, headers: {})
24
16
  end
25
17
 
26
18
  should "send the right request" do
@@ -43,11 +35,10 @@ class Drip::Client::WorkflowTriggersTest < Drip::TestCase
43
35
  @payload = { "triggers" => [@data] }.to_json
44
36
 
45
37
  @response_status = 200
46
- @response_body = stub
38
+ @response_body = "stub"
47
39
 
48
- @stubs.post "12345/workflows/#{@id}/triggers", @payload do
49
- [@response_status, {}, @response_body]
50
- end
40
+ stub_request(:post, "https://api.getdrip.com/v2/12345/workflows/#{@id}/triggers").
41
+ to_return(status: @response_status, body: @response_body, headers: {})
51
42
  end
52
43
 
53
44
  should "send the right request" do
@@ -70,11 +61,10 @@ class Drip::Client::WorkflowTriggersTest < Drip::TestCase
70
61
  @payload = { "triggers" => [@data] }.to_json
71
62
 
72
63
  @response_status = 200
73
- @response_body = stub
64
+ @response_body = "stub"
74
65
 
75
- @stubs.put "12345/workflows/#{@id}/triggers", @payload do
76
- [@response_status, {}, @response_body]
77
- end
66
+ stub_request(:put, "https://api.getdrip.com/v2/12345/workflows/#{@id}/triggers").
67
+ to_return(status: @response_status, body: @response_body, headers: {})
78
68
  end
79
69
 
80
70
  should "send the right request" do
@@ -2,24 +2,16 @@ require File.dirname(__FILE__) + '/../../test_helper.rb'
2
2
 
3
3
  class Drip::Client::WorkflowsTest < Drip::TestCase
4
4
  def setup
5
- @stubs = Faraday::Adapter::Test::Stubs.new
6
-
7
- @connection = Faraday.new do |builder|
8
- builder.adapter :test, @stubs
9
- end
10
-
11
5
  @client = Drip::Client.new { |c| c.account_id = "12345" }
12
- @client.expects(:connection).at_least_once.returns(@connection)
13
6
  end
14
7
 
15
8
  context "#workflows" do
16
9
  setup do
17
10
  @response_status = 200
18
- @response_body = stub
11
+ @response_body = "stub"
19
12
 
20
- @stubs.get "12345/workflows" do
21
- [@response_status, {}, @response_body]
22
- end
13
+ stub_request(:get, "https://api.getdrip.com/v2/12345/workflows").
14
+ to_return(status: @response_status, body: @response_body, headers: {})
23
15
  end
24
16
 
25
17
  should "send the right request" do
@@ -31,12 +23,11 @@ class Drip::Client::WorkflowsTest < Drip::TestCase
31
23
  context "#workflow" do
32
24
  setup do
33
25
  @response_status = 200
34
- @response_body = stub
26
+ @response_body = "stub"
35
27
  @id = 1234
36
28
 
37
- @stubs.get "12345/workflows/#{@id}" do
38
- [@response_status, {}, @response_body]
39
- end
29
+ stub_request(:get, "https://api.getdrip.com/v2/12345/workflows/#{@id}").
30
+ to_return(status: @response_status, body: @response_body, headers: {})
40
31
  end
41
32
 
42
33
  should "send the right request" do
@@ -48,12 +39,11 @@ class Drip::Client::WorkflowsTest < Drip::TestCase
48
39
  context "#activate_workflow" do
49
40
  setup do
50
41
  @response_status = 204
51
- @response_body = stub
42
+ @response_body = nil
52
43
  @id = 1234
53
44
 
54
- @stubs.post "12345/workflows/#{@id}/activate" do
55
- [@response_status, {}, @response_body]
56
- end
45
+ stub_request(:post, "https://api.getdrip.com/v2/12345/workflows/#{@id}/activate").
46
+ to_return(status: @response_status, body: @response_body, headers: {})
57
47
  end
58
48
 
59
49
  should "send the right request" do
@@ -65,12 +55,11 @@ class Drip::Client::WorkflowsTest < Drip::TestCase
65
55
  context "#pause_workflow" do
66
56
  setup do
67
57
  @response_status = 204
68
- @response_body = stub
58
+ @response_body = nil
69
59
  @id = 1234
70
60
 
71
- @stubs.post "12345/workflows/#{@id}/pause" do
72
- [@response_status, {}, @response_body]
73
- end
61
+ stub_request(:post, "https://api.getdrip.com/v2/12345/workflows/#{@id}/pause").
62
+ to_return(status: @response_status, body: @response_body, headers: {})
74
63
  end
75
64
 
76
65
  should "send the right request" do
@@ -89,11 +78,10 @@ class Drip::Client::WorkflowsTest < Drip::TestCase
89
78
  @payload = { "subscribers" => [@data] }.to_json
90
79
 
91
80
  @response_status = 204
92
- @response_body = stub
81
+ @response_body = nil
93
82
 
94
- @stubs.post "12345/workflows/#{@id}/subscribers", @payload do
95
- [@response_status, {}, @response_body]
96
- end
83
+ stub_request(:post, "https://api.getdrip.com/v2/12345/workflows/#{@id}/subscribers").
84
+ to_return(status: @response_status, body: @response_body, headers: {})
97
85
  end
98
86
 
99
87
  should "send the right request" do
@@ -105,13 +93,12 @@ class Drip::Client::WorkflowsTest < Drip::TestCase
105
93
  context "#remove_subscriber_workflow" do
106
94
  setup do
107
95
  @response_status = 200
108
- @response_body = stub
96
+ @response_body = "stub"
109
97
  @id = 1234
110
98
  @email = "someone@example.com"
111
99
 
112
- @stubs.delete "12345/workflows/#{@id}/subscribers/#{CGI.escape @email}" do
113
- [@response_status, {}, @response_body]
114
- end
100
+ stub_request(:delete, "https://api.getdrip.com/v2/12345/workflows/#{@id}/subscribers/#{CGI.escape @email}").
101
+ to_return(status: @response_status, body: @response_body, headers: {})
115
102
  end
116
103
 
117
104
  should "send the right request" do
@@ -11,6 +11,19 @@ class Drip::ClientTest < Drip::TestCase
11
11
  assert_equal "aaaa", client.api_key
12
12
  end
13
13
 
14
+ should "accept url prefix" do
15
+ client = Drip::Client.new do |config|
16
+ config.url_prefix = "aaaa"
17
+ end
18
+
19
+ assert_equal "aaaa", client.url_prefix
20
+ end
21
+
22
+ should "have default url prefix" do
23
+ client = Drip::Client.new
24
+ assert_equal "https://api.getdrip.com/v2/", client.url_prefix
25
+ end
26
+
14
27
  should "accept access token" do
15
28
  client = Drip::Client.new do |config|
16
29
  config.access_token = "aaaa"
@@ -61,8 +74,32 @@ class Drip::ClientTest < Drip::TestCase
61
74
  end
62
75
 
63
76
  should "use Basic authentication" do
64
- header = "Basic #{Base64.encode64(@key + ":")}".strip
65
- assert_equal header, @client.connection.headers["Authorization"]
77
+ stub_request(:get, "https://api.getdrip.com/v2/testpath").
78
+ to_return(status: 200, body: "", headers: {})
79
+
80
+ @client.get("testpath")
81
+
82
+ header = "Basic #{Base64.encode64(@key + ':')}".strip
83
+ assert_requested :get, "https://api.getdrip.com/v2/testpath", headers: { 'Authorization' => header }
84
+ end
85
+ end
86
+
87
+ context "given a different url prefix" do
88
+ setup do
89
+ @key = "aaaa"
90
+ @url_prefix = "https://api.example.com/v9001/"
91
+ @client = Drip::Client.new do |config|
92
+ config.api_key = @key
93
+ config.url_prefix = @url_prefix
94
+ end
95
+ end
96
+
97
+ should "connect to alternate prefix" do
98
+ stub_request(:get, "https://api.example.com/v9001/testpath").
99
+ to_return(status: 200, body: "", headers: {})
100
+ @client.get("testpath")
101
+
102
+ assert_requested :get, "https://api.example.com/v9001/testpath"
66
103
  end
67
104
  end
68
105
 
@@ -75,8 +112,38 @@ class Drip::ClientTest < Drip::TestCase
75
112
  end
76
113
 
77
114
  should "use Bearer token authentication" do
115
+ stub_request(:get, "https://api.getdrip.com/v2/testpath").
116
+ to_return(status: 200, body: "", headers: {})
117
+ @client.get("testpath")
78
118
  header = "Bearer #{@key}"
79
- assert_equal header, @client.connection.headers["Authorization"]
119
+ assert_requested :get, "https://api.getdrip.com/v2/testpath", headers: { 'Authorization' => header }
120
+ end
121
+ end
122
+
123
+ context "given a redirecting url" do
124
+ setup do
125
+ @client = Drip::Client.new
126
+ end
127
+
128
+ should "follow redirect" do
129
+ stub_request(:get, "https://api.getdrip.com/v2/testpath").
130
+ to_return(status: 301, body: "", headers: { "Location" => "https://api.example.com/mytestpath" })
131
+ stub_request(:get, "https://api.example.com/mytestpath").
132
+ to_return(status: 200, body: "mybody")
133
+ response = @client.get("testpath")
134
+ assert_requested :get, "https://api.getdrip.com/v2/testpath"
135
+ assert_requested :get, "https://api.example.com/mytestpath"
136
+ assert_equal "mybody", response.body
137
+ end
138
+
139
+ should "not follow too many redirects" do
140
+ stub_request(:get, "https://api.getdrip.com/v2/testpath").
141
+ to_return(status: 301, body: "", headers: { "Location" => "https://api.example.com/mytestpath" })
142
+ stub_request(:get, "https://api.example.com/mytestpath").
143
+ to_return(status: 302, body: "", headers: { "Location" => "https://api.getdrip.com/v2/testpath" })
144
+ assert_raises(Drip::TooManyRedirectsError) { @client.get("testpath") }
145
+ assert_requested :get, "https://api.getdrip.com/v2/testpath", times: 5
146
+ assert_requested :get, "https://api.example.com/mytestpath", times: 5
80
147
  end
81
148
  end
82
149
  end
data/test/test_helper.rb CHANGED
@@ -4,14 +4,7 @@ require "drip"
4
4
  require "minitest/autorun"
5
5
  require "shoulda-context"
6
6
  require "mocha/setup"
7
- # require "webmock/minitest"
8
- # require "vcr"
9
- require "faraday"
10
-
11
- # VCR.configure do |c|
12
- # c.cassette_library_dir = 'test/cassettes'
13
- # c.hook_into :webmock # or :fakeweb
14
- # end
7
+ require "webmock/minitest"
15
8
 
16
9
  class Drip::TestCase < Minitest::Test
17
10
  def expand_fixture_path(path)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drip-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derrick Reimer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-27 00:00:00.000000000 Z
11
+ date: 2018-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,89 +25,89 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '5.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '5.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: shoulda-context
42
+ name: mocha
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '1.1'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.0'
54
+ version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: mocha
56
+ name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.1'
61
+ version: '10.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.1'
68
+ version: '10.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: minitest
70
+ name: rubocop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '5.0'
75
+ version: 0.56.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '5.0'
82
+ version: 0.56.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: faraday
84
+ name: shoulda-context
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.13'
90
- type: :runtime
89
+ version: '1.0'
90
+ type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.13'
96
+ version: '1.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: faraday_middleware
98
+ name: webmock
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0.12'
104
- type: :runtime
103
+ version: '3.4'
104
+ type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0.12'
110
+ version: '3.4'
111
111
  description: A simple wrapper for the Drip API
112
112
  email:
113
113
  - derrickreimer@gmail.com
@@ -119,6 +119,7 @@ files:
119
119
  - ".rubocop.yml"
120
120
  - ".rubocop_todo.yml"
121
121
  - ".travis.yml"
122
+ - CHANGELOG.md
122
123
  - Gemfile
123
124
  - LICENSE.txt
124
125
  - README.md
@@ -135,7 +136,6 @@ files:
135
136
  - lib/drip/client/events.rb
136
137
  - lib/drip/client/forms.rb
137
138
  - lib/drip/client/orders.rb
138
- - lib/drip/client/purchases.rb
139
139
  - lib/drip/client/subscribers.rb
140
140
  - lib/drip/client/tags.rb
141
141
  - lib/drip/client/webhooks.rb
@@ -155,6 +155,7 @@ files:
155
155
  - lib/drip/collections/webhooks.rb
156
156
  - lib/drip/collections/workflow_triggers.rb
157
157
  - lib/drip/collections/workflows.rb
158
+ - lib/drip/errors.rb
158
159
  - lib/drip/resource.rb
159
160
  - lib/drip/resources.rb
160
161
  - lib/drip/resources/account.rb
@@ -180,7 +181,6 @@ files:
180
181
  - test/drip/client/events_test.rb
181
182
  - test/drip/client/forms_test.rb
182
183
  - test/drip/client/orders_test.rb
183
- - test/drip/client/purchases_test.rb
184
184
  - test/drip/client/subscribers_test.rb
185
185
  - test/drip/client/tags_test.rb
186
186
  - test/drip/client/webhooks_test.rb
@@ -210,7 +210,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
210
210
  requirements:
211
211
  - - ">="
212
212
  - !ruby/object:Gem::Version
213
- version: 1.9.3
213
+ version: '2.1'
214
214
  required_rubygems_version: !ruby/object:Gem::Requirement
215
215
  requirements:
216
216
  - - ">="
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  version: '0'
219
219
  requirements: []
220
220
  rubyforge_project:
221
- rubygems_version: 2.7.6
221
+ rubygems_version: 2.5.2
222
222
  signing_key:
223
223
  specification_version: 4
224
224
  summary: A Ruby gem for interacting with the Drip API
@@ -232,7 +232,6 @@ test_files:
232
232
  - test/drip/client/events_test.rb
233
233
  - test/drip/client/forms_test.rb
234
234
  - test/drip/client/orders_test.rb
235
- - test/drip/client/purchases_test.rb
236
235
  - test/drip/client/subscribers_test.rb
237
236
  - test/drip/client/tags_test.rb
238
237
  - test/drip/client/webhooks_test.rb