Dist-Iller
view release on metacpan or search on metacpan
t/03-config.t view on Meta::CPAN
use strict;
use Test::More;
use Test::Differences;
use Path::Tiny;
use File::chdir;
use DateTime;
use Dist::Iller;
use syntax 'qi';
use lib 't/corpus/lib';
use Dist::Iller::Config::DistIllerTestConfig;
my $iller = Dist::Iller->new(filepath => 't/corpus/03-config-iller.yaml');
$iller->parse('first');
$iller->parse('before');
my $tempdir = Path::Tiny->tempdir();
my $current_dir = path('.')->realpath;
{
local $CWD = $tempdir->stringify;
$iller->generate_files('before');
}
$iller->parse('after');
{
local $CWD = $tempdir->stringify;
$iller->generate_files('after');
}
my $current_year = DateTime->now->year;
my $generated_dist_ini = $tempdir->child('dist.ini')->slurp_utf8;
my $generated_weaver_ini = $tempdir->child('weaver.ini')->slurp_utf8;
my $generated_cpanfile = $tempdir->child('cpanfile')->slurp_utf8;
my $generated_gitignore = $tempdir->child('.gitignore')->slurp;
my $spaces = qr/[\s\n\r]*/;
my $equals = qr/$spaces = $spaces/x;
like $generated_dist_ini, qr/PlacedBeforeExtraTests\]$spaces\[ExtraTests/x, '[PlacedBeforeExtraTests] inserted correctly';
like $generated_dist_ini, qr/ExecDir\]$spaces dir $equals bin/x, '[ExecDir]/bin changed and [PlacedAfter::ExecDir] inserted correctly';
unlike $generated_dist_ini, qr/\[License\]/, 'License removed';
like $generated_dist_ini, qr/\[LicenseImproved\] $spaces license $equals perl_5 $spaces \[Readme\]/x, '[LicenseImproved] inserted correctly';
like $generated_dist_ini, qr/\[Readme\] $spaces
headings $equals head1 $spaces
headings $equals head2 $spaces
more_root $equals no $spaces
suffix $equals md $spaces \[/x, '[Readme] changed correctly';
like $generated_dist_ini, qr/\[ExecDir\]$spaces dir $equals bin $spaces \[PlacedAfter::ExecDir\]/x, '[PlacedAfter::ExecDir] inserted correctly';
like $generated_dist_ini, qr/\[LastPlugin\] $spaces \[Prereqs /x, '[LastPlugin] is the last plugin';
like $generated_dist_ini, qr{\[Prereqs / DevelopSuggests\][\n\r\s]*Dist::Iller}, 'Dist::Iller only suggested';
like $generated_dist_ini, qr/copyright_year = $current_year/, 'Copyright year set to current year';
like $generated_dist_ini, qr{Cruft::Pruner = 0}, 'Added prereq from plugin';
like $generated_dist_ini, qr/Another::Crufter = 1.2/, 'Added suggests prereq from plugin';
like $generated_dist_ini, qr/authordep Pod::Weaver::Section::Authors = 0\.001/, 'Used default prereq version';
like $generated_dist_ini, qr/Moose = 2.1400/, 'Wants correct Moose';
unlike $generated_dist_ini, qr/Moo = 2/, 'Moo not added';
eq_or_diff clean_ini($generated_weaver_ini), clean_ini(weaver()), 'Correct weaver.ini';
like $generated_cpanfile, qr/This::Thing/, 'cpanfile, prereq from config';
like $generated_cpanfile, qr/Another::Thing/, 'cpanfile, prereq from local iller.yaml';
like $generated_cpanfile, qr/ExtUtils::MakeMaker/, 'cpanfile, configure requires';
( run in 2.095 seconds using v1.01-cache-2.11-cpan-d8267643d1d )