vero 0.9.1 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +15 -1
- data/Gemfile.lock +95 -73
- data/README.markdown +145 -121
- data/lib/generators/vero_generator.rb +18 -19
- data/lib/vero.rb +7 -3
- data/lib/vero/api.rb +14 -4
- data/lib/vero/api/base_api.rb +11 -10
- data/lib/vero/api/events/track_api.rb +5 -3
- data/lib/vero/api/users/delete_api.rb +21 -0
- data/lib/vero/api/users/edit_api.rb +5 -3
- data/lib/vero/api/users/edit_tags_api.rb +7 -5
- data/lib/vero/api/users/reidentify_api.rb +5 -3
- data/lib/vero/api/users/resubscribe_api.rb +3 -1
- data/lib/vero/api/users/track_api.rb +5 -3
- data/lib/vero/api/users/unsubscribe_api.rb +3 -1
- data/lib/vero/app.rb +4 -2
- data/lib/vero/config.rb +11 -8
- data/lib/vero/context.rb +9 -11
- data/lib/vero/context/api.rb +9 -7
- data/lib/vero/dsl.rb +3 -1
- data/lib/vero/railtie.rb +5 -3
- data/lib/vero/sender.rb +12 -31
- data/lib/vero/senders/base.rb +3 -1
- data/lib/vero/senders/delayed_job.rb +7 -7
- data/lib/vero/senders/invalid.rb +5 -3
- data/lib/vero/senders/resque.rb +8 -8
- data/lib/vero/senders/sidekiq.rb +3 -1
- data/lib/vero/senders/{thread.rb → sucker_punch.rb} +5 -3
- data/lib/vero/trackable.rb +4 -2
- data/lib/vero/trackable/base.rb +10 -9
- data/lib/vero/trackable/interface.rb +3 -1
- data/lib/vero/utility/ext.rb +3 -1
- data/lib/vero/utility/logger.rb +4 -6
- data/lib/vero/version.rb +3 -1
- data/lib/vero/view_helpers/javascript.rb +20 -20
- data/spec/lib/api/base_api_spec.rb +10 -8
- data/spec/lib/api/events/track_api_spec.rb +23 -21
- data/spec/lib/api/users/delete_api_spec.rb +33 -0
- data/spec/lib/api/users/edit_api_spec.rb +12 -10
- data/spec/lib/api/users/edit_tags_api_spec.rb +22 -20
- data/spec/lib/api/users/reidentify_spec.rb +16 -14
- data/spec/lib/api/users/resubscribe_api_spec.rb +16 -10
- data/spec/lib/api/users/track_api_spec.rb +21 -19
- data/spec/lib/api/users/unsubscribe_api_spec.rb +12 -10
- data/spec/lib/api_spec.rb +29 -24
- data/spec/lib/app_spec.rb +12 -10
- data/spec/lib/config_spec.rb +31 -29
- data/spec/lib/context_spec.rb +13 -11
- data/spec/lib/dsl_spec.rb +3 -1
- data/spec/lib/sender_spec.rb +12 -24
- data/spec/lib/senders/sidekiq_spec.rb +16 -9
- data/spec/lib/trackable_spec.rb +88 -114
- data/spec/lib/view_helpers_spec.rb +12 -8
- data/spec/spec_helper.rb +10 -4
- data/spec/support/base_config_shared_examples.rb +5 -3
- data/spec/support/user_support.rb +15 -7
- data/spec/support/vero_user_support.rb +4 -2
- data/vero.gemspec +14 -30
- metadata +30 -125
@@ -1,11 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe Vero::Senders::Sidekiq do
|
4
6
|
subject { Vero::Senders::Sidekiq.new }
|
5
7
|
describe :call do
|
6
|
-
it
|
7
|
-
Vero::SidekiqWorker
|
8
|
-
|
8
|
+
it 'should perform_async a Vero::SidekiqWorker' do
|
9
|
+
expect(Vero::SidekiqWorker).to(
|
10
|
+
receive(:perform_async)
|
11
|
+
.with('Vero::Api::Workers::Events::TrackAPI', 'abc', { test: 'abc' })
|
12
|
+
.once
|
13
|
+
)
|
14
|
+
subject.call(Vero::Api::Workers::Events::TrackAPI, 'abc', { test: 'abc' })
|
9
15
|
end
|
10
16
|
end
|
11
17
|
end
|
@@ -13,13 +19,14 @@ end
|
|
13
19
|
describe Vero::SidekiqWorker do
|
14
20
|
subject { Vero::SidekiqWorker.new }
|
15
21
|
describe :perform do
|
16
|
-
it
|
22
|
+
it 'should call the api method' do
|
17
23
|
mock_api = double(Vero::Api::Workers::Events::TrackAPI)
|
18
|
-
mock_api.
|
19
|
-
|
20
|
-
Vero::Api::Workers::Events::TrackAPI.
|
24
|
+
expect(mock_api).to receive(:perform).once
|
25
|
+
|
26
|
+
allow(Vero::Api::Workers::Events::TrackAPI).to receive(:new).and_return(mock_api)
|
27
|
+
expect(Vero::Api::Workers::Events::TrackAPI).to receive(:new).with('abc', { test: 'abc' }).once
|
21
28
|
|
22
|
-
subject.perform('Vero::Api::Workers::Events::TrackAPI',
|
29
|
+
subject.perform('Vero::Api::Workers::Events::TrackAPI', 'abc', { test: 'abc' })
|
23
30
|
end
|
24
31
|
end
|
25
|
-
end
|
32
|
+
end
|
data/spec/lib/trackable_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
def vero_context(user, logging = true, async = false, disabled = true)
|
@@ -13,21 +15,21 @@ end
|
|
13
15
|
describe Vero::Trackable do
|
14
16
|
before :each do
|
15
17
|
@request_params = {
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
18
|
+
event_name: 'test_event',
|
19
|
+
auth_token: 'YWJjZDEyMzQ6ZWZnaDU2Nzg=',
|
20
|
+
identity: { email: 'durkster@gmail.com', age: 20, _user_type: 'User' },
|
21
|
+
data: { test: 1 },
|
22
|
+
development_mode: true
|
21
23
|
}
|
22
|
-
@url =
|
24
|
+
@url = 'https://api.getvero.com/api/v1/track.json'
|
23
25
|
@user = User.new
|
24
26
|
|
25
|
-
@content_type_params = {:
|
27
|
+
@content_type_params = { content_type: :json, accept: :json }
|
26
28
|
end
|
27
29
|
|
28
|
-
context
|
30
|
+
context 'the gem has not been configured' do
|
29
31
|
before { Vero::App.reset! }
|
30
|
-
it
|
32
|
+
it 'should raise an error when API requests are made' do
|
31
33
|
expect { @user.track(@request_params[:event_name], @request_params[:data]) }.to raise_error(RuntimeError)
|
32
34
|
|
33
35
|
allow(@user).to receive(:post_later).and_return('success')
|
@@ -35,7 +37,7 @@ describe Vero::Trackable do
|
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
38
|
-
context
|
40
|
+
context 'the gem has been configured' do
|
39
41
|
before do
|
40
42
|
Vero::App.init do |c|
|
41
43
|
c.api_key = 'abcd1234'
|
@@ -47,21 +49,21 @@ describe Vero::Trackable do
|
|
47
49
|
describe :track! do
|
48
50
|
before do
|
49
51
|
@request_params = {
|
50
|
-
:
|
51
|
-
:
|
52
|
-
:
|
53
|
-
:
|
52
|
+
event_name: 'test_event',
|
53
|
+
identity: { email: 'durkster@gmail.com', age: 20, _user_type: 'User' },
|
54
|
+
data: { test: 1 },
|
55
|
+
extras: {}
|
54
56
|
}
|
55
|
-
@url =
|
57
|
+
@url = 'https://api.getvero.com/api/v1/track.json'
|
56
58
|
end
|
57
59
|
|
58
|
-
it
|
60
|
+
it 'should not send a track request when the required parameters are invalid' do
|
59
61
|
expect { @user.track!(nil) }.to raise_error(ArgumentError)
|
60
62
|
expect { @user.track!('') }.to raise_error(ArgumentError)
|
61
63
|
expect { @user.track!('test', '') }.to raise_error(ArgumentError)
|
62
64
|
end
|
63
65
|
|
64
|
-
it
|
66
|
+
it 'should send a `track!` request when async is set to false' do
|
65
67
|
context = vero_context(@user)
|
66
68
|
allow(@user).to receive(:with_vero_context).and_return(context)
|
67
69
|
|
@@ -72,7 +74,7 @@ describe Vero::Trackable do
|
|
72
74
|
expect(@user.track!(@request_params[:event_name], @request_params[:data])).to eq(200)
|
73
75
|
|
74
76
|
allow(Vero::Api::Events).to receive(:track!).and_return(200)
|
75
|
-
expect(Vero::Api::Events).to receive(:track!).with(@request_params.merge(:
|
77
|
+
expect(Vero::Api::Events).to receive(:track!).with(@request_params.merge(data: {}), context)
|
76
78
|
expect(@user.track!(@request_params[:event_name])).to eq(200)
|
77
79
|
end
|
78
80
|
|
@@ -82,13 +84,9 @@ describe Vero::Trackable do
|
|
82
84
|
allow(@user).to receive(:with_vero_context).and_return(@context)
|
83
85
|
end
|
84
86
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
it 'sends' do
|
89
|
-
expect(@user.track!(@request_params[:event_name], @request_params[:data])).to be_nil
|
90
|
-
expect(@user.track!(@request_params[:event_name])).to be_nil
|
91
|
-
end
|
87
|
+
it 'sends' do
|
88
|
+
expect(@user.track!(@request_params[:event_name], @request_params[:data])).to be_nil
|
89
|
+
expect(@user.track!(@request_params[:event_name])).to be_nil
|
92
90
|
end
|
93
91
|
end
|
94
92
|
end
|
@@ -96,14 +94,14 @@ describe Vero::Trackable do
|
|
96
94
|
describe :identify! do
|
97
95
|
before do
|
98
96
|
@request_params = {
|
99
|
-
:
|
100
|
-
:
|
101
|
-
:
|
97
|
+
id: nil,
|
98
|
+
email: 'durkster@gmail.com',
|
99
|
+
data: { email: 'durkster@gmail.com', age: 20, _user_type: 'User' }
|
102
100
|
}
|
103
|
-
@url =
|
101
|
+
@url = 'https://api.getvero.com/api/v2/users/track.json'
|
104
102
|
end
|
105
103
|
|
106
|
-
it
|
104
|
+
it 'should send an `identify` request when async is set to false' do
|
107
105
|
context = vero_context(@user)
|
108
106
|
allow(@user).to receive(:with_vero_context).and_return(context)
|
109
107
|
|
@@ -119,12 +117,8 @@ describe Vero::Trackable do
|
|
119
117
|
allow(@user).to receive(:with_vero_context).and_return(@context)
|
120
118
|
end
|
121
119
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
it 'sends' do
|
126
|
-
expect(@user.identify!).to be_nil
|
127
|
-
end
|
120
|
+
it 'sends' do
|
121
|
+
expect(@user.identify!).to be_nil
|
128
122
|
end
|
129
123
|
end
|
130
124
|
end
|
@@ -132,14 +126,14 @@ describe Vero::Trackable do
|
|
132
126
|
describe :update_user! do
|
133
127
|
before do
|
134
128
|
@request_params = {
|
135
|
-
:
|
136
|
-
:
|
137
|
-
:
|
129
|
+
id: nil,
|
130
|
+
email: 'durkster@gmail.com',
|
131
|
+
changes: { email: 'durkster@gmail.com', age: 20, _user_type: 'User' }
|
138
132
|
}
|
139
|
-
@url =
|
133
|
+
@url = 'https://api.getvero.com/api/v2/users/edit.json'
|
140
134
|
end
|
141
135
|
|
142
|
-
it
|
136
|
+
it 'should send an `update_user` request when async is set to false' do
|
143
137
|
context = Vero::Context.new(Vero::App.default_context)
|
144
138
|
context.subject = @user
|
145
139
|
|
@@ -157,21 +151,8 @@ describe Vero::Trackable do
|
|
157
151
|
allow(@user).to receive(:with_vero_context).and_return(@context)
|
158
152
|
end
|
159
153
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
it 'raises an error' do
|
164
|
-
@context.config.disabled = false
|
165
|
-
expect { @user.with_vero_context.update_user! }.to raise_error(RuntimeError)
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
context 'and not using Ruby 1.8.7' do
|
170
|
-
before { stub_const('RUBY_VERSION', '1.9.3') }
|
171
|
-
|
172
|
-
it 'sends' do
|
173
|
-
expect(@user.with_vero_context.update_user!).to be_nil
|
174
|
-
end
|
154
|
+
it 'sends' do
|
155
|
+
expect(@user.with_vero_context.update_user!).to be_nil
|
175
156
|
end
|
176
157
|
end
|
177
158
|
end
|
@@ -179,15 +160,15 @@ describe Vero::Trackable do
|
|
179
160
|
describe :update_user_tags! do
|
180
161
|
before do
|
181
162
|
@request_params = {
|
182
|
-
:
|
183
|
-
:
|
184
|
-
:
|
185
|
-
:
|
163
|
+
id: nil,
|
164
|
+
email: 'durkster@gmail.com',
|
165
|
+
add: [],
|
166
|
+
remove: []
|
186
167
|
}
|
187
|
-
@url =
|
168
|
+
@url = 'https://api.getvero.com/api/v2/users/tags/edit.json'
|
188
169
|
end
|
189
170
|
|
190
|
-
it
|
171
|
+
it 'should send an `update_user_tags` request when async is set to false' do
|
191
172
|
context = Vero::Context.new(Vero::App.default_context)
|
192
173
|
context.subject = @user
|
193
174
|
context.config.async = false
|
@@ -200,29 +181,27 @@ describe Vero::Trackable do
|
|
200
181
|
expect(@user.with_vero_context.update_user_tags!).to eq(200)
|
201
182
|
end
|
202
183
|
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
context.config.async = true
|
184
|
+
it 'should send using another thread when async is set to true' do
|
185
|
+
context = Vero::Context.new(Vero::App.default_context)
|
186
|
+
context.subject = @user
|
187
|
+
context.config.async = true
|
208
188
|
|
209
|
-
|
189
|
+
allow(@user).to receive(:with_vero_context).and_return(context)
|
210
190
|
|
211
|
-
|
212
|
-
end
|
191
|
+
expect(@user.with_vero_context.update_user_tags!).to be_nil
|
213
192
|
end
|
214
193
|
end
|
215
194
|
|
216
195
|
describe :unsubscribe! do
|
217
196
|
before do
|
218
197
|
@request_params = {
|
219
|
-
:
|
220
|
-
:
|
198
|
+
id: nil,
|
199
|
+
email: 'durkster@gmail.com'
|
221
200
|
}
|
222
|
-
@url =
|
201
|
+
@url = 'https://api.getvero.com/api/v2/users/unsubscribe.json'
|
223
202
|
end
|
224
203
|
|
225
|
-
it
|
204
|
+
it 'should send an `update_user` request when async is set to false' do
|
226
205
|
context = Vero::Context.new(Vero::App.default_context)
|
227
206
|
context.subject = @user
|
228
207
|
context.config.async = false
|
@@ -241,12 +220,8 @@ describe Vero::Trackable do
|
|
241
220
|
allow(@user).to receive(:with_vero_context).and_return(@context)
|
242
221
|
end
|
243
222
|
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
it 'sends' do
|
248
|
-
expect(@user.with_vero_context.unsubscribe!).to be_nil
|
249
|
-
end
|
223
|
+
it 'sends' do
|
224
|
+
expect(@user.with_vero_context.unsubscribe!).to be_nil
|
250
225
|
end
|
251
226
|
end
|
252
227
|
end
|
@@ -254,20 +229,20 @@ describe Vero::Trackable do
|
|
254
229
|
describe :trackable do
|
255
230
|
before { User.reset_trackable_map! }
|
256
231
|
|
257
|
-
it
|
232
|
+
it 'should build an array of trackable params' do
|
258
233
|
User.trackable :email, :age
|
259
|
-
expect(User.trackable_map).to eq([
|
234
|
+
expect(User.trackable_map).to eq(%i[email age])
|
260
235
|
end
|
261
236
|
|
262
|
-
it
|
237
|
+
it 'should append new trackable items to an existing trackable map' do
|
263
238
|
User.trackable :email, :age
|
264
239
|
User.trackable :hair_colour
|
265
|
-
expect(User.trackable_map).to eq([
|
240
|
+
expect(User.trackable_map).to eq(%i[email age hair_colour])
|
266
241
|
end
|
267
242
|
|
268
243
|
it "should append an extra's hash to the trackable map" do
|
269
|
-
User.trackable :email, {:
|
270
|
-
expect(User.trackable_map).to eq([:email, {:
|
244
|
+
User.trackable :email, { extras: :properties }
|
245
|
+
expect(User.trackable_map).to eq([:email, { extras: :properties }])
|
271
246
|
end
|
272
247
|
end
|
273
248
|
|
@@ -277,70 +252,69 @@ describe Vero::Trackable do
|
|
277
252
|
User.trackable :email, :age
|
278
253
|
end
|
279
254
|
|
280
|
-
it
|
255
|
+
it 'should return a hash of all values mapped by trackable' do
|
281
256
|
user = User.new
|
282
|
-
expect(user.to_vero).to eq({:
|
257
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', age: 20, _user_type: 'User' })
|
283
258
|
|
284
259
|
user = UserWithoutEmail.new
|
285
|
-
expect(user.to_vero).to eq({:
|
260
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', age: 20, _user_type: 'UserWithoutEmail' })
|
286
261
|
|
287
262
|
user = UserWithEmailAddress.new
|
288
|
-
expect(user.to_vero).to eq({:
|
263
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', age: 20, _user_type: 'UserWithEmailAddress' })
|
289
264
|
|
290
265
|
user = UserWithoutInterface.new
|
291
|
-
expect(user.to_vero).to eq({:
|
266
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', age: 20, _user_type: 'UserWithoutInterface' })
|
292
267
|
|
293
268
|
user = UserWithNilAttributes.new
|
294
|
-
expect(user.to_vero).to eq({:
|
269
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', _user_type: 'UserWithNilAttributes' })
|
295
270
|
end
|
296
271
|
|
297
|
-
it
|
272
|
+
it 'should take into account any defined extras' do
|
298
273
|
user = UserWithExtras.new
|
299
274
|
user.properties = nil
|
300
|
-
expect(user.to_vero).to eq({:
|
275
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', _user_type: 'UserWithExtras' })
|
301
276
|
|
302
|
-
user.properties =
|
303
|
-
expect(user.to_vero).to eq({:
|
277
|
+
user.properties = 'test'
|
278
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', _user_type: 'UserWithExtras' })
|
304
279
|
|
305
280
|
user.properties = {}
|
306
|
-
expect(user.to_vero).to eq({:
|
281
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', _user_type: 'UserWithExtras' })
|
307
282
|
|
308
283
|
user.properties = {
|
309
|
-
:
|
310
|
-
:
|
284
|
+
age: 20,
|
285
|
+
gender: 'female'
|
311
286
|
}
|
312
|
-
expect(user.to_vero).to eq({:
|
287
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', age: 20, gender: 'female', _user_type: 'UserWithExtras' })
|
313
288
|
|
314
289
|
user = UserWithPrivateExtras.new
|
315
|
-
expect(user.to_vero).to eq({:
|
290
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', age: 26, _user_type: 'UserWithPrivateExtras' })
|
316
291
|
end
|
317
292
|
|
318
|
-
it
|
293
|
+
it 'should allow extras to be provided instead :id or :email' do
|
319
294
|
user = UserWithOnlyExtras.new
|
320
|
-
user.properties = {:
|
321
|
-
expect(user.to_vero).to eq({:
|
295
|
+
user.properties = { email: user.email }
|
296
|
+
expect(user.to_vero).to eq({ email: 'durkster@gmail.com', _user_type: 'UserWithOnlyExtras' })
|
322
297
|
end
|
323
298
|
end
|
324
299
|
|
325
300
|
describe :with_vero_context do
|
326
|
-
it
|
301
|
+
it 'should be able to change contexts' do
|
327
302
|
user = User.new
|
328
|
-
expect(user.with_default_vero_context.config.config_params).to eq({:
|
329
|
-
expect(user.with_vero_context({:
|
303
|
+
expect(user.with_default_vero_context.config.config_params).to eq({ api_key: 'abcd1234', secret: 'efgh5678' })
|
304
|
+
expect(user.with_vero_context({ api_key: 'boom', secret: 'tish' }).config.config_params).to eq({ api_key: 'boom', secret: 'tish' })
|
330
305
|
end
|
331
306
|
end
|
332
307
|
|
333
|
-
it
|
308
|
+
it 'should work when Vero::Trackable::Interface is not included' do
|
334
309
|
user = UserWithoutInterface.new
|
335
310
|
|
336
311
|
request_params = {
|
337
|
-
:
|
338
|
-
:
|
339
|
-
:
|
340
|
-
:
|
341
|
-
:
|
312
|
+
event_name: 'test_event',
|
313
|
+
auth_token: 'YWJjZDEyMzQ6ZWZnaDU2Nzg=',
|
314
|
+
identity: { email: 'durkster@gmail.com', age: 20, _user_type: 'UserWithoutInterface' },
|
315
|
+
data: { test: 1 },
|
316
|
+
development_mode: true
|
342
317
|
}
|
343
|
-
url = "https://api.getvero.com/api/v1/track.json"
|
344
318
|
|
345
319
|
context = Vero::Context.new(Vero::App.default_context)
|
346
320
|
context.subject = user
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
require 'rails'
|
@@ -5,9 +7,11 @@ require 'action_view'
|
|
5
7
|
require 'active_support'
|
6
8
|
require 'vero/view_helpers/javascript'
|
7
9
|
|
10
|
+
# rubocop:disable Style/MixinUsage
|
8
11
|
include Vero::ViewHelpers::Javascript
|
9
12
|
include ActionView::Helpers
|
10
13
|
include ActionView::Context
|
14
|
+
# rubocop:enable Style/MixinUsage
|
11
15
|
|
12
16
|
describe Vero::ViewHelpers::Javascript do
|
13
17
|
before do
|
@@ -16,17 +20,17 @@ describe Vero::ViewHelpers::Javascript do
|
|
16
20
|
|
17
21
|
subject { Vero::ViewHelpers::Javascript }
|
18
22
|
describe :vero_javascript_tag do
|
19
|
-
it
|
20
|
-
expect(subject.vero_javascript_tag).to eq(
|
23
|
+
it 'should return an empty string if Vero::App is not properly configured' do
|
24
|
+
expect(subject.vero_javascript_tag).to eq('')
|
21
25
|
|
22
26
|
Vero::App.init {}
|
23
|
-
expect(subject.vero_javascript_tag).to eq(
|
27
|
+
expect(subject.vero_javascript_tag).to eq('')
|
24
28
|
end
|
25
29
|
|
26
|
-
context
|
30
|
+
context 'Vero::App has been properly configured' do
|
27
31
|
before :each do
|
28
|
-
@api_key =
|
29
|
-
@api_secret =
|
32
|
+
@api_key = 'abcd1234'
|
33
|
+
@api_secret = 'secret'
|
30
34
|
@api_dev_mode = false
|
31
35
|
|
32
36
|
Vero::App.init do |c|
|
@@ -36,10 +40,10 @@ describe Vero::ViewHelpers::Javascript do
|
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
39
|
-
it
|
43
|
+
it 'should return a properly formatted javascript snippet' do
|
40
44
|
result = "<script type=\"text/javascript\">var _veroq = _veroq || [];setTimeout(function(){if(typeof window.Semblance==\"undefined\"){console.log(\"Vero did not load in time.\");for(var i=0;i<_veroq.length;i++){a=_veroq[i];if(a.length==3&&typeof a[2]==\"function\")a[2](null,false);}}},3000);_veroq.push(['init', {\"api_key\": \"#{@api_key}\", \"secret\": \"#{@api_secret}\"}]);(function() {var ve = document.createElement('script'); ve.type = 'text/javascript'; ve.async = true; ve.src = '//getvero.com/assets/m.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ve, s);})();</script>"
|
41
45
|
expect(subject.vero_javascript_tag).to eq(result)
|
42
46
|
end
|
43
47
|
end
|
44
48
|
end
|
45
|
-
end
|
49
|
+
end
|