about summary refs log tree commit homepage
path: root/t
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-10-21 21:10:18 +0000
committerEric Wong <e@80x24.org>2021-10-22 00:54:33 +0000
commit4a07ad8e30be7a965797b3c49425b638b9b83906 (patch)
tree57d4c35341e71c57e8d1852cc19b6c7604fd663b /t
parent49e653848f34a179f38c1738f537f69c1205e92a (diff)
downloadpublic-inbox-4a07ad8e30be7a965797b3c49425b638b9b83906.tar.gz
Maybe these will help track down some failures and make
diagnosing bugs easier.  "lei export-kw" should also become
optional, even, so allow disabling it easily in the test.
Diffstat (limited to 't')
-rw-r--r--t/lei-auto-watch.t3
-rw-r--r--t/lei-export-kw.t39
2 files changed, 30 insertions, 12 deletions
diff --git a/t/lei-auto-watch.t b/t/lei-auto-watch.t
index e5e132eb..d5661ae5 100644
--- a/t/lei-auto-watch.t
+++ b/t/lei-auto-watch.t
@@ -41,7 +41,8 @@ test_lei(sub {
         $ins = json_utf8->decode($lei_out);
         $exp = { "maildir:$x" => [ map { basename($_) } glob("$x/*/*") ],
                 "maildir:$y" => [ map { basename($_) } glob("$y/*/*") ] };
-        is_deeply($ins->{'mail-sync'}, $exp, 'mail_sync matches FS');
+        is_deeply($ins->{'mail-sync'}, $exp, 'mail_sync matches FS') or
+                diag explain($ins);
 });
 
 done_testing;
diff --git a/t/lei-export-kw.t b/t/lei-export-kw.t
index 1fe940bb..55730e87 100644
--- a/t/lei-export-kw.t
+++ b/t/lei-export-kw.t
@@ -7,28 +7,45 @@ use File::Path qw(make_path);
 require_mods(qw(lei -imapd Mail::IMAPClient));
 my ($tmpdir, $for_destroy) = tmpdir;
 my $expect = eml_load('t/data/0001.patch');
+my $do_export_kw = 1;
+my $wait_for = sub {
+        my ($f) = @_;
+        lei_ok qw(export-kw --all=local) if $do_export_kw;
+        my $x = $f;
+        $x =~ s!\Q$tmpdir\E/!\$TMPDIR/!;
+        for (0..10) {
+                last if -f $f;
+                diag "tick #$_ $x";
+                tick(0.1);
+        }
+        ok(-f $f, "$x exists") or xbail;
+};
+
 test_lei({ tmpdir => $tmpdir }, sub {
         my $home = $ENV{HOME};
         my $md = "$home/md";
+        my $f;
         make_path("$md/new", "$md/cur", "$md/tmp");
         cp('t/data/0001.patch', "$md/new/y") or xbail "cp $md $!";
         cp('t/data/message_embed.eml', "$md/cur/x:2,S") or xbail "cp $md $!";
-        lei_ok qw(index -q), $md;
+        lei_ok qw(index), $md;
         lei_ok qw(tag t/data/0001.patch +kw:seen);
-        lei_ok qw(export-kw --all=local);
-        ok(!-e "$md/new/y", 'original gone');
-        is_deeply(eml_load("$md/cur/y:2,S"), $expect,
-                "`seen' kw exported");
+        $wait_for->($f = "$md/cur/y:2,S");
+        ok(!-e "$md/new/y", 'original gone') or
+                diag explain([glob("$md/*/*")]);
+        is_deeply(eml_load($f), $expect, "`seen' kw exported");
 
         lei_ok qw(tag t/data/0001.patch +kw:answered);
-        lei_ok qw(export-kw --all=local);
-        ok(!-e "$md/cur/y:2,S", 'seen-only file gone');
-        is_deeply(eml_load("$md/cur/y:2,RS"), $expect, "`R' added");
+        $wait_for->($f = "$md/cur/y:2,RS");
+        ok(!-e "$md/cur/y:2,S", 'seen-only file gone') or
+                diag explain([glob("$md/*/*")]);
+        is_deeply(eml_load($f), $expect, "`R' added");
 
         lei_ok qw(tag t/data/0001.patch -kw:answered -kw:seen);
-        lei_ok qw(export-kw --mode=set --all=local);
-        ok(!-e "$md/cur/y:2,RS", 'seen+answered file gone');
-        is_deeply(eml_load("$md/cur/y:2,"), $expect, 'no keywords left');
+        $wait_for->($f = "$md/cur/y:2,");
+        ok(!-e "$md/cur/y:2,RS", 'seen+answered file gone') or
+                diag explain([glob("$md/*/*")]);
+        is_deeply(eml_load($f), $expect, 'no keywords left');
 });
 
 done_testing;