App-perlimports
view release on metacpan or search on metacpan
t/perlimports.t view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use Path::Tiny ();
use Test::Differences qw( eq_or_diff );
use Test::More import => [qw( done_testing subtest )];
use Test::Needs qw( Moose );
use Test::Script 1.27 qw(
script_compiles
script_fails
script_runs
script_stderr_is
script_stderr_like
script_stdout_like
);
use TOML::Tiny qw( from_toml );
my $script = 'script/perlimports';
my @filename = ( '--filename', 'test-data/carp.pl' );
script_compiles($script);
sub tmp_perl_file {
my $file = Path::Tiny->tempfile('testXXXX');
$file->spew('use strict;use warnings;');
return $file;
}
subtest 'provide config file' => sub {
my $file = tmp_perl_file();
script_runs(
[ $script, '--config-file', 'test-data/perlimports.toml', "$file" ] );
script_stderr_is( q{}, 'no errors' );
};
subtest 'config file not found' => sub {
my $file = tmp_perl_file();
script_fails(
[ $script, '--config-file', 'test-data/Xperlimports.toml', "$file" ],
{ exit => 1 }
);
script_stderr_like( qr{Xperlimports.toml not found}, 'not found error' );
};
subtest 'create config file' => sub {
my $dir = Path::Tiny->tempdir('testconfigXXXXXXXX');
my $file = $dir->child('perlimports.toml');
script_runs( [ $script, '--create-config-file', "$file" ] );
script_stderr_is( q{}, 'no errors' );
my $config = from_toml( $file->slurp );
eq_or_diff( $config->{libs}, [ 'lib', 't/lib' ], 'default libs' );
script_fails(
[ $script, '--create-config-file', "$file" ],
{ exit => 1 },
);
script_stderr_like( qr{already exists}, 'error clobbering file' );
};
subtest 'filename' => sub {
script_runs( [ $script, @filename ] );
script_stderr_is( q{}, 'no errors' );
};
( run in 1.787 second using v1.01-cache-2.11-cpan-b16cb0d3907 )