wackamole 0.0.8 → 0.0.9
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/History.txt +5 -1
- data/README.rdoc +12 -3
- data/bin/wackamole +2 -2
- data/data/fixtures.rb +132 -0
- data/features/env.rb +29 -0
- data/features/mission.feature +10 -0
- data/features/step_definitions/mission_steps.rb +5 -0
- data/lib/app.rb +23 -7
- data/lib/controllers/features.rb +3 -2
- data/lib/controllers/logs.rb +1 -0
- data/lib/controllers/mission.rb +14 -4
- data/lib/controllers/session.rb +32 -0
- data/lib/controllers/users.rb +3 -2
- data/lib/helpers/flash_helper.rb +4 -1
- data/lib/helpers/logs_helper.rb +2 -1
- data/lib/helpers/session_helper.rb +29 -0
- data/lib/wackamole.rb +1 -1
- data/lib/wackamole/models/control.rb +15 -1
- data/lib/wackamole/models/feature.rb +11 -2
- data/lib/wackamole/models/log.rb +1 -0
- data/lib/wackamole/models/mission.rb +9 -7
- data/lib/wackamole/models/mole_info.rb +8 -4
- data/lib/wackamole/models/search_filter.rb +48 -15
- data/lib/wackamole/models/user.rb +12 -1
- data/public/stylesheets/wackamole.css +60 -3
- data/spec/config/bogus_test.yml +1 -1
- data/spec/config/test.yml +1 -1
- data/spec/spec_helper.rb +3 -0
- data/spec/ui/log_spec.rb +68 -0
- data/spec/ui/mission_spec.rb +64 -0
- data/spec/ui/session_spec.rb +39 -0
- data/spec/ui_utils/mission_util.rb +41 -0
- data/spec/{models → wackamole/models}/control_spec.rb +21 -21
- data/spec/{models → wackamole/models}/feature_spec.rb +7 -7
- data/spec/{models → wackamole/models}/log_spec.rb +5 -5
- data/spec/{models → wackamole/models}/mission_spec.rb +11 -7
- data/spec/wackamole/models/moled_info_spec.rb +36 -0
- data/spec/{models → wackamole/models}/search_filter_spec.rb +12 -16
- data/spec/{models → wackamole/models}/user_spec.rb +5 -5
- data/spec/{wackamole_spec.rb → wackamole/wackamole_spec.rb} +2 -2
- data/tasks/fixtures.rake +3 -1
- data/tasks/setup.rb +2 -1
- data/tasks/spec.rake +17 -3
- data/views/dashboard/_report.erb +3 -3
- data/views/layout.erb +44 -11
- data/views/logs/show.erb +3 -0
- data/views/mission/_report.erb +2 -2
- data/views/session/login.erb +28 -0
- data/views/shared/_search.erb +1 -1
- data/views/users/index.js.erb +1 -1
- metadata +22 -10
- data/spec/models/moled_info_spec.rb +0 -30
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
2
|
+
require 'capybara'
|
3
|
+
require 'capybara/dsl'
|
4
|
+
require File.join(File.dirname(__FILE__), %w[.. ui_utils mission_util])
|
5
|
+
|
6
|
+
include Capybara
|
7
|
+
include MissionUtil
|
8
|
+
|
9
|
+
describe 'Sessions' do
|
10
|
+
before( :all ) do
|
11
|
+
Capybara.default_driver = :selenium
|
12
|
+
@url = "http://localhost:4567/"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should login correctly" do
|
16
|
+
visit( @url )
|
17
|
+
login( @url, 'admin', 'admin', @url + 'mission' )
|
18
|
+
log_out
|
19
|
+
# within( "//form[@id='login']" ) do
|
20
|
+
# fill_in 'Login' , :with => 'admin'
|
21
|
+
# fill_in 'Password', :with => 'admin'
|
22
|
+
# end
|
23
|
+
# click_button 'Log In'
|
24
|
+
# current_url.should == @url + "mission"
|
25
|
+
# click_link 'log out'
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should complain for invalid credentials" do
|
29
|
+
visit( @url )
|
30
|
+
login( @url, 'fernand', 'oh dear', @url )
|
31
|
+
# within( "//form[@id='login']" ) do
|
32
|
+
# fill_in 'Login' , :with => 'fernand'
|
33
|
+
# fill_in 'Password', :with => 'fuck'
|
34
|
+
# end
|
35
|
+
# click_button 'Log In'
|
36
|
+
# current_url.should == @url
|
37
|
+
page.should have_css( 'div.flash_error' )
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module MissionUtil
|
2
|
+
|
3
|
+
def check_app( row, app, env, to_date, today, last_tick )
|
4
|
+
cells = row.all( :css, 'td' )
|
5
|
+
|
6
|
+
cells[0].text.should == app
|
7
|
+
cells[1].text.should == env
|
8
|
+
|
9
|
+
to_date_indexes = [4,6,8]
|
10
|
+
to_date_indexes.each_index { |i| cells[to_date_indexes[i]].text.should == to_date[i].to_s }
|
11
|
+
|
12
|
+
today_indexes = [11,13,15]
|
13
|
+
today_indexes.each_index { |i| cells[today_indexes[i]].text.should == today[i].to_s }
|
14
|
+
|
15
|
+
last_tick_indexes = [18,20,22]
|
16
|
+
last_tick_indexes.each_index { |i| cells[last_tick_indexes[i]].text.should == last_tick[i].to_s }
|
17
|
+
end
|
18
|
+
|
19
|
+
def show_logs( row, app, env, type )
|
20
|
+
row.find( :css, "a##{app}_#{env}_#{type}" ).click
|
21
|
+
end
|
22
|
+
|
23
|
+
def nav_mission
|
24
|
+
page.find_link( 'mission control' ).click
|
25
|
+
end
|
26
|
+
|
27
|
+
def login( url, username, password, expected_url )
|
28
|
+
visit( url )
|
29
|
+
within( "//form[@id='login']" ) do
|
30
|
+
fill_in 'Login' , :with => username
|
31
|
+
fill_in 'Password', :with => password
|
32
|
+
end
|
33
|
+
click_button 'Log In'
|
34
|
+
current_url.should == expected_url
|
35
|
+
end
|
36
|
+
|
37
|
+
def log_out
|
38
|
+
click_link 'log out'
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
3
|
describe Wackamole::Control do
|
4
4
|
describe 'errors' do
|
@@ -11,21 +11,21 @@ describe Wackamole::Control do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should raise an error if invalid config file" do
|
14
|
-
config_file = File.join(File.dirname(__FILE__), %w[.. config blee.yml])
|
14
|
+
config_file = File.join(File.dirname(__FILE__), %w[.. .. config blee.yml])
|
15
15
|
lambda {
|
16
16
|
Wackamole::Control.init_config( config_file, 'test' )
|
17
17
|
}.should raise_error( /Hoy! An error occur loading the config file `#{config_file} -- No such file or directory/ )
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should raise an error if a bogus env is requested" do
|
21
|
-
config_file = File.join(File.dirname(__FILE__), %w[.. config test.yml])
|
21
|
+
config_file = File.join(File.dirname(__FILE__), %w[.. .. config test.yml])
|
22
22
|
lambda {
|
23
23
|
Wackamole::Control.init_config( config_file, 'production' )
|
24
24
|
}.should raise_error( /Hoy! An error occur loading the config file `#{config_file} -- Invalid environment `production/ )
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should raise an error if invalid config file content" do
|
28
|
-
config_file = File.join(File.dirname(__FILE__), %w[.. config bogus_test.yml])
|
28
|
+
config_file = File.join(File.dirname(__FILE__), %w[.. .. config bogus_test.yml])
|
29
29
|
lambda {
|
30
30
|
Wackamole::Control.init_config( config_file, 'test' )
|
31
31
|
}.should raise_error( /Hoy! An error occur loading the config file `#{config_file} -- Unable to find host in -/ )
|
@@ -35,19 +35,19 @@ describe Wackamole::Control do
|
|
35
35
|
describe 'connection' do
|
36
36
|
before :all do
|
37
37
|
Wackamole::Control.reset!
|
38
|
-
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. config test.yml]), 'test' )
|
38
|
+
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. .. config test.yml]), 'test' )
|
39
39
|
Wackamole::Control.connection.should_not be_nil
|
40
40
|
end
|
41
41
|
|
42
42
|
describe "#collection" do
|
43
43
|
it "should find a collection correctly" do
|
44
|
-
cltn = Wackamole::Control.collection( 'features', "
|
45
|
-
cltn.count.should ==
|
46
|
-
feature = cltn.find_one()
|
47
|
-
feature['app'].should == "
|
48
|
-
feature['env'].should == "
|
49
|
-
feature['did'].should ==
|
50
|
-
feature['ctx'].should match(
|
44
|
+
cltn = Wackamole::Control.collection( 'features', "mole_app1_test_mdb" )
|
45
|
+
cltn.count.should == 6
|
46
|
+
feature = cltn.find_one()
|
47
|
+
feature['app'].should == "app1"
|
48
|
+
feature['env'].should == "test"
|
49
|
+
feature['did'].should == Time.now.utc.to_date_id.to_s
|
50
|
+
feature['ctx'].should match( /\// )
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -55,7 +55,7 @@ describe Wackamole::Control do
|
|
55
55
|
it "should correctly identify mole dbs" do
|
56
56
|
# gen_bogus_dbs
|
57
57
|
mole_dbs = Wackamole::Control.mole_databases
|
58
|
-
mole_dbs.should have(
|
58
|
+
mole_dbs.should have(2).items
|
59
59
|
end
|
60
60
|
|
61
61
|
it "should extra app/env correctly" do
|
@@ -69,20 +69,20 @@ describe Wackamole::Control do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
it "should connect to a mole databases correctly" do
|
72
|
-
%w[
|
73
|
-
Wackamole::Control.db( "
|
72
|
+
%w[app1 app2].each do |app|
|
73
|
+
Wackamole::Control.db( "mole_#{app}_test_mdb" )
|
74
74
|
feature = Wackamole::Control.collection( 'features' ).find_one()
|
75
|
-
feature['app'].should ==
|
76
|
-
feature['env'].should ==
|
75
|
+
feature['app'].should == app
|
76
|
+
feature['env'].should == "test"
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
80
|
it "should switch mole dbs correctly" do
|
81
|
-
%w[
|
82
|
-
Wackamole::Control.switch_mole_db!( "
|
81
|
+
%w[app1 app2].each do |app|
|
82
|
+
Wackamole::Control.switch_mole_db!( app, "test" )
|
83
83
|
feature = Wackamole::Control.collection( 'features' ).find_one()
|
84
|
-
feature['app'].should ==
|
85
|
-
feature['env'].should ==
|
84
|
+
feature['app'].should == app
|
85
|
+
feature['env'].should == "test"
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
@@ -1,26 +1,26 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
require 'chronic'
|
3
3
|
|
4
4
|
describe Wackamole::Feature do
|
5
5
|
before( :all ) do
|
6
|
-
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. config test.yml]), 'test' )
|
6
|
+
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. .. config test.yml]), 'test' )
|
7
7
|
Wackamole::Control.connection.should_not be_nil
|
8
|
-
Wackamole::Control.db( "
|
8
|
+
Wackamole::Control.db( "mole_app1_test_mdb" )
|
9
9
|
end
|
10
10
|
|
11
11
|
it "retrieve an app info correctly" do
|
12
12
|
app_info = Wackamole::Feature.get_app_info
|
13
13
|
app_info.should_not be_nil
|
14
14
|
app_info.should have(2).items
|
15
|
-
app_info[:app_name].should == "
|
15
|
+
app_info[:app_name].should == "app1"
|
16
16
|
app_info[:stage].should == "test"
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should paginate features correctly" do
|
20
20
|
cltn = Wackamole::Feature.paginate_tops( {}, 1, 5 )
|
21
|
-
cltn.total_entries.should ==
|
22
|
-
cltn.size.should
|
23
|
-
cltn.total_pages.should
|
21
|
+
cltn.total_entries.should == 6
|
22
|
+
cltn.size.should == 5
|
23
|
+
cltn.total_pages.should == 2
|
24
24
|
end
|
25
25
|
|
26
26
|
describe "indexes" do
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
require 'chronic'
|
3
3
|
|
4
4
|
describe Wackamole::Log do
|
5
5
|
before( :all ) do
|
6
|
-
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. config test.yml]), 'test' )
|
6
|
+
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. .. config test.yml]), 'test' )
|
7
7
|
Wackamole::Control.connection.should_not be_nil
|
8
|
-
Wackamole::Control.db( "
|
8
|
+
Wackamole::Control.db( "mole_app1_test_mdb" )
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should paginate logs correctly" do
|
12
12
|
cltn = Wackamole::Log.paginate( {}, 1, 5 )
|
13
|
-
cltn.total_entries.should ==
|
13
|
+
cltn.total_entries.should == 15
|
14
14
|
cltn.size.should == 5
|
15
|
-
cltn.total_pages.should ==
|
15
|
+
cltn.total_pages.should == 3
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "indexes" do
|
@@ -1,12 +1,14 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
require 'chronic'
|
3
3
|
|
4
4
|
describe Wackamole::Mission do
|
5
5
|
before :all do
|
6
6
|
Wackamole::Control.reset!
|
7
|
-
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. config test.yml]), 'test' )
|
7
|
+
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. .. config test.yml]), 'test' )
|
8
8
|
Wackamole::Control.connection.should_not be_nil
|
9
|
-
|
9
|
+
now = Time.now
|
10
|
+
@test_time = Chronic.parse( "%d/%2d/%2d 17:00:00" % [now.year,now.month,now.day] )
|
11
|
+
# @test_time = Chronic.parse( "2010/01/01 01:00:00" ).utc
|
10
12
|
end
|
11
13
|
|
12
14
|
describe '#to_type_name' do
|
@@ -30,16 +32,18 @@ describe Wackamole::Mission do
|
|
30
32
|
pulse[:to_date].should_not be_nil
|
31
33
|
pulse[:today].should_not be_nil
|
32
34
|
pulse[:last_tick].should_not be_nil
|
35
|
+
expected = {'to_date' => [7,5,3], 'today' => [6,4,2] }
|
33
36
|
%w(to_date today).each do |p|
|
34
|
-
%w(
|
37
|
+
%w(app1 app2).each do |app|
|
35
38
|
[0, 1, 2].each do |type|
|
36
|
-
pulse[p.to_sym]["
|
39
|
+
pulse[p.to_sym][app]["test"][type].should == expected[p][type]
|
37
40
|
end
|
38
41
|
end
|
39
42
|
end
|
40
|
-
%w(
|
43
|
+
%w(app1 app2).each do |app|
|
44
|
+
expected = [3,2,1]
|
41
45
|
[0, 1, 2].each do |type|
|
42
|
-
pulse[:last_tick]["
|
46
|
+
pulse[:last_tick][app]["test"][type].should == expected[type]
|
43
47
|
end
|
44
48
|
end
|
45
49
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
|
+
require 'chronic'
|
3
|
+
|
4
|
+
describe Wackamole::MoledInfo do
|
5
|
+
before( :all ) do
|
6
|
+
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. .. config test.yml]), 'test' )
|
7
|
+
Wackamole::Control.connection.should_not be_nil
|
8
|
+
Wackamole::Control.db( "mole_app1_test_mdb" )
|
9
|
+
now = Time.now
|
10
|
+
@test_time = Chronic.parse( "%d/%2d/%2d 17:00:00" % [now.year,now.month,now.day] )
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should gather dashboard info correctly" do
|
14
|
+
info = Wackamole::MoledInfo.collect_dashboard_info( @test_time )
|
15
|
+
|
16
|
+
info[:total_users].should == 5
|
17
|
+
info[:user_load].should == 2
|
18
|
+
info[:total_features].should == 6
|
19
|
+
info[:feature_load].should == 1
|
20
|
+
info[:fault_load].should == 1
|
21
|
+
info[:perf_load].should == 2
|
22
|
+
|
23
|
+
info[:user_series].should == series_for( [[17,2]] )
|
24
|
+
info[:feature_series].should == series_for( [[17,2]] )
|
25
|
+
info[:fault_series].should == series_for( [[17,1]] )
|
26
|
+
info[:perf_series].should == series_for( [[17,2]] )
|
27
|
+
end
|
28
|
+
|
29
|
+
def series_for( slots )
|
30
|
+
series = 24.times.collect { |i| 0 }
|
31
|
+
slots.each do |pair|
|
32
|
+
series[pair.first] = pair.last
|
33
|
+
end
|
34
|
+
series
|
35
|
+
end
|
36
|
+
end
|
@@ -1,8 +1,10 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
3
|
describe Wackamole::SearchFilter do
|
4
4
|
before( :each ) do
|
5
|
-
@filter
|
5
|
+
@filter = Wackamole::SearchFilter.new
|
6
|
+
now = Time.now
|
7
|
+
@test_time = Chronic.parse( "%d/%2d/%2d 17:00:00" % [now.year,now.month,now.day] )
|
6
8
|
end
|
7
9
|
|
8
10
|
it "should initialize with the correct defaults" do
|
@@ -64,8 +66,8 @@ describe Wackamole::SearchFilter do
|
|
64
66
|
it "should spews default filter query conds correctly" do
|
65
67
|
conds = @filter.to_conds
|
66
68
|
conds.should have(1).item
|
67
|
-
conds.key?(
|
68
|
-
conds[
|
69
|
+
conds.key?( '$where' ).should == true
|
70
|
+
conds['$where'].should == "((this.did == '#{@test_time.to_date_id}' && this.tid >= '070001') || ( this.did == '#{(@test_time+24*60*60).to_date_id}' && this.tid <= '065959') )"
|
69
71
|
end
|
70
72
|
|
71
73
|
it "should include browser if specified correctly" do
|
@@ -73,8 +75,6 @@ describe Wackamole::SearchFilter do
|
|
73
75
|
conds = @filter.to_conds
|
74
76
|
time = Chronic.parse( "now" ).utc
|
75
77
|
conds.should have(2).items
|
76
|
-
conds.key?( :did ).should == true
|
77
|
-
conds[:did].should == { "$gte" => @now.to_date_id.to_s }
|
78
78
|
conds['bro.name'].should == "Safari"
|
79
79
|
end
|
80
80
|
|
@@ -84,8 +84,6 @@ describe Wackamole::SearchFilter do
|
|
84
84
|
conds = @filter.to_conds
|
85
85
|
time = Chronic.parse( "now" ).utc
|
86
86
|
conds.should have(3).items
|
87
|
-
conds.key?( :did ).should == true
|
88
|
-
conds[:did].should == { "$gte" => @now.to_date_id.to_s }
|
89
87
|
conds['bro.name'].should == "Safari"
|
90
88
|
conds[:typ].should == Rackamole.feature
|
91
89
|
end
|
@@ -95,32 +93,30 @@ describe Wackamole::SearchFilter do
|
|
95
93
|
conds = @filter.to_conds
|
96
94
|
time = Chronic.parse( "now" ).utc
|
97
95
|
conds.should have(2).items
|
98
|
-
conds.key?( :did ).should == true
|
99
|
-
conds[:did].should == { "$gte" => @now.to_date_id.to_s }
|
100
96
|
conds[:fid].should == Mongo::ObjectID.from_string( "4b25b0049983a8a193000010" )
|
101
97
|
end
|
102
98
|
|
103
99
|
describe "search terms" do
|
104
100
|
before( :all ) do
|
105
|
-
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. config test.yml]), 'test' )
|
101
|
+
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. .. config test.yml]), 'test' )
|
106
102
|
Wackamole::Control.connection.should_not be_nil
|
107
|
-
Wackamole::Control.db( "
|
103
|
+
Wackamole::Control.db( "mole_app1_test_mdb" )
|
108
104
|
end
|
109
105
|
|
110
106
|
it "should retrieve features correctly" do
|
111
107
|
features = @filter.features
|
112
|
-
features.should have(
|
108
|
+
features.should have(7).items
|
113
109
|
count = 0
|
110
|
+
expected = %w(All / /error /normal /params/10 /post /slow)
|
114
111
|
features.each do |f|
|
115
112
|
f.should have(2).items
|
116
|
-
f.first.should ==
|
117
|
-
f.first.should == "feature_#{count-1}" if count > 0
|
113
|
+
f.first.should == expected[count]
|
118
114
|
count += 1
|
119
115
|
end
|
120
116
|
end
|
121
117
|
|
122
118
|
it "should include user if specified" do
|
123
|
-
@filter.search_terms = "user:
|
119
|
+
@filter.search_terms = "user:fernand"
|
124
120
|
conds = @filter.to_conds
|
125
121
|
conds.should have(2).items
|
126
122
|
conds[:uid].should_not be_nil
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
require 'chronic'
|
3
3
|
|
4
4
|
describe Wackamole::User do
|
5
5
|
before( :all ) do
|
6
|
-
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. config test.yml]), 'test' )
|
6
|
+
Wackamole::Control.init_config( File.join(File.dirname(__FILE__), %w[.. .. config test.yml]), 'test' )
|
7
7
|
Wackamole::Control.connection.should_not be_nil
|
8
|
-
Wackamole::Control.db( "
|
8
|
+
Wackamole::Control.db( "mole_app1_test_mdb" )
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should paginate a user collection correctly" do
|
12
12
|
cltn = Wackamole::User.paginate_tops( {}, 1, 2 )
|
13
|
-
cltn.total_entries.should ==
|
13
|
+
cltn.total_entries.should == 2
|
14
14
|
cltn.size.should == 2
|
15
|
-
cltn.total_pages.should ==
|
15
|
+
cltn.total_pages.should == 1
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "indexes" do
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
2
2
|
|
3
3
|
describe Wackamole do
|
4
4
|
before( :all ) do
|
5
|
-
@root = ::File.expand_path( ::File.join(::File.dirname(__FILE__),
|
5
|
+
@root = ::File.expand_path( ::File.join(::File.dirname(__FILE__), %w(.. ..) ) )
|
6
6
|
end
|
7
7
|
|
8
8
|
it "is versioned" do
|
data/tasks/fixtures.rake
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'data/fixtures'
|
2
|
+
|
1
3
|
namespace :fixtures do
|
2
4
|
|
3
5
|
# A prerequisites task that all other tasks depend upon
|
@@ -5,7 +7,7 @@ namespace :fixtures do
|
|
5
7
|
|
6
8
|
desc 'Populate fixture data'
|
7
9
|
task :load do |t|
|
8
|
-
Fixtures.
|
10
|
+
Fixtures.new.populate
|
9
11
|
end
|
10
12
|
|
11
13
|
# task 'gem:release' => 'svn:create_tag'
|
data/tasks/setup.rb
CHANGED