App-SD

 view release on metacpan or  search on metacpan

t/sd-usage.t  view on Meta::CPAN

        cmd     => [ qw(ticket update -h) ],
        error   => [
            'usage: sd-usage.t ticket update <record-id> --edit [--all-props]',
            '       sd-usage.t ticket update <record-id> -- status=open',
        ],
        comment => 'ticket update usage',
    },
    {
        cmd     => [ qw(help -h) ],
        error   => [ 'usage: sd-usage.t help [<topic>]' ],
        comment => 'help usage',
    },
    {
        cmd     => [ qw(browser -h) ],
        error   => [ 'usage: sd-usage.t browser [--port <number>]' ],
        comment => 'browser usage',
    },
    {
        cmd     => [ qw(init -h) ],
        error   => [ 'usage: sd-usage.t init [--non-interactive]',
            '',
            'Options:',
            "    -n | --non-interactive - Don't prompt to edit settings or specify email",
            '                             address for new database',
        ],
        comment => 'init usage',
    },
    {
        cmd     => [ qw(clone -h) ],
        error   => [ 'usage: sd-usage.t clone --from <url> [--as <alias>] [--non-interactive] | --local',
            '',
            'Options:',
            "    -n | --non-interactive - Don't prompt to specify email address for new",
            '                             database',
            '    --as                   - Save an alias for this source, which can later be',
            '                             used instead of the URL.',
            '    --local                - Probe the local network for mDNS-advertised',
            '                             replicas and list them.',
        ],
        comment => 'clone usage',
    },
    {
        cmd     => [ qw(-h) ],
        error   => [
            'usage: sd-usage.t [cmd]',
            '       sd-usage.t --version | -V',
        ],
        comment => 'no-command usage',
    },
);

my $in_interactive_shell = 0;

for my $item ( @cmds ) {
    my $exp_error
        = defined $item->{error}
        ? (join "\n", @{$item->{error}})
        : '';
    my (undef, $got_error) = run_command( @{$item->{cmd}} );
    {
        local $/ = "";     # chomp paragraph mode
        chomp $got_error;
        chomp $exp_error;
    }
    is( $got_error, $exp_error, $item->{comment} . ' (non-shell)' );
}

$in_interactive_shell = 1;

for my $item ( @cmds ) {
    my $exp_error
        = defined $item->{error}
        ? (join "\n", @{$item->{error}}) . "\n"
        : '';
    # in an interactive shell, usage messages shouldn't be printing a command
    # name
    $exp_error =~ s/sd-usage.t //g;
    my (undef, $got_error) = run_command( @{$item->{cmd}} );
    {
        local $/ = "";     # chomp paragraph mode
        chomp $got_error;
        chomp $exp_error;
    }
    is( $got_error, $exp_error, $item->{comment} . ' (in shell)');
}

no warnings 'redefine';
sub Prophet::CLI::interactive_shell {
    return $in_interactive_shell;
}

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.474 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )