vanity 1.9.3 → 2.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
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