File: | t/bin-yukki-git-init.t |
Coverage: | 97.5% |
line | stmt | bran | cond | sub | pod | time | code |
---|---|---|---|---|---|---|---|
1 | #!/usr/bin/env perl | ||||||
2 | 1 1 | 1816 3 | use 5.12.1; | ||||
3 | |||||||
4 | 1 1 1 | 378 4959 36 | use Path::Tiny qw( tempdir ); | ||||
5 | 1 1 1 | 3051 23887 3 | use Git::Repository; | ||||
6 | 1 1 1 | 182 64696 4 | use Test2::V0; | ||||
7 | 1 1 1 | 1452 10112 4 | use Test::Script; | ||||
8 | |||||||
9 | 1 | 47337 | plan 12; | ||||
10 | |||||||
11 | 1 | 2410 | script_compiles('bin/yukki-setup', 'yukki-setup compiles'); | ||||
12 | 1 | 335271 | script_compiles('bin/yukki-git-init', 'yukki-git-init compiles'); | ||||
13 | |||||||
14 | 1 | 250491 | my $tempdir = tempdir; | ||||
15 | 1 | 692 | diag("TEMPDIR = $tempdir") if $ENV{YUKKI_TEST_KEEP_FILES}; | ||||
16 | |||||||
17 | 1 | 7 | script_runs([ 'bin/yukki-setup', "$tempdir/yukki-test", 'skel' ], | ||||
18 | 'yukki-setup runs'); | ||||||
19 | |||||||
20 | 1 | 403029 | ok(-d "$tempdir/yukki-test", 'created the test directory'); | ||||
21 | 1 | 196 | ok(!-f "$tempdir/yukki-test/var/db/users/foo", | ||||
22 | 'the user we are about to create does not exist yet'); | ||||||
23 | |||||||
24 | 1 | 283 | $ENV{YUKKI_CONFIG} = "$tempdir/yukki-test/etc/yukki.conf"; | ||||
25 | 1 | 25 | script_runs([ 'bin/yukki-git-init', 'main' ], 'yukki-git-init main ran'); | ||||
26 | |||||||
27 | 1 | 573041 | ok(-d "$tempdir/yukki-test/repositories", 'created the repositories directory'); | ||||
28 | 1 | 197 | ok(-d "$tempdir/yukki-test/repositories/main.git", 'created the main.git repository'); | ||||
29 | |||||||
30 | 1 | 218 | my $git = Git::Repository->new( git_dir => "$tempdir/yukki-test/repositories/main.git" ); | ||||
31 | 1 | 41944 | my $list = $git->run('ls-tree', 'refs/heads/master'); | ||||
32 | |||||||
33 | 1 | 9932 | like($list, qr/\bhome\.yukki\b/, 'created home.yukki'); | ||||
34 | |||||||
35 | 1 | 488 | my $first_comment = $git->run('show', 'refs/heads/master'); | ||||
36 | 1 | 16482 | like($first_comment, qr/Initializing/, 'expected comment'); | ||||
37 | 1 | 460 | like($first_comment, qr{diff --git a/home.yukki b/home.yukki}, 'contains the expected file'); | ||||
38 | 1 | 262 | like($first_comment, qr{\+\# Main}, 'the file has expected heading'); |