X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Flei.t;h=b10c9b59c72b8e29570b63dbf5853463a2c55cb7;hb=refs%2Fheads%2Fmaster;hp=2bf4b862557dd8ca6d4599b9d81907064cded29c;hpb=f7af186cf033daae8947f3368378e07ee116bb9c;p=public-inbox.git diff --git a/t/lei.t b/t/lei.t index 2bf4b862..a80143ef 100644 --- a/t/lei.t +++ b/t/lei.t @@ -3,11 +3,9 @@ # License: AGPL-3.0+ use strict; use v5.10.1; use PublicInbox::TestCommon; use File::Path qw(rmtree); -use PublicInbox::Spawn qw(which); # this only tests the basic help/config/init/completion bits of lei; # actual functionality is tested in other t/lei-*.t tests -my $curl = which('curl'); my $home; my $home_trash = []; my $cleanup = sub { rmtree([@$home_trash, @_]) }; @@ -93,6 +91,18 @@ my $test_config = sub { 'config set var with -f fails'); like($lei_err, qr/not supported/, 'not supported noted'); ok(!-f "$home/config/f", 'no file created'); + + lei_ok(qw(-c imap.debug config --bool imap.debug)); + is($lei_out, "true\n", "-c sets w/o value"); + lei_ok(qw(-c imap.debug=1 config --bool imap.debug)); + is($lei_out, "true\n", "-c coerces value"); + lei_ok(qw(-c imap.debug=tr00 config imap.debug)); + is($lei_out, "tr00\n", "-c string value passed as-is"); + lei_ok(qw(-c imap.debug=a -c imap.debug=b config --get-all imap.debug)); + is($lei_out, "a\nb\n", '-c and --get-all work together'); + + lei_ok([qw(config -e)], { VISUAL => 'cat', EDITOR => 'cat' }); + is($lei_out, "[a]\n\tb = c\n", '--edit works'); }; my $test_completion = sub { @@ -105,7 +115,7 @@ my $test_completion = sub { %out = map { $_ => 1 } split(/\s+/s, $lei_out); for my $sw (qw(-f --format -o --output --mfolder --augment -a --mua --no-local --local --verbose -v - --save-as --no-remote --remote --torsocks + --save --no-save --no-remote --remote --torsocks --reverse -r )) { ok($out{$sw}, "$sw offered as `lei q' completion"); } @@ -122,8 +132,7 @@ my $test_completion = sub { } lei_ok(qw(_complete lei import)); %out = map { $_ => 1 } split(/\s+/s, $lei_out); - for my $sw (qw(--flags --no-flags --no-kw --kw --no-keywords - --keywords)) { + for my $sw (qw(--no-kw --kw)) { ok($out{$sw}, "$sw offered as `lei import' completion"); } }; @@ -134,9 +143,13 @@ my $test_fail = sub { lei('-C', '/dev/null', 'q', 'whatever'); is($? >> 8, 1, 'chdir at beginning fails to /dev/null'); + lei_ok('q', "foo\n"); + like($lei_err, qr/trailing `\\n' removed/s, "noted `\\n' removal"); + for my $lk (qw(ei inbox)) { my $d = "$home/newline\n$lk"; - mkdir $d; + my $all = $lk eq 'ei' ? 'ALL' : 'all'; + File::Path::mkpath("$d/$all.git/objects"); open my $fh, '>', "$d/$lk.lock" or BAIL_OUT "open $d/$lk.lock"; for my $fl (qw(-I --only)) { ok(!lei('q', $fl, $d, 'whatever'), @@ -145,8 +158,10 @@ my $test_fail = sub { "error noted with q $fl"); } } + lei_ok('sucks', \'yes, but hopefully less every day'); + like($lei_out, qr/loaded features/, 'loaded features shown'); SKIP: { - skip 'no curl', 3 unless which('curl'); + skip 'no curl', 3 unless require_cmd('curl', 1); lei(qw(q --only http://127.0.0.1:99999/bogus/ t:m)); is($? >> 8, 3, 'got curl exit for bogus URL'); lei(qw(q --only http://127.0.0.1:99999/bogus/ t:m -o), "$home/junk"); @@ -166,4 +181,8 @@ test_lei(sub { $test_fail->(); }); +test_lei({ mods => [] }, sub { + lei_ok('sucks', \'no optional modules required'); +}); + done_testing;