spec/hyperdrive/middleware/error_spec.rb in hyperdrive-0.0.6 vs spec/hyperdrive/middleware/error_spec.rb in hyperdrive-0.0.7

- old
+ new

@@ -1,25 +1,43 @@ # encoding: utf-8 require 'spec_helper' describe Hyperdrive::Middleware::Error do - def app - Rack::Builder.new do - use Hyperdrive::Middleware::Error - run ->(env) { raise Hyperdrive::Errors::HTTPError } - end - end - before do - @response = %Q({"_links":{"root":{"href":"/","title":"API Root"}},"error":{"type":"HTTPError","message":"Hyperdrive::Errors::HTTPError"}}) get '/' end + + context "Known Error" do + def app + Rack::Builder.new do + use Hyperdrive::Middleware::Error + run ->(env) { raise Hyperdrive::Errors::MethodNotAllowed.new('GET') } + end + end - it "traps errors" do - last_response.status.must_equal 500 + it "traps errors" do + last_response.status.must_equal 405 + end + + it "returns a formatted error message" do + last_response.body.must_match(/error/) + end end - it "returns a formatted error message" do - last_response.body.must_equal @response + context "Unknown Error" do + def app + Rack::Builder.new do + use Hyperdrive::Middleware::Error + run ->(env) { raise 'Woah there, fella!' } + end + end + + it "traps errors" do + last_response.status.must_equal 500 + end + + it "returns a formatted error message" do + last_response.body.must_match(/Unknown Error/) + end end end