--- /dev/null
+package Catalyst::TraitFor::Context::TestErrors;
+
+use Moose::Role;
+
+before error => sub {
+ my $c = shift;
+ unless ( $_[0] ) {
+ return;
+ }
+
+ if ( $_[0] =~ /^(Unknown resource|No default action defined)/ ) {
+ $c->response->status(404);
+ }
+
+ if ( $_[0] =~ /^Couldn\'t forward/ ) {
+ $c->response->status(404);
+ }
+
+ if ( $_[0] =~ /^Caught exception/ ) {
+ $c->response->status(500);
+ }
+
+ my $error = $_[0];
+ $error =~ s/\n/, /g;
+ $c->response->headers->push_header( 'X-Catalyst-Error' => $error );
+};
+
+1;
use Moose;
extends 'Catalyst::Context';
with 'Catalyst::TraitFor::Context::TestHeaders';
+with 'Catalyst::TraitFor::Context::TestErrors';
if (eval { Class::MOP::load_class('CatalystX::LeakChecker'); 1 }) {
with 'CatalystX::LeakChecker';