about summary refs log tree commit homepage
path: root/xt
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-10-22 08:22:45 +0000
committerEric Wong <e@80x24.org>2021-10-22 19:07:37 +0000
commit96a5e841a169166457d9cf485e27a0d6cbe7ed75 (patch)
tree9b65be674bc25308f97bba782b39050cdf39cdb0 /xt
parent45f87867107724371d80a563099ab93eda1d919b (diff)
downloadpublic-inbox-96a5e841a169166457d9cf485e27a0d6cbe7ed75.tar.gz
In case an IMAP folder is deleted, just set an error and
ignore it rather than creating an empty folder which we
attempt to export keywords to for non-existent messages.
Diffstat (limited to 'xt')
-rw-r--r--xt/net_writer-imap.t15
1 files changed, 13 insertions, 2 deletions
diff --git a/xt/net_writer-imap.t b/xt/net_writer-imap.t
index cb2ea61f..afa4bcc3 100644
--- a/xt/net_writer-imap.t
+++ b/xt/net_writer-imap.t
@@ -83,8 +83,11 @@ my $mics = do {
 };
 my $mic = (values %$mics)[0];
 my $cleanup = PublicInbox::OnDestroy->new($$, sub {
-        my $mic = $nwr->mic_get($uri);
-        $mic->delete($folder) or fail "delete $folder <$folder_uri>: $@";
+        if (defined($folder)) {
+                my $mic = $nwr->mic_get($uri);
+                $mic->delete($folder) or
+                        fail "delete $folder <$folder_uri>: $@";
+        }
         if ($tmpdir && -f "$tmpdir/.gitconfig") {
                 local $ENV{HOME} = $tmpdir;
                 system(qw(git credential-cache exit));
@@ -250,6 +253,14 @@ EOM
         lei_ok qw(q m:testmessage --no-external -o), $folder_url;
         lei_ok qw(up), $folder_url;
         lei_ok qw(up --all=remote);
+        $mic = $nwr->mic_get($uri);
+        $mic->delete($folder) or fail "delete $folder <$folder_uri>: $@";
+        $mic->expunge;
+        undef $mic;
+        undef $folder;
+        ok(!lei(qw(export-kw), $folder_url),
+                'export-kw fails w/ non-existent folder');
+
 });
 
 undef $cleanup; # remove temporary folder