test/mapped_error_test.rb in sinatra-0.9.6 vs test/mapped_error_test.rb in sinatra-1.0.a
- old
+ new
@@ -99,9 +99,40 @@
get '/test'
assert_equal 404, status
assert_equal "Lost, are we?", body
end
+
+ it 'inherits error mappings from base class' do
+ base = Class.new(Sinatra::Base)
+ base.error(FooError) { 'base class' }
+
+ mock_app(base) {
+ set :raise_errors, false
+ get '/' do
+ raise FooError
+ end
+ }
+
+ get '/'
+ assert_equal 'base class', body
+ end
+
+ it 'overrides error mappings in base class' do
+ base = Class.new(Sinatra::Base)
+ base.error(FooError) { 'base class' }
+
+ mock_app(base) {
+ set :raise_errors, false
+ error(FooError) { 'subclass' }
+ get '/' do
+ raise FooError
+ end
+ }
+
+ get '/'
+ assert_equal 'subclass', body
+ end
end
describe 'Custom Error Pages' do
it 'allows numeric status code mappings to be registered with ::error' do
mock_app {