forked from kissmetrics/km
-
Notifications
You must be signed in to change notification settings - Fork 0
/
km_saas_spec.rb
121 lines (120 loc) · 4.1 KB
/
km_saas_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
require 'setup'
require 'km/saas'
describe KM do
before do
KM::reset
now = Time.now
Time.stub!(:now).and_return(now)
FileUtils.rm_f KM::log_name(:error)
FileUtils.rm_f KM::log_name(:query)
Helper.clear
end
describe "should record events" do
before do
KM::init 'KM_KEY', :log_dir => __('log'), :host => '127.0.0.1:9292'
KM::identify 'bob'
end
context "plain usage" do
it "records a signup event" do
KM.signed_up 'Premium'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:path].should == '/e'
res[:query]['_n'].first.should == 'Signed Up'
res[:query]['Plan Name'].first.should == 'Premium'
end
it "records an upgraded event" do
KM.upgraded 'Unlimited'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:path].should == '/e'
res[:query]['_n'].first.should == 'Upgraded'
res[:query]['Plan Name'].first.should == 'Unlimited'
end
it "records a downgraded event" do
KM.downgraded 'Free'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:path].should == '/e'
res[:query]['_n'].first.should == 'Downgraded'
res[:query]['Plan Name'].first.should == 'Free'
end
it "records a billed event" do
KM.billed 32, 'Upgraded'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:path].should == '/e'
res[:query]['_n'].first.should == 'Billed'
res[:query]['Billing Amount'].first.should == '32'
res[:query]['Billing Description'].first.should == 'Upgraded'
end
it "records a canceled event" do
KM.canceled
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:path].should == '/e'
res[:query]['_n'].first.should == 'Canceled'
end
it "records a cancelled event" do
KM.cancelled
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:path].should == '/e'
res[:query]['_n'].first.should == 'Canceled'
end
it "records a visited site event" do
KM.visited_site 'http://duckduckgo.com', 'http://kissmetrics.com'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:path].should == '/e'
res[:query]['_n'].first.should == 'Visited Site'
res[:query]['URL'].first.should == 'http://duckduckgo.com'
res[:query]['Referrer'].first.should == 'http://kissmetrics.com'
end
end
context "usage with props" do
it "records a signup event" do
KM.signed_up 'Premium', :foo => 'bar'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:query]['foo'].first.should == 'bar'
end
it "records an upgraded event" do
KM.upgraded 'Unlimited', :foo => 'bar'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:query]['foo'].first.should == 'bar'
end
it "records a downgraded event" do
KM.downgraded 'Free', :foo => 'bar'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:query]['foo'].first.should == 'bar'
end
it "records a billed event" do
KM.billed 32, 'Upgraded', :foo => 'bar'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:query]['foo'].first.should == 'bar'
end
it "records a canceled event" do
KM.canceled :foo => 'bar'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:query]['foo'].first.should == 'bar'
end
it "records a cancelled event" do
KM.cancelled :foo => 'bar'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:query]['foo'].first.should == 'bar'
end
it "records a visited site event" do
KM.visited_site 'http://duckduckgo.com', 'http://kissmetrics.com', :foo => 'bar'
sleep 0.1
res = Helper.accept(:history).first.indifferent
res[:query]['foo'].first.should == 'bar'
end
end
end
end