Open-This

 view release on metacpan or  search on metacpan

t/open-this.t  view on Meta::CPAN

use strict;
use warnings;

use Open::This  qw( editor_args_from_parsed_text parse_text to_editor_args );
use Path::Tiny  qw( path );
use Test::Fatal qw( exception );
use Test::More import => [qw( done_testing is like ok )];
use Test::Differences qw( eq_or_diff );
use Test::Warnings    qw( warnings );

{
    local $ENV{EDITOR} = q{};
    like(
        exception { editor_args_from_parsed_text('slow-horses.txt') },
        qr/\$EDITOR has not been set/,
        'dies when $EDITOR is not defined'
    );
}

# This gets really noisy on Travis if $ENV{EDITOR} is not set
local $ENV{EDITOR} = 'vim';

{
    my $text        = 'lib/Foo/Bar.pm line 222.';
    my $line_number = Open::This::_maybe_extract_line_number( \$text );
    is( $line_number, 222,              'line_number' );
    is( $text,        'lib/Foo/Bar.pm', 'line number stripped' );
}

{
    my $text        = 'lib/Open/This.pm:17';
    my $line_number = Open::This::_maybe_extract_line_number( \$text );
    is( $line_number, 17,                 'git-grep line_number' );
    is( $text,        'lib/Open/This.pm', 'git-grep line number stripped' );
}

{
    my $text        = 'lib/Open/This.pm#L17';
    my $line_number = Open::This::_maybe_extract_line_number( \$text );
    is( $line_number, 17,                 'GitHub line_number' );
    is( $text,        'lib/Open/This.pm', 'GitHub line number stripped' );
}

{
    my $text        = 'lib/Open/This.pm#L17-L18';
    my $line_number = Open::This::_maybe_extract_line_number( \$text );
    is( $line_number, 17,                 'GitHub line range' );
    is( $text,        'lib/Open/This.pm', 'GitHub line range stripped' );
}

{
    my $text        = 'lib/Open/This.pm-17-';
    my $line_number = Open::This::_maybe_extract_line_number( \$text );
    is( $line_number, 17,          'git-grep context line_number' );
    is( $text, 'lib/Open/This.pm', 'git-grep context line number stripped' );
}

{
    my $text = './lib/Open/This.pm:17:3';
    my ( $line_number, $column_number )
        = Open::This::_maybe_extract_line_number( \$text );
    is( $line_number,   17, 'ripgrep line_number' );
    is( $column_number, 3,  'ripgrep column_number' );
    is(
        $text, './lib/Open/This.pm',
        'ripgrep context line number and column number stripped'
    );
}



( run in 1.940 second using v1.01-cache-2.11-cpan-5837b0d9d2c )