]> Dogcows Code - chaz/git-codeowners/blobdiff - t/app-codeowners.t
require Path::Tiny 0.089 (for spewing arrayrefs)
[chaz/git-codeowners] / t / app-codeowners.t
index 28309d3861ca0b802cf938133128494302850377..b5e430e3177919d6a38517d278cea564623372fd 100644 (file)
@@ -9,13 +9,13 @@ use App::Codeowners::Util qw(run_git);
 use App::Codeowners;
 use Capture::Tiny qw(capture);
 use File::pushd;
-use Path::Tiny qw(path tempdir);
+use Path::Tiny 0.089 qw(path tempdir);
 use Test::More;
 
 my $can_git = _can_git();
 
-# Set progname so that pod2usage knows how to find the script after we chdir
-$0 = path($Bin)->parent->child('bin/git-codeowners')->absolute;
+# Set progname so that pod2usage knows how to find the script after we chdir.
+$0 = path($Bin)->parent->child('bin/git-codeowners')->absolute->stringify;
 
 $ENV{NO_COLOR} = 1;
 
@@ -72,6 +72,25 @@ END
     };
 };
 
+subtest 'create' => sub {
+    plan skip_all => 'Cannot run git' if !$can_git;
+
+    my $repodir = _setup_git_repo();
+    my $chdir   = pushd($repodir);
+
+    my $codeowners_filepath = path('CODEOWNERS');
+    $codeowners_filepath->remove;
+
+    my ($stdout, $stderr, $exit) = run { App::Codeowners->main(qw{create}) };
+    is($exit, 0, 'exited without error');
+    is($stderr, "Wrote CODEOWNERS\n", 'reportedly wrote a CODEOWNERS file');
+
+    ok($codeowners_filepath->is_file, 'did write CODEOWNERS file');
+
+    my $contents = $codeowners_filepath->slurp_utf8;
+    like($contents, qr/^# This file shows mappings/, 'correct contents of file') or diag $contents;
+};
+
 done_testing;
 exit;
 
This page took 0.020808 seconds and 4 git commands to generate.