well here is the test that fails - just try using an undeclared variable in an action and have another action after that and it blows...
use Test::More;
use strict;
use warnings;
sub compilation_error_for($) {
my $source = shift;
use File::Temp qw/tempfile/;
my ($fh, $filename) = tempfile();
print $fh $source;
close $fh;
eval "require '$filename';";
return $@;
}
my $very_simple = compilation_error_for <<'CxD';
{
use CatalystX::Declare;
controller MyApp::Controller::Foo {
action foo { $unknown_var };
}
}
CxD
like $very_simple, qr/explicit package name/,
'Correct error message for very simple errors';
this breaks horribly:
my $still_simple = compilation_error_for <<'CxD';
{
use CatalystX::Declare;
controller MyApp::Controller::Foo {
action foo { $unknown_var };
action bar {};
}
}
CxD
like $still_simple, qr/explicit package name/,
'Correct error message for slightly more complex errors';
rechecking case 1 again to be sure there are no other factors
my $very_simple2 = compilation_error_for <<'CxD';
{
use CatalystX::Declare;
controller MyApp::Controller::Foo {
action foo { $unknown_var };
}
}
CxD
like $very_simple2, qr/explicit package name/,
"Still seeing correct error message for simple error";
done_testing;