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 )