Skip to content

Commit b23f269

Browse files
committed
clean tests and make them pass in the order observed on nix systems
1 parent 161878f commit b23f269

14 files changed

+164
-87
lines changed

Gemfile.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
GIT
22
remote: git://github.com/floehopper/mocha.git
3-
revision: 0ce0adc9f104a0ae2ddca400696c8694e85f1b93
3+
revision: f417066f7f1b7d66cf5c72f28380675bde0cc424
44
specs:
55
mocha (0.9.12)
6-
metaid (~> 1.0)
6+
metaclass (~> 0.0.1)
77

88
GEM
99
remote: http://rubygems.org/
@@ -170,7 +170,7 @@ GEM
170170
i18n (>= 0.4.0)
171171
mime-types (~> 1.16)
172172
treetop (~> 1.4.8)
173-
metaid (1.0)
173+
metaclass (0.0.1)
174174
mime-types (1.16)
175175
mimemagic (0.1.8)
176176
mimetype-fu (0.1.2)

Rakefile

+49
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,52 @@ task :release => :gem do
2020
end
2121

2222
task :default => [:spec, :cucumber]
23+
24+
# only for running the tests suite in the order observed in *nix systems
25+
task :spec_nix do
26+
files = %w(
27+
lib/core_ext_spec.rb
28+
lib/locomotive/routing/site_dispatcher_spec.rb
29+
lib/locomotive/bushido_spec.rb
30+
lib/locomotive/render_spec.rb
31+
lib/locomotive/httparty/patches_spec.rb
32+
lib/locomotive/httparty/webservice_spec.rb
33+
lib/locomotive/configuration_spec.rb
34+
lib/locomotive/liquid/tags/consume_spec.rb
35+
lib/locomotive/liquid/tags/with_scope_spec.rb
36+
lib/locomotive/liquid/tags/nav_spec.rb
37+
lib/locomotive/liquid/tags/editable/content_spec.rb
38+
lib/locomotive/liquid/tags/editable/short_text_spec.rb
39+
lib/locomotive/liquid/tags/seo_spec.rb
40+
lib/locomotive/liquid/tags/paginate_spec.rb
41+
lib/locomotive/liquid/drops/content_spec.rb
42+
lib/locomotive/liquid/drops/contents_spec.rb
43+
lib/locomotive/liquid/drops/page_spec.rb
44+
lib/locomotive/liquid/drops/site_spec.rb
45+
lib/locomotive/liquid/filters/resize_spec.rb
46+
lib/locomotive/liquid/filters/html_spec.rb
47+
lib/locomotive/liquid/filters/date_spec.rb
48+
lib/locomotive/liquid/filters/text_spec.rb
49+
lib/locomotive/liquid/filters/misc_spec.rb
50+
lib/locomotive/heroku_spec.rb
51+
lib/locomotive/import_spec.rb
52+
lib/locomotive/export_spec.rb
53+
models/content_instance_spec.rb
54+
models/editable_element_spec.rb
55+
models/account_spec.rb
56+
models/content_type_spec.rb
57+
models/snippet_spec.rb
58+
models/ability_spec.rb
59+
models/membership_spec.rb
60+
models/page_spec.rb
61+
models/asset_spec.rb
62+
models/theme_asset_spec.rb
63+
models/site_spec.rb
64+
cells/admin/main_menu_cell_spec.rb
65+
cells/admin/global_actions_spec.rb
66+
cells/admin/settings_menu_cell_spec.rb
67+
requests/seo_trailing_slash_spec.rb
68+
).collect { |f| File.join('spec', f) }.join(' ')
69+
70+
sh "bundle exec rspec #{files}"
71+
end

app/cells/admin/menu_cell.rb

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def self.update_for(name, &block)
4545
block.call(MenuProxy.new(self))
4646
end
4747

48+
# Note: this might cause "stack level too deep" if called twice for the same name
4849
alias_method_chain :build_list, name.to_sym
4950
end
5051

spec/cells/admin/global_actions_spec.rb

+8-20
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,5 @@
11
require 'spec_helper'
22

3-
module Resetter
4-
5-
@@original_global_actions_cell_klass = Admin::GlobalActionsCell
6-
7-
def self.original_global_actions_cell_klass
8-
@@original_global_actions_cell_klass
9-
end
10-
11-
def self.reset_global_actions_cell_klass
12-
::Admin.send(:remove_const, 'GlobalActionsCell')
13-
::Admin.const_set('GlobalActionsCell', self.original_global_actions_cell_klass.clone)
14-
::Admin::GlobalActionsCell.any_instance.stubs(:sections).returns({ :main => 'settings', :sub => 'site' })
15-
end
16-
17-
end
18-
193
describe Admin::GlobalActionsCell do
204

215
render_views
@@ -25,7 +9,7 @@ def self.reset_global_actions_cell_klass
259
describe 'show menu' do
2610

2711
before(:each) do
28-
Resetter.reset_global_actions_cell_klass
12+
CellsResetter.new_global_actions_cell_klass({ :main => 'settings', :sub => 'site' })
2913
end
3014

3115
it 'has 3 links' do
@@ -49,7 +33,7 @@ def self.reset_global_actions_cell_klass
4933
describe 'add a new menu item' do
5034

5135
before(:each) do
52-
Resetter.reset_global_actions_cell_klass
36+
CellsResetter.new_global_actions_cell_klass({ :main => 'settings', :sub => 'site' })
5337
Admin::GlobalActionsCell.update_for(:testing_add) { |m| m.add(:my_link, :label => 'My link', :url => 'http://www.locomotivecms.com') }
5438
end
5539

@@ -66,7 +50,7 @@ def self.reset_global_actions_cell_klass
6650
describe 'remove a new menu item' do
6751

6852
before(:each) do
69-
Resetter.reset_global_actions_cell_klass
53+
CellsResetter.new_global_actions_cell_klass({ :main => 'settings', :sub => 'site' })
7054
Admin::GlobalActionsCell.update_for(:testing_remove) { |m| m.remove(:see) }
7155
end
7256

@@ -83,7 +67,7 @@ def self.reset_global_actions_cell_klass
8367
describe 'modify an existing menu item' do
8468

8569
before(:each) do
86-
Resetter.reset_global_actions_cell_klass
70+
CellsResetter.new_global_actions_cell_klass({ :main => 'settings', :sub => 'site' })
8771
Admin::GlobalActionsCell.update_for(:testing_update) { |m| m.modify(:see, { :label => 'Modified !' }) }
8872
end
8973

@@ -98,4 +82,8 @@ def self.reset_global_actions_cell_klass
9882

9983
end
10084

85+
after(:all) do
86+
CellsResetter.clean!
87+
end
88+
10189
end

spec/cells/admin/main_menu_cell_spec.rb

+8-20
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,5 @@
11
require 'spec_helper'
22

3-
module Resetter
4-
5-
@@original_main_menu_cell_klass = Admin::MainMenuCell
6-
7-
def self.original_main_menu_cell_klass
8-
@@original_main_menu_cell_klass
9-
end
10-
11-
def self.reset_main_menu_cell_klass
12-
::Admin.send(:remove_const, 'MainMenuCell')
13-
::Admin.const_set('MainMenuCell', self.original_main_menu_cell_klass.clone)
14-
::Admin::MainMenuCell.any_instance.stubs(:sections).returns({ :main => 'settings', :sub => 'site' })
15-
end
16-
17-
end
18-
193
describe Admin::MainMenuCell do
204

215
render_views
@@ -25,7 +9,7 @@ def self.reset_main_menu_cell_klass
259
describe 'show menu' do
2610

2711
before(:each) do
28-
Resetter.reset_main_menu_cell_klass
12+
CellsResetter.new_main_menu_cell_klass({ :main => 'settings', :sub => 'site' })
2913
end
3014

3115
it 'has 2 items' do
@@ -45,7 +29,7 @@ def self.reset_main_menu_cell_klass
4529
describe 'add a new menu item' do
4630

4731
before(:each) do
48-
Resetter.reset_main_menu_cell_klass
32+
CellsResetter.new_main_menu_cell_klass({ :main => 'settings', :sub => 'site' })
4933
Admin::MainMenuCell.update_for(:testing_add) { |m| m.add(:my_link, :label => 'Shop', :url => 'http://www.locomotivecms.com') }
5034
end
5135

@@ -62,7 +46,7 @@ def self.reset_main_menu_cell_klass
6246
describe 'remove a new menu item' do
6347

6448
before(:each) do
65-
Resetter.reset_main_menu_cell_klass
49+
CellsResetter.new_main_menu_cell_klass({ :main => 'settings', :sub => 'site' })
6650
Admin::MainMenuCell.update_for(:testing_remove) { |m| m.remove(:settings) }
6751
end
6852

@@ -79,7 +63,7 @@ def self.reset_main_menu_cell_klass
7963
describe 'modify an existing menu item' do
8064

8165
before(:each) do
82-
Resetter.reset_main_menu_cell_klass
66+
CellsResetter.new_main_menu_cell_klass({ :main => 'settings', :sub => 'site' })
8367
Admin::MainMenuCell.update_for(:testing_update) { |m| m.modify(:settings, { :label => 'Modified !' }) }
8468
end
8569

@@ -94,4 +78,8 @@ def self.reset_main_menu_cell_klass
9478

9579
end
9680

81+
after(:all) do
82+
CellsResetter.clean!
83+
end
84+
9785
end

spec/cells/admin/settings_menu_cell_spec.rb

+8-20
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,5 @@
11
require 'spec_helper'
22

3-
module Resetter
4-
5-
@@original_settings_menu_cell_klass = Admin::SettingsMenuCell
6-
7-
def self.original_settings_menu_cell_klass
8-
@@original_settings_menu_cell_klass
9-
end
10-
11-
def self.reset_settings_menu_cell_klass
12-
::Admin.send(:remove_const, 'SettingsMenuCell')
13-
::Admin.const_set('SettingsMenuCell', self.original_settings_menu_cell_klass.clone)
14-
::Admin::SettingsMenuCell.any_instance.stubs(:sections).returns({ :main => 'settings', :sub => 'site' })
15-
end
16-
17-
end
18-
193
describe Admin::SettingsMenuCell do
204

215
render_views
@@ -25,7 +9,7 @@ def self.reset_settings_menu_cell_klass
259
describe 'show menu' do
2610

2711
before(:each) do
28-
Resetter.reset_settings_menu_cell_klass
12+
CellsResetter.new_settings_menu_cell_klass({ :main => 'settings', :sub => 'site' })
2913
end
3014

3115
it 'has 3 items' do
@@ -49,7 +33,7 @@ def self.reset_settings_menu_cell_klass
4933
describe 'add a new menu item' do
5034

5135
before(:each) do
52-
Resetter.reset_settings_menu_cell_klass
36+
CellsResetter.new_settings_menu_cell_klass({ :main => 'settings', :sub => 'site' })
5337
Admin::SettingsMenuCell.update_for(:testing_add) { |m| m.add(:my_link, :label => 'My link', :url => 'http://www.locomotivecms.com') }
5438
end
5539

@@ -66,7 +50,7 @@ def self.reset_settings_menu_cell_klass
6650
describe 'remove a new menu item' do
6751

6852
before(:each) do
69-
Resetter.reset_settings_menu_cell_klass
53+
CellsResetter.new_settings_menu_cell_klass({ :main => 'settings', :sub => 'site' })
7054
Admin::SettingsMenuCell.update_for(:testing_remove) { |m| m.remove(:theme_assets) }
7155
end
7256

@@ -83,7 +67,7 @@ def self.reset_settings_menu_cell_klass
8367
describe 'modify an existing menu item' do
8468

8569
before(:each) do
86-
Resetter.reset_settings_menu_cell_klass
70+
CellsResetter.new_settings_menu_cell_klass({ :main => 'settings', :sub => 'site' })
8771
Admin::SettingsMenuCell.update_for(:testing_update) { |m| m.modify(:theme_assets, { :label => 'Modified !' }) }
8872
end
8973

@@ -98,4 +82,8 @@ def self.reset_settings_menu_cell_klass
9882

9983
end
10084

85+
after(:all) do
86+
CellsResetter.clean!
87+
end
88+
10189
end

spec/factories.rb

+6-2
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,17 @@
2323
s.subdomain "models"
2424
s.after_build do |site_with_models|
2525
site_with_models.content_types.build(
26-
:slug => 'projects',
27-
:name => 'Existing name',
26+
:slug => 'projects',
27+
:name => 'Existing name',
2828
:description => 'Existing description',
2929
:order_by => 'created_at')
3030
end
3131
end
3232

33+
Factory.define "valid site", :parent => "site" do |s|
34+
# s.after_build { |valid_site| valid_site.stubs(:valid?).returns(true) }
35+
end
36+
3337

3438
# Accounts ##
3539
Factory.define :account do |a|

spec/lib/locomotive/bushido_spec.rb

+1-2
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383

8484
before(:each) do
8585
configure_locomotive_with_bushido
86-
(@site = Factory.build(:site)).stubs(:valid?).returns(true)
86+
@site = Factory.build('valid site')
8787
end
8888

8989
it 'calls add_bushido_domains after saving a site' do
@@ -183,7 +183,6 @@ def configure_locomotive_with_bushido(&block)
183183
end
184184

185185
after(:all) do
186-
ENV['APP_TLD'] = nil
187186
Locomotive.configure_for_test(true)
188187
end
189188

spec/lib/locomotive/heroku_spec.rb

+3-6
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22

33
describe 'Heroku support' do
44

5-
before(:all) do
6-
Site.destroy_all
7-
end
8-
95
before(:each) do
106
::Heroku::Client.any_instance.stubs(:post).returns(true)
117
::Heroku::Client.any_instance.stubs(:delete).returns(true)
@@ -99,7 +95,9 @@
9995

10096
before(:each) do
10197
configure_locomotive_with_heroku
102-
(@site = Factory.build(:site)).stubs(:valid?).returns(true)
98+
# (@site = Factory.stub(:site)).stubs(:valid?).returns(true)
99+
@site = Factory.build('valid site')
100+
# (@site = Site.new(:name => 'foobar', :subdomain => 'acme')).stubs(:valid?).returns(true)
103101
end
104102

105103
it 'calls add_heroku_domains after saving a site' do
@@ -178,7 +176,6 @@ def configure_locomotive_with_heroku(options = {}, domains = nil)
178176
end
179177

180178
after(:all) do
181-
ENV['HEROKU_SLUG'] = ENV['APP_NAME'] = ENV['HEROKU_LOGIN'] = ENV['HEROKU_PASSWORD'] = nil
182179
Locomotive.configure_for_test(true)
183180
end
184181

0 commit comments

Comments
 (0)