* reset! for tests
[sinatra.git] / test / error_dsl_test.rb
blob42dcc81cc31c570efe6ade0cd63a2ab56466e783
1 require File.dirname(__FILE__) + '/helper'
3 context "Defining Errors" do
5   setup do
6     Sinatra.reset!
7   end
8   
9   specify "should raise error if no block given" do
10     
11     lambda { error 404 }.should.raise(RuntimeError)
12     lambda { error(404) {} }.should.not.raise
13     
14   end
15   
16   specify "should auto-set status for error events" do
17     error 404 do
18       'custom 404'
19     end
20     
21     get_it '/'
22     
23     should.be.not_found
24   end
25   
26   specify "should handle multiple errors" do
27     
28     error 404, 500 do
29       'multi custom error'
30     end
31     
32     get '/error' do
33       raise 'asdf'
34     end
35     
36     dont_raise_errors do
37       get_it '/error'
38     end
39     
40     status.should.equal 500
41     body.should.equal 'multi custom error'
42     
43     get_it '/'
44     status.should.equal 404
45     
46     body.should.equal 'multi custom error'
47     
48   end
49   
50 end