Group
Extension

App-MechaCPAN/t/27_opts.t

use strict;
use FindBin;
use Test::More;
use Config;
use Cwd qw/cwd/;
use File::Temp qw/tempdir/;

require q[./t/helper.pm];

my $pwd  = cwd;
my $dist = "$FindBin::Bin/../test_dists/FailTests/FailTests-1.0.tar.gz";
my $tmpdir  = tempdir( TEMPLATE => File::Spec->tmpdir . "/mechacpan_t_XXXXXXXX", CLEANUP => 1 );
chdir $tmpdir;

local $SIG{__WARN__} = sub {note shift};

my $dir = cwd;

# --skip-tests(-for)
{
  isnt( App::MechaCPAN::main( 'install', $dist ), 0, "Fail as expected: $dist" );
  is( cwd, $dir, 'Returned to whence it started' );

  is( App::MechaCPAN::main( '--skip-tests', 'install', $dist ), 0, "Skipped tests: $dist" );
  is( cwd, $dir, 'Returned to whence it started' );

  is( App::MechaCPAN::main( '--skip-tests-for', $dist, 'install', $dist ), 0, "Skipped tests for: $dist" );
  is( cwd, $dir, 'Returned to whence it started' );
}

# --no-update
{
  my $dist = 'Test::More';
  local $Module::CoreList::version{$]}{$dist} = 0
    if $] >= 5.028000;
  no strict 'refs';
  no warnings 'redefine';
  my $ran_configure = 0;
  local *App::MechaCPAN::Install::_configure = sub { die $ran_configure = 1 };
  local $@;

  eval { App::MechaCPAN::main( 'install', $dist ) };
  is( $ran_configure, 1, "Did try and install $dist by default" );

  $ran_configure = 0;
  eval { App::MechaCPAN::main( 'install', '--update', $dist ) };
  is( $ran_configure, 1, "Did try and install $dist when asked to" );

  $ran_configure = 0;
  eval { App::MechaCPAN::main( 'install', '--no-update', $dist ) };
  is( $ran_configure, 0, "Didn't try and install $dist when told not to upgrade" );
}

# --smart-tests
{
  my $depdist = "$FindBin::Bin/../test_dists/FailWDeps/FailWDeps-1.0.tar.gz";
  isnt( App::MechaCPAN::main( 'install', $depdist ), 0, "Fail as expected: $depdist" );

  isnt( App::MechaCPAN::main( '--smart-tests', 'install', $depdist ), 0, "Smart tests ran the tests: $dist" );
  is( App::MechaCPAN::main( '--smart-tests', 'install', $dist, $depdist), 0, "Smart tests didn't run the tests: $dist" );

  is( cwd, $dir, 'Returned to whence it started' );
}

chdir $pwd;
done_testing;


Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.