vanity 1.9.3 → 2.0.0.beta

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.
Files changed (54) hide show
  1. data/.gitignore +0 -1
  2. data/.travis.yml +2 -53
  3. data/Appraisals +3 -12
  4. data/CHANGELOG +1 -5
  5. data/Gemfile +0 -10
  6. data/Gemfile.lock +3 -38
  7. data/README.rdoc +2 -13
  8. data/Rakefile +7 -13
  9. data/bin/vanity +0 -1
  10. data/doc/rails.textile +0 -12
  11. data/gemfiles/rails32.gemfile +2 -4
  12. data/gemfiles/rails32.gemfile.lock +6 -14
  13. data/gemfiles/rails4.gemfile +1 -4
  14. data/gemfiles/rails4.gemfile.lock +5 -15
  15. data/lib/vanity/adapters/active_record_adapter.rb +14 -10
  16. data/lib/vanity/experiment/ab_test.rb +1 -1
  17. data/lib/vanity/frameworks/rails.rb +11 -17
  18. data/lib/vanity/frameworks.rb +3 -10
  19. data/lib/vanity/metric/active_record.rb +20 -19
  20. data/lib/vanity/playground.rb +1 -3
  21. data/lib/vanity/version.rb +1 -1
  22. data/test/adapters/redis_adapter_test.rb +26 -27
  23. data/test/autoconnect_test.rb +19 -17
  24. data/test/cli_test.rb +19 -26
  25. data/test/experiment/ab_test.rb +2 -15
  26. data/test/experiment/base_test.rb +18 -22
  27. data/test/frameworks/rails/action_controller_test.rb +184 -0
  28. data/test/frameworks/rails/action_mailer_test.rb +65 -0
  29. data/test/{rails_helper_test.rb → frameworks/rails/action_view_test.rb} +1 -1
  30. data/test/frameworks/rails/rails_test.rb +285 -0
  31. data/test/helper_test.rb +13 -10
  32. data/test/metric/active_record_test.rb +50 -66
  33. data/test/metric/base_test.rb +39 -41
  34. data/test/metric/google_analytics_test.rb +13 -16
  35. data/test/metric/remote_test.rb +18 -19
  36. data/test/playground_test.rb +1 -1
  37. data/test/test_helper.rb +25 -43
  38. data/test/{rails_dashboard_test.rb → web/rails/dashboard_test.rb} +2 -1
  39. data/vanity.gemspec +3 -2
  40. metadata +33 -33
  41. data/gemfiles/rails3.gemfile +0 -32
  42. data/gemfiles/rails3.gemfile.lock +0 -172
  43. data/gemfiles/rails31.gemfile +0 -32
  44. data/gemfiles/rails31.gemfile.lock +0 -181
  45. data/generators/templates/vanity_migration.rb +0 -54
  46. data/generators/vanity_generator.rb +0 -8
  47. data/test/myapp/app/controllers/application_controller.rb +0 -2
  48. data/test/myapp/app/controllers/main_controller.rb +0 -7
  49. data/test/myapp/config/boot.rb +0 -110
  50. data/test/myapp/config/environment.rb +0 -10
  51. data/test/myapp/config/environments/production.rb +0 -0
  52. data/test/myapp/config/routes.rb +0 -3
  53. data/test/passenger_test.rb +0 -52
  54. data/test/rails_test.rb +0 -554
@@ -1,4 +1,4 @@
1
- require "test/test_helper"
1
+ require "test_helper"
2
2
 
3
3
  class Sky < ActiveRecord::Base
4
4
  if connected?
@@ -9,18 +9,20 @@ class Sky < ActiveRecord::Base
9
9
  end
10
10
  end
11
11
 
12
- if defined?(Rails::Railtie)
13
- scope :high, lambda { { :conditions=>"height >= 4" } }
14
- else
15
- named_scope :high, lambda { { :conditions=>"height >= 4" } }
16
- end
12
+ scope :high, lambda { { :conditions=>"height >= 4" } }
17
13
  end
18
14
 
19
15
  if ActiveRecord::Base.connected?
20
16
 
21
- context "ActiveRecord Metric" do
17
+ describe "ActiveRecord Metric" do
18
+
19
+ after do
20
+ Sky.delete_all
21
+ Sky.reset_callbacks(:create)
22
+ Sky.reset_callbacks(:save)
23
+ end
22
24
 
23
- test "record count" do
25
+ it "record count" do
24
26
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
25
27
  f.write <<-RUBY
26
28
  metric "Sky is limit" do
@@ -34,7 +36,7 @@ context "ActiveRecord Metric" do
34
36
  assert_equal 1, Vanity::Metric.data(metric(:sky_is_limit)).last.last
35
37
  end
36
38
 
37
- test "record sum" do
39
+ it "record sum" do
38
40
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
39
41
  f.write <<-RUBY
40
42
  metric "Sky is limit" do
@@ -48,7 +50,7 @@ context "ActiveRecord Metric" do
48
50
  assert_equal 6, Vanity::Metric.data(metric(:sky_is_limit)).last.last
49
51
  end
50
52
 
51
- test "record average" do
53
+ it "record average" do
52
54
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
53
55
  f.write <<-RUBY
54
56
  metric "Sky is limit" do
@@ -62,7 +64,7 @@ context "ActiveRecord Metric" do
62
64
  assert_equal 5, Vanity::Metric.data(metric(:sky_is_limit)).last.last
63
65
  end
64
66
 
65
- test "record minimum" do
67
+ it "record minimum" do
66
68
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
67
69
  f.write <<-RUBY
68
70
  metric "Sky is limit" do
@@ -76,7 +78,7 @@ context "ActiveRecord Metric" do
76
78
  assert_equal 2, Vanity::Metric.data(metric(:sky_is_limit)).last.last
77
79
  end
78
80
 
79
- test "record maximum" do
81
+ it "record maximum" do
80
82
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
81
83
  f.write <<-RUBY
82
84
  metric "Sky is limit" do
@@ -90,7 +92,7 @@ context "ActiveRecord Metric" do
90
92
  assert_equal 4, Vanity::Metric.data(metric(:sky_is_limit)).last.last
91
93
  end
92
94
 
93
- test "with conditions" do
95
+ it "with conditions" do
94
96
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
95
97
  f.write <<-RUBY
96
98
  metric "Sky is limit" do
@@ -111,7 +113,7 @@ context "ActiveRecord Metric" do
111
113
  assert_equal 11, high_skies
112
114
  end
113
115
 
114
- test "with scope" do
116
+ it "with scope" do
115
117
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
116
118
  f.write <<-RUBY
117
119
  metric "Sky is limit" do
@@ -130,7 +132,7 @@ context "ActiveRecord Metric" do
130
132
  assert_equal 1, total
131
133
  end
132
134
 
133
- test "with timestamp" do
135
+ it "with timestamp" do
134
136
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
135
137
  f.write <<-RUBY
136
138
  metric "Sky is limit" do
@@ -144,7 +146,7 @@ context "ActiveRecord Metric" do
144
146
  assert_equal 1, Vanity::Metric.data(metric(:sky_is_limit)).last.last
145
147
  end
146
148
 
147
- test "with timestamp and table" do
149
+ it "with timestamp and table" do
148
150
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
149
151
  f.write <<-RUBY
150
152
  metric "Sky is limit" do
@@ -158,7 +160,7 @@ context "ActiveRecord Metric" do
158
160
  assert_equal 1, Vanity::Metric.data(metric(:sky_is_limit)).last.last
159
161
  end
160
162
 
161
- test "hooks" do
163
+ it "hooks" do
162
164
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
163
165
  f.write <<-RUBY
164
166
  metric "Sky is limit" do
@@ -177,7 +179,7 @@ context "ActiveRecord Metric" do
177
179
  assert_equal 4, total
178
180
  end
179
181
 
180
- test "no hooks when metrics disabled" do
182
+ it "no hooks when metrics disabled" do
181
183
  not_collecting!
182
184
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
183
185
  f.write <<-RUBY
@@ -195,7 +197,7 @@ context "ActiveRecord Metric" do
195
197
  assert_equal 0, total
196
198
  end
197
199
 
198
- test "after_create not after_save" do
200
+ it "after_create not after_save" do
199
201
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
200
202
  f.write <<-RUBY
201
203
  metric "Sky is limit" do
@@ -213,25 +215,14 @@ context "ActiveRecord Metric" do
213
215
  Sky.last.update_attributes :height=>4
214
216
  end
215
217
 
216
- test "with after_save" do
217
- if rails3?
218
- File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
219
- f.write <<-RUBY
220
- metric "Sky is limit" do
221
- model Sky, :conditions=>["height > 3"]
222
- Sky.after_save { |sky| track!(:sky_is_limit) if sky.height_changed? && sky.height > 3 }
223
- end
224
- RUBY
225
- end
226
- else
227
- File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
228
- f.write <<-RUBY
229
- metric "Sky is limit" do
230
- model Sky, :conditions=>["height > 3"]
231
- Sky.after_save { |sky| track! if sky.height_changed? && sky.height > 3 }
232
- end
233
- RUBY
234
- end
218
+ it "with after_save" do
219
+ File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
220
+ f.write <<-RUBY
221
+ metric "Sky is limit" do
222
+ model Sky, :conditions=>["height > 3"]
223
+ Sky.after_save { |sky| track!(:sky_is_limit) if sky.height_changed? && sky.height > 3 }
224
+ end
225
+ RUBY
235
226
  end
236
227
  Vanity.playground.metrics
237
228
  times = 0
@@ -245,23 +236,13 @@ context "ActiveRecord Metric" do
245
236
  assert_equal 2, times
246
237
  end
247
238
 
248
- test "do it youself" do
249
- if rails3?
250
- File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
251
- f.write <<-RUBY
252
- metric "Sky is limit" do
253
- Sky.after_save { |sky| track!(:sky_is_limit) if sky.height_changed? && sky.height > 3 }
254
- end
255
- RUBY
256
- end
257
- else
258
- File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
259
- f.write <<-RUBY
260
- metric "Sky is limit" do
261
- Sky.after_save { |sky| track! if sky.height_changed? && sky.height > 3 }
262
- end
263
- RUBY
264
- end
239
+ it "do it youself" do
240
+ File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
241
+ f.write <<-RUBY
242
+ metric "Sky is limit" do
243
+ Sky.after_save { |sky| track!(:sky_is_limit) if sky.height_changed? && sky.height > 3 }
244
+ end
245
+ RUBY
265
246
  end
266
247
  Vanity.playground.metrics
267
248
  Sky.create!
@@ -272,7 +253,7 @@ context "ActiveRecord Metric" do
272
253
  assert_equal 3, Vanity::Metric.data(metric(:sky_is_limit)).last.last
273
254
  end
274
255
 
275
- test "last update for new metric" do
256
+ it "last update for new metric" do
276
257
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
277
258
  f.write <<-RUBY
278
259
  metric "Sky is limit" do
@@ -283,7 +264,7 @@ context "ActiveRecord Metric" do
283
264
  assert_nil metric(:sky_is_limit).last_update_at
284
265
  end
285
266
 
286
- test "last update with records" do
267
+ it "last update with records" do
287
268
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
288
269
  f.write <<-RUBY
289
270
  metric "Sky is limit" do
@@ -298,16 +279,19 @@ context "ActiveRecord Metric" do
298
279
  assert_in_delta metric(:sky_is_limit).last_update_at.to_i, (Time.now + 1.day).to_i, 1
299
280
  end
300
281
 
301
- teardown do
302
- Sky.delete_all
303
- if rails3?
304
- Sky.reset_callbacks(:create)
305
- Sky.reset_callbacks(:save)
306
- else
307
- Sky.after_create.clear
308
- Sky.after_save.clear
282
+ it "metric is specifiable with a string" do
283
+ File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
284
+ f.write <<-RUBY
285
+ metric "Sky is limit" do
286
+ model 'Sky'
287
+ end
288
+ RUBY
309
289
  end
290
+ Vanity.playground.metrics
291
+ Sky.create!
292
+ assert_equal 1, Vanity::Metric.data(metric(:sky_is_limit)).last.last
310
293
  end
294
+
311
295
  end
312
296
 
313
- end
297
+ end
@@ -1,15 +1,14 @@
1
- require "test/test_helper"
1
+ require "test_helper"
2
2
 
3
+ describe "Metric via playground" do
3
4
 
4
- context "Metric via playground" do
5
-
6
- test "knows all loaded metrics" do
5
+ it "knows all loaded metrics" do
7
6
  metric "Yawns/sec", "Cheers/sec"
8
7
  assert Vanity.playground.metrics.keys.include?(:yawns_sec)
9
8
  assert Vanity.playground.metrics.keys.include?(:cheers_sec)
10
9
  end
11
10
 
12
- test "loads metric definitions" do
11
+ it "loads metric definitions" do
13
12
  File.open "tmp/experiments/metrics/yawns_sec.rb", "w" do |f|
14
13
  f.write <<-RUBY
15
14
  metric "Yawns/sec" do
@@ -22,7 +21,7 @@ context "Metric via playground" do
22
21
  assert_equal "x", Vanity.playground.metric(:yawns_sec).xmts
23
22
  end
24
23
 
25
- test "bubbles up loaded metrics" do
24
+ it "bubbles up loaded metrics" do
26
25
  File.open "tmp/experiments/metrics/yawns_sec.rb", "w" do |f|
27
26
  f.write "fail 'yawn!'"
28
27
  end
@@ -31,7 +30,7 @@ context "Metric via playground" do
31
30
  end
32
31
  end
33
32
 
34
- test "map identifier from file name" do
33
+ it "map identifier from file name" do
35
34
  File.open "tmp/experiments/metrics/yawns_sec.rb", "w" do |f|
36
35
  f.write <<-RUBY
37
36
  metric "yawns/hour" do
@@ -41,13 +40,13 @@ context "Metric via playground" do
41
40
  assert Vanity.playground.metric(:yawns_sec)
42
41
  end
43
42
 
44
- test "fails tracking unknown metric" do
43
+ it "fails tracking unknown metric" do
45
44
  assert_raises NameError do
46
45
  Vanity.playground.track! :yawns_sec
47
46
  end
48
47
  end
49
48
 
50
- test "reloading metrics" do
49
+ it "reloading metrics" do
51
50
  metric "Yawns/sec", "Cheers/sec"
52
51
  Vanity.playground.metric(:yawns_sec)
53
52
  Vanity.playground.metric(:cheers_sec)
@@ -55,10 +54,10 @@ context "Metric via playground" do
55
54
  metrics = Vanity.playground.metrics.values
56
55
  Vanity.playground.reload!
57
56
  assert_equal 0, Vanity.playground.metrics.size
58
- assert_not_equal metrics, Vanity.playground.metrics.values
57
+ refute_equal metrics, Vanity.playground.metrics.values
59
58
  end
60
59
 
61
- test "ignores undefined metrics in database" do
60
+ it "ignores undefined metrics in database" do
62
61
  metric "Yawns/sec"
63
62
  Vanity.playground.reload!
64
63
  assert Vanity.playground.metrics.empty?
@@ -67,15 +66,15 @@ context "Metric via playground" do
67
66
  end
68
67
 
69
68
 
70
- context "Metric tracking" do
71
- test "disabled when metrics are disabled" do
69
+ describe "Metric tracking" do
70
+ it "disabled when metrics are disabled" do
72
71
  not_collecting!
73
72
  metric "Yawns/sec", "Cheers/sec"
74
73
  Vanity.playground.track! :yawns_sec
75
74
  Vanity.playground.track! :cheers_sec
76
75
  end
77
76
 
78
- test "can count" do
77
+ it "can count" do
79
78
  metric "Yawns/sec", "Cheers/sec"
80
79
  4.times { Vanity.playground.track! :yawns_sec }
81
80
  2.times { Vanity.playground.track! :cheers_sec }
@@ -84,7 +83,7 @@ context "Metric tracking" do
84
83
  assert yawns == 2 * cheers
85
84
  end
86
85
 
87
- test "can tell the time" do
86
+ it "can tell the time" do
88
87
  metric "Yawns/sec"
89
88
  Timecop.freeze((today - 4).to_time) { 4.times { Vanity.playground.track! :yawns_sec } }
90
89
  Timecop.freeze((today - 2).to_time) { 2.times { Vanity.playground.track! :yawns_sec } }
@@ -93,7 +92,7 @@ context "Metric tracking" do
93
92
  assert_equal [0,4,0,2,0,1], boredom
94
93
  end
95
94
 
96
- test "with no value" do
95
+ it "with no value" do
97
96
  metric "Yawns/sec", "Cheers/sec", "Looks"
98
97
  Vanity.playground.track! :yawns_sec, 0
99
98
  Vanity.playground.track! :cheers_sec
@@ -101,7 +100,7 @@ context "Metric tracking" do
101
100
  assert_equal 1, Vanity.playground.metric(:cheers_sec).values(today, today).sum
102
101
  end
103
102
 
104
- test "with count" do
103
+ it "with count" do
105
104
  metric "Yawns/sec"
106
105
  Timecop.freeze((today - 4).to_time) { Vanity.playground.track! :yawns_sec, 4 }
107
106
  Timecop.freeze((today - 2).to_time) { Vanity.playground.track! :yawns_sec, 2 }
@@ -110,7 +109,7 @@ context "Metric tracking" do
110
109
  assert_equal [0,4,0,2,0,1], boredom
111
110
  end
112
111
 
113
- test "runs hook" do
112
+ it "runs hook" do
114
113
  metric "Many Happy Returns"
115
114
  total = 0
116
115
  Vanity.playground.metric(:many_happy_returns).hook do |metric_id, timestamp, count|
@@ -122,7 +121,7 @@ context "Metric tracking" do
122
121
  assert_equal 6, total
123
122
  end
124
123
 
125
- test "doesn't runs hook when metrics disabled" do
124
+ it "doesn't runs hook when metrics disabled" do
126
125
  not_collecting!
127
126
  metric "Many Happy Returns"
128
127
  total = 0
@@ -133,7 +132,7 @@ context "Metric tracking" do
133
132
  assert_equal 0, total
134
133
  end
135
134
 
136
- test "runs multiple hooks" do
135
+ it "runs multiple hooks" do
137
136
  metric "Many Happy Returns"
138
137
  returns = 0
139
138
  Vanity.playground.metric(:many_happy_returns).hook { returns += 1 }
@@ -143,7 +142,7 @@ context "Metric tracking" do
143
142
  assert_equal 3, returns
144
143
  end
145
144
 
146
- test "destroy wipes metrics" do
145
+ it "destroy wipes metrics" do
147
146
  metric "Many Happy Returns"
148
147
  Vanity.playground.track! :many_happy_returns, 3
149
148
  assert_equal [3], Vanity.playground.metric(:many_happy_returns).values(today, today)
@@ -153,8 +152,8 @@ context "Metric tracking" do
153
152
  end
154
153
 
155
154
 
156
- context "Metric name" do
157
- test "can be whatever" do
155
+ describe "Metric name" do
156
+ it "can be whatever" do
158
157
  File.open "tmp/experiments/metrics/yawns_sec.rb", "w" do |f|
159
158
  f.write <<-RUBY
160
159
  metric "Yawns per second" do
@@ -166,8 +165,8 @@ context "Metric name" do
166
165
  end
167
166
 
168
167
 
169
- context "Metric description" do
170
- test "metric with description" do
168
+ describe "Metric description" do
169
+ it "metric with description" do
171
170
  File.open "tmp/experiments/metrics/yawns_sec.rb", "w" do |f|
172
171
  f.write <<-RUBY
173
172
  metric "Yawns/sec" do
@@ -178,7 +177,7 @@ context "Metric description" do
178
177
  assert_equal "Am I that boring?", Vanity::Metric.description(Vanity.playground.metric(:yawns_sec))
179
178
  end
180
179
 
181
- test "metric without description" do
180
+ it "metric without description" do
182
181
  File.open "tmp/experiments/metrics/yawns_sec.rb", "w" do |f|
183
182
  f.write <<-RUBY
184
183
  metric "Yawns/sec" do
@@ -188,15 +187,15 @@ context "Metric description" do
188
187
  assert_nil Vanity::Metric.description(Vanity.playground.metric(:yawns_sec))
189
188
  end
190
189
 
191
- test "metric with no method description" do
190
+ it "metric with no method description" do
192
191
  metric = Object.new
193
192
  assert_nil Vanity::Metric.description(metric)
194
193
  end
195
194
  end
196
195
 
197
196
 
198
- context "Metric bounds" do
199
- test "metric with bounds" do
197
+ describe "Metric bounds" do
198
+ it "metric with bounds" do
200
199
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
201
200
  f.write <<-RUBY
202
201
  metric "Sky is limit" do
@@ -209,26 +208,26 @@ context "Metric bounds" do
209
208
  assert_equal [6,12], Vanity::Metric.bounds(Vanity.playground.metric(:sky_is_limit))
210
209
  end
211
210
 
212
- test "metric without bounds" do
211
+ it "metric without bounds" do
213
212
  metric "Sky is limit"
214
213
  assert_equal [nil, nil], Vanity::Metric.bounds(Vanity.playground.metric(:sky_is_limit))
215
214
  end
216
215
 
217
- test "metric with no method bounds" do
216
+ it "metric with no method bounds" do
218
217
  metric = Object.new
219
218
  assert_equal [nil, nil], Vanity::Metric.bounds(metric)
220
219
  end
221
220
  end
222
221
 
223
222
 
224
- context "Metric last_update_at" do
225
- test "for new metric" do
223
+ describe "Metric last_update_at" do
224
+ it "for new metric" do
226
225
  metric "Coolness"
227
226
  metric = Vanity.playground.metric(:coolness)
228
227
  assert_nil metric.last_update_at
229
228
  end
230
229
 
231
- test "with data point" do
230
+ it "with data point" do
232
231
  metric "Coolness"
233
232
  metric = Vanity.playground.metric(:coolness)
234
233
  metric.track!
@@ -240,8 +239,8 @@ context "Metric last_update_at" do
240
239
  end
241
240
 
242
241
 
243
- context "Metric data" do
244
- test "explicit dates" do
242
+ describe "Metric data" do
243
+ it "explicit dates" do
245
244
  metric "Yawns/sec"
246
245
  Timecop.freeze((today - 4).to_time) { Vanity.playground.track! :yawns_sec, 4 }
247
246
  Timecop.freeze((today - 2).to_time) { Vanity.playground.track! :yawns_sec, 2 }
@@ -250,7 +249,7 @@ context "Metric data" do
250
249
  assert_equal [[today - 5, 0], [today - 4, 4], [today - 3, 0], [today - 2, 2], [today - 1, 0], [today, 1]], boredom
251
250
  end
252
251
 
253
- test "start date only" do
252
+ it "start date only" do
254
253
  metric "Yawns/sec"
255
254
  Timecop.freeze((today - 4).to_time) { Vanity.playground.track! :yawns_sec, 4 }
256
255
  Timecop.freeze((today - 2).to_time) { Vanity.playground.track! :yawns_sec, 2 }
@@ -259,7 +258,7 @@ context "Metric data" do
259
258
  assert_equal [[today - 4, 4], [today - 3, 0], [today - 2, 2], [today - 1, 0], [today, 1]], boredom
260
259
  end
261
260
 
262
- test "start date and duration" do
261
+ it "start date and duration" do
263
262
  metric "Yawns/sec"
264
263
  Timecop.freeze((today - 4).to_time) { Vanity.playground.track! :yawns_sec, 4 }
265
264
  Timecop.freeze((today - 2).to_time) { Vanity.playground.track! :yawns_sec, 2 }
@@ -268,7 +267,7 @@ context "Metric data" do
268
267
  assert_equal [[today - 4, 4], [today - 3, 0], [today - 2, 2], [today - 1, 0], [today, 1]], boredom
269
268
  end
270
269
 
271
- test "no data" do
270
+ it "no data" do
272
271
  metric "Yawns/sec"
273
272
  boredom = Vanity::Metric.data(Vanity.playground.metric(:yawns_sec))
274
273
  assert_equal 90, boredom.size
@@ -276,7 +275,7 @@ context "Metric data" do
276
275
  assert_equal [today, 0], boredom.last
277
276
  end
278
277
 
279
- test "using custom values method" do
278
+ it "using custom values method" do
280
279
  File.open "tmp/experiments/metrics/hours_in_day.rb", "w" do |f|
281
280
  f.write <<-RUBY
282
281
  metric "Hours in day" do
@@ -289,5 +288,4 @@ context "Metric data" do
289
288
  data = Vanity::Metric.data(Vanity.playground.metric(:hours_in_day))
290
289
  assert_equal [24] * 90, data.map(&:last)
291
290
  end
292
-
293
291
  end
@@ -1,9 +1,7 @@
1
- require "test/test_helper"
1
+ require "test_helper"
2
2
 
3
-
4
- context "Google Analytics" do
5
-
6
- setup do
3
+ describe "Google Analytics" do
4
+ before do
7
5
  File.open "tmp/experiments/metrics/ga.rb", "w" do |f|
8
6
  f.write <<-RUBY
9
7
  metric "GA" do
@@ -16,7 +14,7 @@ context "Google Analytics" do
16
14
  GA_RESULT = Struct.new(:date, :pageviews, :visits)
17
15
  GA_PROFILE = Struct.new(:web_property_id)
18
16
 
19
- test "fail if Garb not available" do
17
+ it "fail if Garb not available" do
20
18
  File.open "tmp/experiments/metrics/ga.rb", "w" do |f|
21
19
  f.write <<-RUBY
22
20
  metric "GA" do
@@ -25,28 +23,28 @@ context "Google Analytics" do
25
23
  end
26
24
  RUBY
27
25
  end
28
- assert_raise LoadError do
26
+ assert_raises LoadError do
29
27
  Vanity.playground.metrics
30
28
  end
31
29
  end
32
30
 
33
- test "constructs a report" do
31
+ it "constructs a report" do
34
32
  Vanity.playground.metrics
35
33
  assert metric(:ga).report
36
34
  end
37
35
 
38
- test "default to pageviews metric" do
36
+ it "default to pageviews metric" do
39
37
  Vanity.playground.metrics
40
38
  assert_equal [:pageviews], metric(:ga).report.metrics.elements
41
39
  end
42
40
 
43
- test "apply data dimension and sort" do
41
+ it "apply data dimension and sort" do
44
42
  Vanity.playground.metrics
45
43
  assert_equal [:date], metric(:ga).report.dimensions.elements
46
44
  assert_equal [:date], metric(:ga).report.sort.elements
47
45
  end
48
46
 
49
- test "accept other metrics" do
47
+ it "accept other metrics" do
50
48
  File.open "tmp/experiments/metrics/ga.rb", "w" do |f|
51
49
  f.write <<-RUBY
52
50
  metric "GA" do
@@ -58,14 +56,14 @@ context "Google Analytics" do
58
56
  assert_equal [:visitors], metric(:ga).report.metrics.elements
59
57
  end
60
58
 
61
- test "does not support hooks" do
59
+ it "does not support hooks" do
62
60
  Vanity.playground.metrics
63
61
  assert_raises RuntimeError do
64
62
  metric(:ga).hook
65
63
  end
66
64
  end
67
65
 
68
- test "should find matching profile" do
66
+ it "should find matching profile" do
69
67
  Vanity.playground.metrics
70
68
  Garb::Profile.expects(:all).returns(Array.new(3) { |i| GA_PROFILE.new("UA#{i + 1}") })
71
69
  metric(:ga).report.stubs(:send_request_for_body).returns(nil)
@@ -74,7 +72,7 @@ context "Google Analytics" do
74
72
  assert_equal "UA2", metric(:ga).report.profile.web_property_id
75
73
  end
76
74
 
77
- test "should map results from report" do
75
+ it "should map results from report" do
78
76
  Vanity.playground.metrics
79
77
  today = Date.today
80
78
  response = mock(:results=>Array.new(3) { |i| GA_RESULT.new("2010021#{i}", i + 1) })
@@ -84,7 +82,7 @@ context "Google Analytics" do
84
82
  assert_equal [1,2,3], metric(:ga).values(Date.parse("2010-02-10"), Date.parse("2010-02-12"))
85
83
  end
86
84
 
87
- test "mapping GA metrics to single value" do
85
+ it "mapping GA metrics to single value" do
88
86
  File.open "tmp/experiments/metrics/ga.rb", "w" do |f|
89
87
  f.write <<-RUBY
90
88
  metric "GA" do
@@ -100,5 +98,4 @@ context "Google Analytics" do
100
98
  metric(:ga).report.stubs(:send_request_for_body).returns(nil)
101
99
  assert_equal [1,4,9], metric(:ga).values(Date.parse("2010-02-10"), Date.parse("2010-02-12"))
102
100
  end
103
-
104
101
  end