diff options
author | Eric Wong <e@80x24.org> | 2021-01-27 03:42:27 -0600 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-01-29 05:04:40 +0000 |
commit | cf850cf6efac835445949b28ee0346f1dc34f8bd (patch) | |
tree | 7511ddf92b90e43135b9cfafef96497cc0f28a10 /t/lei.t | |
parent | 07225b371bb3258766e135d099588d603506f788 (diff) | |
download | public-inbox-cf850cf6efac835445949b28ee0346f1dc34f8bd.tar.gz |
And add tests for existing completion cases
Diffstat (limited to 't/lei.t')
-rw-r--r-- | t/lei.t | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -216,6 +216,24 @@ my $test_external = sub { like($out, qr/boost=0\n/s, 'ls-external has output'); ok($lei->(qw(add-external -q https://EXAMPLE.com/ibx)), 'add remote'); is($err, '', 'no warnings after add-external'); + + ok($lei->(qw(_complete lei forget-external)), 'complete for externals'); + my %comp = map { $_ => 1 } split(/\s+/, $out); + ok($comp{'https://example.com/ibx/'}, 'forget external completion'); + $cfg->each_inbox(sub { + my ($ibx) = @_; + ok($comp{$ibx->{inboxdir}}, "local $ibx->{name} completion"); + }); + for my $u (qw(h http https https: https:/ https:// https://e + https://example https://example. https://example.co + https://example.com https://example.com/ + https://example.com/i https://example.com/ibx)) { + ok($lei->(qw(_complete lei forget-external), $u), + "partial completion for URL $u"); + is($out, "https://example.com/ibx/\n", + "completed partial URL $u"); + } + $lei->('ls-external'); like($out, qr!https://example\.com/ibx/!s, 'added canonical URL'); is($err, '', 'no warnings on ls-external'); @@ -304,11 +322,39 @@ my $test_external = sub { } }; +my $test_completion = sub { + ok($lei->(qw(_complete lei)), 'no errors on complete'); + my %out = map { $_ => 1 } split(/\s+/s, $out); + ok($out{'q'}, "`lei q' offered as completion"); + ok($out{'add-external'}, "`lei add-external' offered as completion"); + + ok($lei->(qw(_complete lei q)), 'complete q (no args)'); + %out = map { $_ => 1 } split(/\s+/s, $out); + for my $sw (qw(-f --format -o --output --mfolder --augment -a + --mua --mua-cmd --no-local --local --verbose -v + --save-as --no-remote --remote --torsocks + --reverse -r )) { + ok($out{$sw}, "$sw offered as completion"); + } + + ok($lei->(qw(_complete lei q --form)), 'complete q --format'); + is($out, "--format\n", 'complete lei q --format'); + for my $sw (qw(-f --format)) { + ok($lei->(qw(_complete lei q), $sw), "complete q $sw ARG"); + %out = map { $_ => 1 } split(/\s+/s, $out); + for my $f (qw(mboxrd mboxcl2 mboxcl mboxo json jsonl + concatjson maildir)) { + ok($out{$f}, "got $sw $f as output format"); + } + } +}; + my $test_lei_common = sub { $test_help->(); $test_config->(); $test_init->(); $test_external->(); + $test_completion->(); }; if ($ENV{TEST_LEI_ONESHOT}) { |