65 lines
2 KiB
Ruby
65 lines
2 KiB
Ruby
|
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
||
|
require File.expand_path(File.dirname(__FILE__) + '/fixtures/apps/kiq')
|
||
|
require File.expand_path(File.dirname(__FILE__) + '/fixtures/apps/system')
|
||
|
require File.expand_path(File.dirname(__FILE__) + '/fixtures/apps/static')
|
||
|
|
||
|
describe "SystemReloader" do
|
||
|
context 'for wierd and difficult reload events' do
|
||
|
should 'reload system features if they were required only in helper' do
|
||
|
@app = SystemDemo
|
||
|
@app.reload!
|
||
|
get '/'
|
||
|
assert_equal 'Resolv', body
|
||
|
end
|
||
|
|
||
|
should 'reload children on parent change' do
|
||
|
@app = SystemDemo
|
||
|
assert_equal Child.new.family, 'Danes'
|
||
|
parent_file = File.expand_path(File.dirname(__FILE__) + '/fixtures/apps/models/parent.rb')
|
||
|
new_class = <<-DOC
|
||
|
class Parent
|
||
|
def family
|
||
|
'Dancy'
|
||
|
end
|
||
|
def shmamily
|
||
|
'Shmancy'
|
||
|
end
|
||
|
end
|
||
|
DOC
|
||
|
begin
|
||
|
backup = File.read(parent_file)
|
||
|
Padrino::Reloader.reload!
|
||
|
assert_equal 'Danes', Parent.new.family
|
||
|
assert_equal 'Danes', Child.new.family
|
||
|
File.open(parent_file, "w") { |f| f.write(new_class) }
|
||
|
Padrino::Reloader.reload!
|
||
|
assert_equal 'Dancy', Parent.new.family
|
||
|
assert_equal 'Shmancy', Parent.new.shmamily
|
||
|
assert_equal 'Dancy', Child.new.family
|
||
|
assert_equal 'Shmancy', Child.new.shmamily
|
||
|
ensure
|
||
|
File.open(parent_file, "w") { |f| f.write(backup) }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
should 'tamper with LOAD_PATH' do
|
||
|
SystemDemo.load_paths.each do |lib_dir|
|
||
|
assert_includes $LOAD_PATH, lib_dir
|
||
|
end
|
||
|
Padrino.send(:load_paths_was).each do |lib_dir|
|
||
|
assert_includes $LOAD_PATH, lib_dir
|
||
|
end
|
||
|
end
|
||
|
|
||
|
should 'not fail horribly on reload event with non-padrino apps' do
|
||
|
Padrino.mount("kiq").to("/")
|
||
|
Padrino.reload!
|
||
|
end
|
||
|
|
||
|
should 'not reload apps with disabled reload' do
|
||
|
Padrino.mount(StaticDemo).to("/")
|
||
|
Padrino.reload!
|
||
|
end
|
||
|
end
|
||
|
end
|