vero 0.9.1 → 0.10.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.
- 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
|