From: John Napiorkowski Date: Wed, 18 Dec 2013 14:56:04 +0000 (-0600) Subject: better error messages when the middleware does not exist X-Git-Tag: 5.90052~9 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=d9c6a83f06829ad3ece6dc29df5ae97c1e904103 better error messages when the middleware does not exist --- diff --git a/lib/Catalyst/Utils.pm b/lib/Catalyst/Utils.pm index fffa048..81ab727 100644 --- a/lib/Catalyst/Utils.pm +++ b/lib/Catalyst/Utils.pm @@ -457,6 +457,8 @@ sub build_middleware { return $ns->new(@init_args); } elsif(Class::Load::try_load_class("Plack::Middleware::$namespace")) { ## Act like Plack::Builder return "Plack::Middleware::$namespace"->new(@init_args); + } else { + die "Can't load middleware via '$namespace'. It's not ".$class."::Middleware::".$namespace." or Plack::Middleware::$namespace"; } } diff --git a/t/bad_middleware_error.t b/t/bad_middleware_error.t new file mode 100644 index 0000000..7018ea9 --- /dev/null +++ b/t/bad_middleware_error.t @@ -0,0 +1,16 @@ +#!/usr/bin/env perl + +{ + package MyApp; + + use Catalyst; + use Test::More; + + eval { + __PACKAGE__->setup_middleware('DoesNotExist'); 1; + } || do { + like($@, qr/MyApp::Middleware::DoesNotExist or Plack::Middleware::DoesNotExist/); + }; + + done_testing; +}