Ado
view release on metacpan or search on metacpan
t/ado-build.t view on Meta::CPAN
#ado-build.t
use Mojo::Base -strict;
use Test::More;
use File::stat;
use File::Spec::Functions qw(catdir catfile catpath);
use File::Temp qw(tempdir);
use lib(-d 'blib' ? 'blib/lib' : 'lib');
use Ado::Build;
use Mojo::File qw(path);
$SIG{__WARN__} = sub {
return if $_[0] =~ m|Wide\scharacter\sin\sprint|x;
warn @_;
};
if (not $ENV{TEST_AUTHOR}) {
my $msg = 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.';
plan(skip_all => $msg);
}
eval "use Test::Output;";
plan skip_all => "Test::Output required for this test" if $@;
my $perl = Ado::Build->find_perl_interpreter;
my $tempdir = tempdir(CLEANUP => 1);
#Build script
like(
my $out = qx(TEST_AUTHOR=0 $perl Build.PL --install_base=$tempdir),
qr/Creating\snew\s'Build'\sscript/,
'running Build.PL is ok'
);
#MYMETA.json and yml
my $mymeta = path('MYMETA.json')->slurp();
unlike($mymeta, qr/Perl\:\:Tidy/, 'ok - no $AUTHOR_TEST build_requires');
unlike($mymeta, qr/IO::Socket::SSL/, 'ok - no $AUTHOR_TEST requires');
#test Ado::Build it self
isa_ok(
my $build = Ado::Build->new(
module_name => 'Ado',
configure_requires => {'Module::Build' => '0.42'}
),
'Module::Build'
);
subtest 'missing build element' => sub {
ok(rename('log', 'log_'), 'no "log" dir');
stdout_like(
sub { $build->create_build_script(); },
qr/Creating\snew\s'Build'\sscript/,
'create_build_script()(no "log" dir) output ok'
);
my $elems = join('', qw(etc public templates));
like(join('', @{$build->build_elements()}), qr/$elems$/, " build_elements($elems) present");
ok(rename('log_', 'log'), 'yes "log" dir');
done_testing();
};
stdout_like(
sub { $build->create_build_script(); },
qr/Creating\snew\s'Build'\sscript/,
'create_build_script() output ok'
);
my $build_elements = [qw(etc public log templates)];
( run in 1.876 second using v1.01-cache-2.11-cpan-99c4e6809bf )