batsd-dash 0.2.1 → 0.3.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.
- data/Gemfile +7 -0
- data/Guardfile +10 -0
- data/README.md +40 -43
- data/batsd-dash.gemspec +1 -1
- data/lib/batsd-dash/graph.rb +31 -22
- data/lib/batsd-dash/params.rb +11 -5
- data/lib/batsd-dash/sass/public.scss +99 -6
- data/lib/batsd-dash/version.rb +1 -1
- data/lib/batsd-dash.rb +24 -21
- data/lib/public/css/d3.css +522 -0
- data/lib/public/css/public.css +69 -4
- data/lib/public/js/d3.js +4 -0
- data/lib/public/js/dash.js +81 -60
- data/lib/public/js/nv.d3.js +4 -0
- data/lib/views/layout.haml +9 -6
- data/lib/views/view.haml +8 -0
- data/test/test_dash.rb +99 -0
- metadata +28 -24
- data/test/test_params_helper.rb +0 -86
data/test/test_params_helper.rb
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe BatsdDash::App do
|
4
|
-
before do
|
5
|
-
json = { 'interval' => 10, 'counters:a.b' => [] }
|
6
|
-
|
7
|
-
BatsdDash::ConnectionPool::Client.any_instance.stubs(:sync).returns(true)
|
8
|
-
BatsdDash::ConnectionPool::Client.any_instance.stubs(:unbind).returns(true)
|
9
|
-
|
10
|
-
EM::Synchrony::ConnectionPool.any_instance.stubs(:async_values).yields(json)
|
11
|
-
end
|
12
|
-
|
13
|
-
describe 'params helper' do
|
14
|
-
before do
|
15
|
-
header 'Accept', 'application/json'
|
16
|
-
end
|
17
|
-
|
18
|
-
describe 'metrics param' do
|
19
|
-
it 'returns error on nil metrics' do
|
20
|
-
get '/counters'
|
21
|
-
|
22
|
-
last_response.status.must_equal 400
|
23
|
-
last_response.body.must_include 'error'
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'returns error on empty metrics' do
|
27
|
-
get '/counters?metrics[]='
|
28
|
-
|
29
|
-
last_response.status.must_equal 400
|
30
|
-
last_response.body.must_include 'error'
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'valid with single metrics param' do
|
34
|
-
get '/counters?metrics=a.b'
|
35
|
-
|
36
|
-
last_response.status.must_equal 200
|
37
|
-
last_response.body.wont_be_empty
|
38
|
-
|
39
|
-
json_response[:metrics].size.must_equal 1
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'valid with multiple metrics param' do
|
43
|
-
# same statistic is used cause the stub method is rather limited
|
44
|
-
get '/counters?metrics[]=a.b&metrics[]=a.b'
|
45
|
-
|
46
|
-
last_response.status.must_equal 200
|
47
|
-
last_response.body.wont_be_empty
|
48
|
-
|
49
|
-
json_response[:metrics].size.must_equal 2
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe 'range params' do
|
54
|
-
before do
|
55
|
-
@start = Time.now.to_i - 86000
|
56
|
-
@stop = Time.now.to_i
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'returns error without stop param' do
|
60
|
-
get "/counters?metrics[]=a.b&start=#{@start}"
|
61
|
-
|
62
|
-
last_response.status.must_equal 400
|
63
|
-
last_response.body.must_include 'error'
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'returns error without start param' do
|
67
|
-
get "/counters?metrics[]=a.b&stop=#{@stop}"
|
68
|
-
|
69
|
-
last_response.status.must_equal 400
|
70
|
-
last_response.body.must_include 'error'
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'returns error on invalid range' do
|
74
|
-
get "/counters?metrics[]=a.b&start=#{@stop}&stop=#{@start}"
|
75
|
-
|
76
|
-
last_response.status.must_equal 400
|
77
|
-
last_response.body.must_include 'error'
|
78
|
-
|
79
|
-
get '/counters?metrics[]=a.b&start=-2&stop=-1'
|
80
|
-
|
81
|
-
last_response.status.must_equal 400
|
82
|
-
last_response.body.must_include 'error'
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|