]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/init.t
init+convert: create non-existing directory hierarchies
[public-inbox.git] / t / init.t
index 4d2c50496fc92b15bdf7b95521c77d0c58d10905..dba59231c71ed245b7dde33bc523f1aac377f721 100644 (file)
--- a/t/init.t
+++ b/t/init.t
@@ -59,6 +59,18 @@ sub quiet_fail {
        like($err, qr/`\\n' not allowed in `/s, 'reported \\n');
        is_deeply([glob("$tmpdir/.public-inbox/pi-init-*")], [],
                'no junk files left behind');
+
+       # "git init" does this, too
+       $cmd = [ '-init', 'deep-non-existent', "$tmpdir/a/b/c/d",
+                  qw(http://example.com/abcd abcd@example.com) ];
+       $err = '';
+       ok(run_script($cmd, $env, $rdr), 'initializes non-existent hierarchy');
+       ok(-d "$tmpdir/a/b/c/d", 'directory created');
+       open my $fh, '>', "$tmpdir/d" or BAIL_OUT "open: $!";
+       close $fh;
+       $cmd = [ '-init', 'd-f-conflict', "$tmpdir/d/f/conflict",
+                  qw(http://example.com/conflict onflict@example.com) ];
+       ok(!run_script($cmd, $env, $rdr), 'fails on D/F conflict');
 }
 
 SKIP: {
@@ -95,6 +107,20 @@ SKIP: {
                my $ibx = PublicInbox::Inbox->new({ inboxdir => $dir });
                is(PublicInbox::Admin::detect_indexlevel($ibx), $lvl,
                        'detected expected level w/o config');
+               ok(!$ibx->{-skip_docdata}, 'docdata written by default');
+       }
+       for my $v (1, 2) {
+               my $name = "v$v-skip-docdata";
+               my $dir = "$tmpdir/$name";
+               $cmd = [ '-init', $name, "-V$v", '--skip-docdata',
+                       $dir, "http://example.com/$name",
+                       "$name\@example.com" ];
+               ok(run_script($cmd), "-init -V$v --skip-docdata");
+               my $ibx = PublicInbox::Inbox->new({ inboxdir => $dir });
+               is(PublicInbox::Admin::detect_indexlevel($ibx), 'full',
+                       "detected default indexlevel -V$v");
+               ok($ibx->{-skip_docdata}, "docdata skip set -V$v");
+               ok($ibx->search->has_threadid, 'has_threadid flag set on new inbox');
        }
 
        # loop for idempotency