App-spaceless
view release on metacpan or search on metacpan
t/app_spaceless.t view on Meta::CPAN
use Test2::V0 -no_srand => 1;
use App::spaceless;
use Capture::Tiny qw( capture capture_stdout );
use Env qw( @PATH );
use File::Temp qw( tempdir );
use Path::Class qw( file dir );
use Config;
subtest 'running_Shell' => sub {
my($out, $err, $shell) = capture { App::spaceless::_running_shell() };
note $err if $err;
isa_ok $shell, 'Shell::Guess';
note "guessed shell = ", $shell->name;
};
subtest '--version' => sub {
my($out, $err, $ret) = capture { App::spaceless->main('--version') };
chomp $out;
is $ret, 1, 'exit is 1';
my $ver = $App::spaceless::VERSION // 'dev';
is $out, "App::spaceless version $ver", 'output';
is $err, '', 'error';
};
subtest '-v' => sub {
my($out, $err, $ret) = capture { App::spaceless->main('-v') };
chomp $out;
is $ret, 1, 'exit is 1';
my $ver = $App::spaceless::VERSION // 'dev';
is $out, "App::spaceless version $ver", 'output';
is $err, '', 'error';
};
subtest '-f' => sub {
my $tmp = dir( tempdir( CLEANUP => 1 ));
ok -d $tmp, "dir created";
my $expected;
subtest 'spaceless (no args)' => sub {
my($out, $err, $exit) = capture { App::spaceless->main };
is $exit, 0, 'exit okay';
is $err, '', 'error is empty';
isnt $out, '', 'output is not empty';
$expected = $out;
};
my $file = $tmp->file('foo.txt');
my $actual;
subtest "spaceless -f $file" => sub {
my($out, $err, $exit) = capture { App::spaceless->main(-f => $file->stringify) };
is $exit, 0, 'exit okay';
is $err, '', 'error is empty';
is $out, '', 'output is not empty';
$actual = $file->slurp;
};
is $actual, $expected, 'output matches';
note $actual;
};
subtest 'cmd.exe' => sub {
skip_all 'only on MSWin32 and cygwin' unless $^O =~ /^(MSWin32|cygwin)$/;
my($cmd_exe) = grep { -e $_ } grep !/\s/, map { "$_/cmd$Config{exe_ext}" } @PATH;
skip_all 'unable to find sh' unless defined $cmd_exe;
note 'full path:', $cmd_exe;
my $tmp = dir( tempdir( CLEANUP => 1 ) );
( run in 0.926 second using v1.01-cache-2.11-cpan-524268b4103 )