vero 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.md +4 -0
- data/Gemfile.lock +57 -47
- data/README.markdown +7 -16
- data/lib/vero.rb +3 -0
- data/lib/vero/api.rb +10 -4
- data/lib/vero/api/base_api.rb +1 -1
- data/lib/vero/api/users/resubscribe_api.rb +21 -0
- data/lib/vero/sender.rb +1 -0
- data/lib/vero/senders/sidekiq.rb +23 -0
- data/lib/vero/version.rb +1 -1
- data/spec/lib/api/base_api_spec.rb +3 -3
- data/spec/lib/api/events/track_api_spec.rb +13 -15
- data/spec/lib/api/users/edit_api_spec.rb +6 -10
- data/spec/lib/api/users/edit_tags_api_spec.rb +10 -15
- data/spec/lib/api/users/reidentify_spec.rb +8 -12
- data/spec/lib/api/users/resubscribe_api_spec.rb +29 -0
- data/spec/lib/api/users/track_api_spec.rb +9 -13
- data/spec/lib/api/users/unsubscribe_api_spec.rb +6 -10
- data/spec/lib/api_spec.rb +48 -55
- data/spec/lib/app_spec.rb +9 -9
- data/spec/lib/config_spec.rb +52 -44
- data/spec/lib/context_spec.rb +16 -16
- data/spec/lib/sender_spec.rb +8 -7
- data/spec/lib/senders/sidekiq_spec.rb +25 -0
- data/spec/lib/trackable_spec.rb +63 -63
- data/spec/lib/view_helpers_spec.rb +3 -3
- data/spec/support/base_config_shared_examples.rb +9 -0
- data/vero-0.8.1.gem +0 -0
- data/vero.gemspec +3 -2
- metadata +67 -24
- checksums.yaml +0 -7
data/CHANGES.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 0.9.0
|
2
|
+
|
3
|
+
- *Added support for Sidekiq**. You can now use Sidekiq to deliver API requests to Vero. To do so, just specify `config.async = :sidekiq` in your config.rb file.
|
4
|
+
|
1
5
|
## 0.8.0
|
2
6
|
|
3
7
|
- **"development_mode" flag has been deprecated.** It is recommended to use a multiple projects (with different API credentials). Please contact support@getvero.com for assistance in upgrading your account.
|
data/Gemfile.lock
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
vero (0.8.
|
4
|
+
vero (0.8.2)
|
5
5
|
json
|
6
6
|
rest-client
|
7
|
-
sucker_punch (
|
7
|
+
sucker_punch (= 1.5.1)
|
8
8
|
|
9
9
|
GEM
|
10
10
|
remote: http://rubygems.org/
|
11
11
|
specs:
|
12
|
-
actionmailer (3.2.
|
13
|
-
actionpack (= 3.2.
|
12
|
+
actionmailer (3.2.22)
|
13
|
+
actionpack (= 3.2.22)
|
14
14
|
mail (~> 2.5.4)
|
15
|
-
actionpack (3.2.
|
16
|
-
activemodel (= 3.2.
|
17
|
-
activesupport (= 3.2.
|
15
|
+
actionpack (3.2.22)
|
16
|
+
activemodel (= 3.2.22)
|
17
|
+
activesupport (= 3.2.22)
|
18
18
|
builder (~> 3.0.0)
|
19
19
|
erubis (~> 2.7.0)
|
20
20
|
journey (~> 1.0.4)
|
@@ -22,26 +22,27 @@ GEM
|
|
22
22
|
rack-cache (~> 1.2)
|
23
23
|
rack-test (~> 0.6.1)
|
24
24
|
sprockets (~> 2.2.1)
|
25
|
-
activemodel (3.2.
|
26
|
-
activesupport (= 3.2.
|
25
|
+
activemodel (3.2.22)
|
26
|
+
activesupport (= 3.2.22)
|
27
27
|
builder (~> 3.0.0)
|
28
|
-
activerecord (3.2.
|
29
|
-
activemodel (= 3.2.
|
30
|
-
activesupport (= 3.2.
|
28
|
+
activerecord (3.2.22)
|
29
|
+
activemodel (= 3.2.22)
|
30
|
+
activesupport (= 3.2.22)
|
31
31
|
arel (~> 3.0.2)
|
32
32
|
tzinfo (~> 0.3.29)
|
33
|
-
activeresource (3.2.
|
34
|
-
activemodel (= 3.2.
|
35
|
-
activesupport (= 3.2.
|
36
|
-
activesupport (3.2.
|
33
|
+
activeresource (3.2.22)
|
34
|
+
activemodel (= 3.2.22)
|
35
|
+
activesupport (= 3.2.22)
|
36
|
+
activesupport (3.2.22)
|
37
37
|
i18n (~> 0.6, >= 0.6.4)
|
38
38
|
multi_json (~> 1.0)
|
39
39
|
arel (3.0.3)
|
40
40
|
builder (3.0.4)
|
41
41
|
celluloid (0.16.0)
|
42
42
|
timers (~> 4.0.0)
|
43
|
-
|
44
|
-
|
43
|
+
connection_pool (2.2.0)
|
44
|
+
delayed_job (3.0.5)
|
45
|
+
activesupport (~> 3.0)
|
45
46
|
delayed_job_active_record (4.0.3)
|
46
47
|
activerecord (>= 3.0, < 5.0)
|
47
48
|
delayed_job (>= 3.0, < 4.1)
|
@@ -51,21 +52,22 @@ GEM
|
|
51
52
|
erubis (2.7.0)
|
52
53
|
hike (1.2.3)
|
53
54
|
hitimes (1.2.2)
|
55
|
+
hitimes (1.2.2-java)
|
54
56
|
http-cookie (1.0.2)
|
55
57
|
domain_name (~> 0.5)
|
56
58
|
i18n (0.7.0)
|
57
59
|
journey (1.0.4)
|
58
|
-
json (1.8.
|
59
|
-
json (1.8.
|
60
|
+
json (1.8.3)
|
61
|
+
json (1.8.3-java)
|
60
62
|
mail (2.5.4)
|
61
63
|
mime-types (~> 1.16)
|
62
64
|
treetop (~> 1.4.8)
|
63
65
|
mime-types (1.25.1)
|
64
66
|
mono_logger (1.1.0)
|
65
|
-
multi_json (1.11.
|
67
|
+
multi_json (1.11.2)
|
66
68
|
netrc (0.10.3)
|
67
69
|
polyglot (0.3.5)
|
68
|
-
rack (1.4.
|
70
|
+
rack (1.4.7)
|
69
71
|
rack-cache (1.2)
|
70
72
|
rack (>= 0.4)
|
71
73
|
rack-protection (1.5.3)
|
@@ -74,17 +76,17 @@ GEM
|
|
74
76
|
rack
|
75
77
|
rack-test (0.6.3)
|
76
78
|
rack (>= 1.0)
|
77
|
-
rails (3.2.
|
78
|
-
actionmailer (= 3.2.
|
79
|
-
actionpack (= 3.2.
|
80
|
-
activerecord (= 3.2.
|
81
|
-
activeresource (= 3.2.
|
82
|
-
activesupport (= 3.2.
|
79
|
+
rails (3.2.22)
|
80
|
+
actionmailer (= 3.2.22)
|
81
|
+
actionpack (= 3.2.22)
|
82
|
+
activerecord (= 3.2.22)
|
83
|
+
activeresource (= 3.2.22)
|
84
|
+
activesupport (= 3.2.22)
|
83
85
|
bundler (~> 1.0)
|
84
|
-
railties (= 3.2.
|
85
|
-
railties (3.2.
|
86
|
-
actionpack (= 3.2.
|
87
|
-
activesupport (= 3.2.
|
86
|
+
railties (= 3.2.22)
|
87
|
+
railties (3.2.22)
|
88
|
+
actionpack (= 3.2.22)
|
89
|
+
activesupport (= 3.2.22)
|
88
90
|
rack-ssl (~> 1.3.2)
|
89
91
|
rake (>= 0.8.7)
|
90
92
|
rdoc (~> 3.4)
|
@@ -105,19 +107,25 @@ GEM
|
|
105
107
|
http-cookie (>= 1.0.2, < 2.0)
|
106
108
|
mime-types (>= 1.16, < 3.0)
|
107
109
|
netrc (~> 0.7)
|
108
|
-
rspec (3.
|
109
|
-
rspec-core (~> 3.
|
110
|
-
rspec-expectations (~> 3.
|
111
|
-
rspec-mocks (~> 3.
|
112
|
-
rspec-core (3.2
|
113
|
-
rspec-support (~> 3.
|
114
|
-
rspec-expectations (3.
|
110
|
+
rspec (3.3.0)
|
111
|
+
rspec-core (~> 3.3.0)
|
112
|
+
rspec-expectations (~> 3.3.0)
|
113
|
+
rspec-mocks (~> 3.3.0)
|
114
|
+
rspec-core (3.3.2)
|
115
|
+
rspec-support (~> 3.3.0)
|
116
|
+
rspec-expectations (3.3.1)
|
115
117
|
diff-lcs (>= 1.2.0, < 2.0)
|
116
|
-
rspec-support (~> 3.
|
117
|
-
rspec-mocks (3.2
|
118
|
+
rspec-support (~> 3.3.0)
|
119
|
+
rspec-mocks (3.3.2)
|
118
120
|
diff-lcs (>= 1.2.0, < 2.0)
|
119
|
-
rspec-support (~> 3.
|
120
|
-
rspec-support (3.
|
121
|
+
rspec-support (~> 3.3.0)
|
122
|
+
rspec-support (3.3.0)
|
123
|
+
sidekiq (2.17.7)
|
124
|
+
celluloid (>= 0.15.2)
|
125
|
+
connection_pool (>= 1.0.0)
|
126
|
+
json
|
127
|
+
redis (>= 3.0.6)
|
128
|
+
redis-namespace (>= 1.3.1)
|
121
129
|
sinatra (1.4.6)
|
122
130
|
rack (~> 1.4)
|
123
131
|
rack-protection (~> 1.4)
|
@@ -127,11 +135,11 @@ GEM
|
|
127
135
|
multi_json (~> 1.0)
|
128
136
|
rack (~> 1.0)
|
129
137
|
tilt (~> 1.1, != 1.3.0)
|
130
|
-
sucker_punch (1.5.
|
131
|
-
celluloid (
|
138
|
+
sucker_punch (1.5.1)
|
139
|
+
celluloid (= 0.16.0)
|
132
140
|
thor (0.19.1)
|
133
141
|
tilt (1.4.1)
|
134
|
-
timers (4.0.
|
142
|
+
timers (4.0.4)
|
135
143
|
hitimes
|
136
144
|
treetop (1.4.15)
|
137
145
|
polyglot
|
@@ -139,6 +147,7 @@ GEM
|
|
139
147
|
tzinfo (0.3.44)
|
140
148
|
unf (0.1.4)
|
141
149
|
unf_ext
|
150
|
+
unf (0.1.4-java)
|
142
151
|
unf_ext (0.0.7.1)
|
143
152
|
vegas (0.1.11)
|
144
153
|
rack (>= 1.0.0)
|
@@ -148,9 +157,10 @@ PLATFORMS
|
|
148
157
|
ruby
|
149
158
|
|
150
159
|
DEPENDENCIES
|
151
|
-
delayed_job
|
160
|
+
delayed_job (~> 3.0.0)
|
152
161
|
delayed_job_active_record
|
153
162
|
rails (~> 3.0)
|
154
163
|
resque
|
155
164
|
rspec
|
165
|
+
sidekiq (~> 2.0)
|
156
166
|
vero!
|
data/README.markdown
CHANGED
@@ -27,8 +27,8 @@ following:
|
|
27
27
|
config.api_key = "Your Production API key goes here"
|
28
28
|
config.secret = "Your Production API secret goes here"
|
29
29
|
else
|
30
|
-
config.api_key = "Your
|
31
|
-
config.secret = "Your
|
30
|
+
config.api_key = "Your Development API key goes here"
|
31
|
+
config.secret = "Your Development API secret goes here"
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -36,31 +36,19 @@ You will be able to find your API key and secret by logging into Vero
|
|
36
36
|
([sign up](http://getvero.com) if you haven't already) and clicking the
|
37
37
|
'Your Account' link at the top of the page then select 'API Keys'.
|
38
38
|
|
39
|
-
Previously all Vero accounts supported two environments: *test* and *live*.
|
40
|
-
This feature has been deprecated in favour of one account with multiple
|
41
|
-
projects.
|
42
|
-
|
43
|
-
The gem will continue to support development_mode but will require
|
44
|
-
you to explicitly set it in the initialiser. We recommend migrating your
|
45
|
-
account as soon as possible. If you have any questions, please contact
|
46
|
-
support@getvero.com.
|
47
|
-
|
48
|
-
Vero::App.init do |config|
|
49
|
-
config.development_mode = !Rails.env.production? # or use true
|
50
|
-
end
|
51
|
-
|
52
39
|
By default, events are sent asynchronously using a background thread.
|
53
40
|
We recommend that you select one of the supported queue-based alternatives:
|
54
41
|
|
55
42
|
config.async = :none # Synchronously
|
56
43
|
config.async = :thread # Background thread (default)
|
57
44
|
config.async = :delayed_job # DelayedJob
|
45
|
+
config.async = :sidekiq # Sidekiq
|
58
46
|
config.async = :resque # Resque (recommended)
|
59
47
|
|
60
48
|
**Note:** If you're using Mongoid with DelayedJob, you must add
|
61
49
|
`gem "delayed_job_mongoid"` to your Gemfile.
|
62
50
|
|
63
|
-
Finally, if you wish to disable
|
51
|
+
Finally, if you wish to disable Vero requests when running your automated tests,
|
64
52
|
add the following line to your initializer:
|
65
53
|
|
66
54
|
config.disabled = Rails.env.test?
|
@@ -221,6 +209,9 @@ outlined in Installation. Now you can call the API using the following methods:
|
|
221
209
|
|
222
210
|
# Changing a user's id
|
223
211
|
vero.users.reidentify!({:id => 123, :new_id => "honeybadger@getvero.com"})
|
212
|
+
|
213
|
+
# Resubscribing a user
|
214
|
+
vero.users.resubscribe!({:id => 123})
|
224
215
|
end
|
225
216
|
|
226
217
|
def destroy
|
data/lib/vero.rb
CHANGED
@@ -10,6 +10,7 @@ module Vero
|
|
10
10
|
autoload :DSL, 'vero/dsl'
|
11
11
|
autoload :Sender, 'vero/sender'
|
12
12
|
autoload :ResqueWorker, 'vero/senders/resque'
|
13
|
+
autoload :SidekiqWorker, 'vero/senders/sidekiq'
|
13
14
|
|
14
15
|
module Api
|
15
16
|
module Workers
|
@@ -24,6 +25,7 @@ module Vero
|
|
24
25
|
autoload :EditAPI, 'vero/api/users/edit_api'
|
25
26
|
autoload :EditTagsAPI, 'vero/api/users/edit_tags_api'
|
26
27
|
autoload :UnsubscribeAPI, 'vero/api/users/unsubscribe_api'
|
28
|
+
autoload :ResubscribeAPI, 'vero/api/users/resubscribe_api'
|
27
29
|
autoload :ReidentifyAPI, 'vero/api/users/reidentify_api'
|
28
30
|
end
|
29
31
|
end
|
@@ -36,6 +38,7 @@ module Vero
|
|
36
38
|
autoload :Base, 'vero/senders/base'
|
37
39
|
autoload :DelayedJob, 'vero/senders/delayed_job'
|
38
40
|
autoload :Resque, 'vero/senders/resque'
|
41
|
+
autoload :Sidekiq, 'vero/senders/sidekiq'
|
39
42
|
autoload :Invalid, 'vero/senders/invalid'
|
40
43
|
autoload :Thread, 'vero/senders/thread'
|
41
44
|
end
|
data/lib/vero/api.rb
CHANGED
@@ -12,12 +12,10 @@ module Vero
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def run_api(api_klass, options)
|
15
|
+
return if config.disabled
|
15
16
|
validate_configured!
|
16
17
|
options.merge!(config.request_params)
|
17
|
-
|
18
|
-
unless config.disabled
|
19
|
-
Vero::Sender.send(api_klass, config.async, config.domain, options)
|
20
|
-
end
|
18
|
+
Vero::Sender.send(api_klass, config.async, config.domain, options)
|
21
19
|
end
|
22
20
|
|
23
21
|
protected
|
@@ -59,6 +57,10 @@ module Vero
|
|
59
57
|
new(context).unsubscribe!(options)
|
60
58
|
end
|
61
59
|
|
60
|
+
def self.resubscribe!(options, context = Vero::App.default_context)
|
61
|
+
new(context).resubscribe!(options)
|
62
|
+
end
|
63
|
+
|
62
64
|
def track!(options)
|
63
65
|
run_api(Vero::Api::Workers::Users::TrackAPI, options)
|
64
66
|
end
|
@@ -75,6 +77,10 @@ module Vero
|
|
75
77
|
run_api(Vero::Api::Workers::Users::UnsubscribeAPI, options)
|
76
78
|
end
|
77
79
|
|
80
|
+
def resubscribe!(options)
|
81
|
+
run_api(Vero::Api::Workers::Users::ResubscribeAPI, options)
|
82
|
+
end
|
83
|
+
|
78
84
|
def reidentify!(options)
|
79
85
|
run_api(Vero::Api::Workers::Users::ReidentifyAPI, options)
|
80
86
|
end
|
data/lib/vero/api/base_api.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Vero
|
2
|
+
module Api
|
3
|
+
module Workers
|
4
|
+
module Users
|
5
|
+
class ResubscribeAPI < BaseAPI
|
6
|
+
def url
|
7
|
+
"#{@domain}/api/v2/users/resubscribe.json"
|
8
|
+
end
|
9
|
+
|
10
|
+
def request
|
11
|
+
RestClient.post(url, @options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def validate!
|
15
|
+
raise ArgumentError.new("Missing :id or :email") if options[:id].to_s.blank? && options[:email].to_s.blank?
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/vero/sender.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'sidekiq'
|
3
|
+
|
4
|
+
module Vero
|
5
|
+
class SidekiqWorker
|
6
|
+
include ::Sidekiq::Worker
|
7
|
+
|
8
|
+
def perform(api_class, domain, options)
|
9
|
+
api_class.constantize.new(domain, options).perform
|
10
|
+
Vero::App.log(self, "method: #{api_class}, options: #{options.to_json}, response: sidekiq job queued")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module Senders
|
15
|
+
class Sidekiq
|
16
|
+
def call(api_class, domain, options)
|
17
|
+
response = ::Vero::SidekiqWorker.perform_async(api_class.to_s, domain, options)
|
18
|
+
Vero::App.log(self, "method: #{api_class.name}, options: #{options.to_json}, response: sidekiq job queued")
|
19
|
+
response
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/vero/version.rb
CHANGED
@@ -5,13 +5,13 @@ describe Vero::Api::Workers::BaseAPI do
|
|
5
5
|
|
6
6
|
describe :options_with_symbolized_keys do
|
7
7
|
it "should create a new options Hash with symbol keys (much like Hash#symbolize_keys in rails)" do
|
8
|
-
subject.options.
|
8
|
+
expect(subject.options).to eq({})
|
9
9
|
|
10
10
|
subject.options = {:abc => 123}
|
11
|
-
subject.options.
|
11
|
+
expect(subject.options).to eq({:abc => 123})
|
12
12
|
|
13
13
|
subject.options = {"abc" => 123}
|
14
|
-
subject.options.
|
14
|
+
expect(subject.options).to eq({:abc => 123})
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -1,25 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Vero::Api::Workers::Events::TrackAPI do
|
4
|
+
subject { Vero::Api::Workers::Events::TrackAPI.new('https://api.getvero.com', {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'}) }
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
it "should inherit from Vero::Api::Workers::BaseCaller" do
|
8
|
-
subject.should be_a(Vero::Api::Workers::BaseAPI)
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should map to current version of Vero API" do
|
12
|
-
subject.send(:url).should == "https://api.getvero.com/api/v2/events/track.json"
|
13
|
-
end
|
6
|
+
it_behaves_like "a Vero wrapper" do
|
7
|
+
let(:end_point) { "/api/v2/events/track.json" }
|
14
8
|
end
|
15
9
|
|
16
10
|
context "request with properties" do
|
17
|
-
subject { Vero::Api::Workers::Events::TrackAPI.new('https://api.getvero.com', {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'}) }
|
18
11
|
describe :validate! do
|
19
12
|
it "should raise an error if event_name is a blank String" do
|
20
13
|
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => nil}
|
21
14
|
subject.options = options
|
22
|
-
expect { subject.send(:validate!) }.to raise_error
|
15
|
+
expect { subject.send(:validate!) }.to raise_error(ArgumentError)
|
23
16
|
|
24
17
|
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'}
|
25
18
|
subject.options = options
|
@@ -29,7 +22,7 @@ describe Vero::Api::Workers::Events::TrackAPI do
|
|
29
22
|
it "should raise an error if data is not either nil or a Hash" do
|
30
23
|
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event', :data => []}
|
31
24
|
subject.options = options
|
32
|
-
expect { subject.send(:validate!) }.to raise_error
|
25
|
+
expect { subject.send(:validate!) }.to raise_error(ArgumentError)
|
33
26
|
|
34
27
|
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event', :data => nil}
|
35
28
|
subject.options = options
|
@@ -45,12 +38,17 @@ describe Vero::Api::Workers::Events::TrackAPI do
|
|
45
38
|
subject.options = options
|
46
39
|
expect { subject.send(:validate!) }.to_not raise_error
|
47
40
|
end
|
41
|
+
|
42
|
+
it 'should not raise an error when keys are Strings for initialization' do
|
43
|
+
options = {"auth_token" => 'abcd', "identity" => {"email" => 'test@test.com'}, "event_name" => 'test_event', "data" => {}}
|
44
|
+
expect { Vero::Api::Workers::Events::TrackAPI.new('https://api.getvero.com', options).send(:validate!) }.to_not raise_error
|
45
|
+
end
|
48
46
|
end
|
49
47
|
|
50
48
|
describe :request do
|
51
49
|
it "should send a JSON request to the Vero API" do
|
52
|
-
RestClient.
|
53
|
-
RestClient.
|
50
|
+
expect(RestClient).to receive(:post).with("https://api.getvero.com/api/v2/events/track.json", {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'}.to_json, {:content_type => :json, :accept => :json})
|
51
|
+
allow(RestClient).to receive(:post).and_return(200)
|
54
52
|
subject.send(:request)
|
55
53
|
end
|
56
54
|
end
|
@@ -60,7 +58,7 @@ describe Vero::Api::Workers::Events::TrackAPI do
|
|
60
58
|
it "should not raise any errors" do
|
61
59
|
obj = Vero::Api::Workers::Events::TrackAPI.new('https://api.getvero.com', {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'})
|
62
60
|
|
63
|
-
RestClient.
|
61
|
+
allow(RestClient).to receive(:post).and_return(200)
|
64
62
|
expect { obj.perform }.to_not raise_error
|
65
63
|
end
|
66
64
|
end
|