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 )