App-Yath-Script
view release on metacpan or search on metacpan
t/unit/Script.t view on Meta::CPAN
$ENV{T2_HARNESS_INCLUDES} = '/fake/path1;/fake/path2';
App::Yath::Script::inject_includes();
is(\@INC, ['/fake/path1', '/fake/path2'], 'replaces @INC from env var');
# Restore
@INC = @orig_inc;
};
subtest 'parse_new_dev_libs' => sub {
# No -D args, should return 0
local @ARGV = ('test', '--verbose');
is(App::Yath::Script::parse_new_dev_libs(), 0, 'returns 0 with no -D args');
# Stops at --
local @ARGV = ('--', '-D');
is(App::Yath::Script::parse_new_dev_libs(), 0, 'stops at --');
# Stops at ::
local @ARGV = ('::', '-D');
is(App::Yath::Script::parse_new_dev_libs(), 0, 'stops at ::');
};
subtest '_collect_dev_libs' => sub {
is([App::Yath::Script::_collect_dev_libs()], [], 'empty input -> empty list');
is(
[App::Yath::Script::_collect_dev_libs('test', '--verbose', 'foo')],
[],
'no -D tokens -> empty list',
t/unit/Script/V0.t view on Meta::CPAN
use strict;
use warnings;
use Test2::V0;
use App::Yath::Script::V0;
subtest 'do_begin parses --begin args' => sub {
local @ARGV;
my $output = '';
{
local *STDOUT;
open(STDOUT, '>', \$output) or die "Cannot redirect STDOUT: $!";
App::Yath::Script::V0->do_begin(
argv => ['--begin', 'hello', '--begin', 'world', 'foo', 'bar'],
script => $0,
config => undef,
user_config => undef,
);
}
is($output, "BEGIN: hello\nBEGIN: world\n", 'prints BEGIN args during do_begin');
is(\@ARGV, ['foo', 'bar'], 'non-option args placed back in @ARGV');
};
subtest 'do_runtime echoes remaining args' => sub {
local @ARGV = ('baz', 'qux');
my $output = '';
my $exit;
{
local *STDOUT;
open(STDOUT, '>', \$output) or die "Cannot redirect STDOUT: $!";
$exit = App::Yath::Script::V0->do_runtime();
}
is($output, "RUNTIME: baz\nRUNTIME: qux\n", 'prints RUNTIME args');
is($exit, 0, 'returns 0');
};
subtest 'do_begin with no --begin args' => sub {
local @ARGV;
my $output = '';
{
local *STDOUT;
open(STDOUT, '>', \$output) or die "Cannot redirect STDOUT: $!";
App::Yath::Script::V0->do_begin(
argv => ['foo', 'bar'],
script => $0,
config => undef,
user_config => undef,
);
}
is($output, '', 'no BEGIN output when no --begin args');
is(\@ARGV, ['foo', 'bar'], 'all args are non-option');
};
subtest 'do_runtime with empty @ARGV' => sub {
local @ARGV;
my $output = '';
my $exit;
{
local *STDOUT;
open(STDOUT, '>', \$output) or die "Cannot redirect STDOUT: $!";
$exit = App::Yath::Script::V0->do_runtime();
}
is($output, '', 'no output with empty @ARGV');
is($exit, 0, 'returns 0');
( run in 0.834 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )