use LogReportTest;
use Data::Dumper;
use Data::Printer;
use Plack::Test;
use Model;
sub debug {
my $response = shift; p $response->text;
print_output($response);
}
my $psgi_app = LogReport::runner()->psgi_app;
LWP::Protocol::PSGI->register($psgi_app);
my $mech = Test::WWW::Mechanize->new;
my @types = (
qw/notice mistake warning error alert fault failure success panic/
);
for my $type (@types) {
next if $type eq 'panic'; # causes stack-trace in console
my $msg = Model->messages($type);
$mech->get('http://localhost/'.$type); # debug($mech);
$mech->text_contains($msg);
}
SKIP: { # panic - get stack trace even on test - can't set 'accept' in .yml above PANIC
skip('console stack trace',0);
$mech->get('http://localhost/panic'); # debug($mech);
$mech->text_contains(
'An unexpected error has occurred',
'Text contains: An unexpected error has occurred [panic; redirected]'
);
}
{ # update without request param description:
$mech->get('http://localhost/update?title=foo'); # debug($mech);
$mech->text_contains('no description entered');
$mech->text_contains('Success: update OK');
$mech->text_contains('about to render template ....');
}
# switch off test config 'show_errors' setting:
{
my $app = LogReport::app; # p $app->settings->{show_errors};
$app->config->{show_errors} = 0; # p $app->settings->{show_errors};
# LWP::Protocol::PSGI->register($app->psgi_app);
# my $test = Plack::Test->create($app); p $test->settings;
# repeat alert
$mech->get('http://localhost/fault'); debug($mech);
#$mech->text_contains(
# 'An unexpected error has occurred',
# 'Text contains: An unexpected error has occurred [alert; redirected]');
}
done_testing();