]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/watch_maildir.t
watchmaildir: fix check for spam vs ham inbox conflicts
[public-inbox.git] / t / watch_maildir.t
index 5fb908fb619bd6eb64ef58d5e63ecaaac07988e8..33a3458bd4dca7a63dbfc5aa791093f1416f8919 100644 (file)
@@ -2,10 +2,11 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use Test::More;
-use Email::MIME;
+use PublicInbox::Eml;
 use Cwd;
 use PublicInbox::Config;
 use PublicInbox::TestCommon;
+use PublicInbox::Import;
 require_mods(qw(Filesys::Notify::Simple));
 my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/test.git";
@@ -15,7 +16,7 @@ use_ok 'PublicInbox::WatchMaildir';
 use_ok 'PublicInbox::Emergency';
 my $cfgpfx = "publicinbox.test";
 my $addr = 'test-public@example.com';
-is(system(qw(git init -q --bare), $git_dir), 0, 'initialized git dir');
+PublicInbox::Import::init_bare($git_dir);
 
 my $msg = <<EOF;
 From: user\@example.com
@@ -31,6 +32,21 @@ ok(POSIX::mkfifo("$maildir/cur/fifo", 0777),
        'create FIFO to ensure we do not get stuck on it :P');
 my $sem = PublicInbox::Emergency->new($spamdir); # create dirs
 
+{
+       my @w;
+       local $SIG{__WARN__} = sub { push @w, @_ };
+       my $config = PublicInbox::Config->new(\<<EOF);
+$cfgpfx.address=$addr
+$cfgpfx.inboxdir=$git_dir
+$cfgpfx.watch=maildir:$spamdir
+publicinboxlearn.watchspam=maildir:$spamdir
+EOF
+       my $wm = PublicInbox::WatchMaildir->new($config);
+       is(scalar grep(/is a spam folder/, @w), 1, 'got warning about spam');
+       is_deeply($wm->{mdmap}, { "$spamdir/cur" => 'watchspam' },
+               'only got the spam folder to watch');
+}
+
 my $config = PublicInbox::Config->new(\<<EOF);
 $cfgpfx.address=$addr
 $cfgpfx.inboxdir=$git_dir