diff --git a/t/000-tear-env.t b/t/000-tear-env.t new file mode 100644 index 0000000000000000000000000000000000000000..afe261a8a5ba3f10ec45a2f6b15d711743132ec9 --- /dev/null +++ b/t/000-tear-env.t @@ -0,0 +1,17 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Shell::Command; +use Test::Most; + +chdir 't' or die $!; + +if (!-d 'etc') { + plan skip_all => 'No need to tear previous env.'; +} + +ok rm_rf 'etc'; + +done_testing; diff --git a/t/001-setup-env.t b/t/001-setup-env.t new file mode 100644 index 0000000000000000000000000000000000000000..fb59f058e3f04826ced8230617f2e6e818f18ae3 --- /dev/null +++ b/t/001-setup-env.t @@ -0,0 +1,19 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Test::Most; + +system ("mkdir -p t/etc"); +ok !$?; + +system ("mkdir -p t/etc/.vcsh_home"); +ok !$?; + +chdir 't/etc/' or die $!; + +system ("ln -s '../../vcsh'"); +ok !$?; + +done_testing; diff --git a/t/100-init.t b/t/100-init.t new file mode 100644 index 0000000000000000000000000000000000000000..b72686841e2ab3668a0d8f5be195947c831ad84a --- /dev/null +++ b/t/100-init.t @@ -0,0 +1,54 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Cwd 'abs_path'; +use Test::Most; + +chdir 't/etc/' or die $!; + +$ENV{'HOME'} = abs_path ('.vcsh_home'); + +my $output = `./vcsh status`; + +ok $output eq "", 'No repos set up yet.'; + +$output = `./vcsh init test1`; + +ok $output eq "Initialized empty Git repository in " . $ENV{'HOME'} . "/.config/vcsh/repo.d/test1.git/\n"; + +$output = `./vcsh status`; + +ok $output eq "test1:\n\n", 'Our new repo is there'; + +chdir $ENV{"HOME"} . '/.config/vcsh/repo.d/test1.git/' or die $!; + +ok -f 'HEAD'; +ok -d 'branches'; +ok -f 'config'; +ok -f 'description'; +ok -d 'hooks'; +ok -d 'info'; +ok -d 'objects'; +ok -d 'refs'; + +ok -f 'hooks/applypatch-msg.sample'; +ok -f 'hooks/commit-msg.sample'; +ok -f 'hooks/post-update.sample'; +ok -f 'hooks/pre-applypatch.sample'; +ok -f 'hooks/pre-commit.sample'; +ok -f 'hooks/pre-push.sample'; +ok -f 'hooks/pre-rebase.sample'; +ok -f 'hooks/prepare-commit-msg.sample'; +ok -f 'hooks/update.sample'; + +ok -f 'info/exclude'; + +ok -d 'objects/info'; +ok -d 'objects/pack'; + +ok -d 'refs/heads'; +ok -d 'refs/tags'; + +done_testing; diff --git a/t/200-delete.t b/t/200-delete.t new file mode 100644 index 0000000000000000000000000000000000000000..cd078714ad0c3c7396bc88c89966dd32f7ee0ed7 --- /dev/null +++ b/t/200-delete.t @@ -0,0 +1,19 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Cwd 'abs_path'; +use Test::Most; + +chdir 't/etc/' or die $!; + +$ENV{'HOME'} = abs_path ('.vcsh_home'); + +system ("echo 'Yes, do as I say' | ./vcsh delete test1"); + +my $output = `./vcsh status`; + +ok $output eq "", 'No repos set up anymore.'; + +done_testing; diff --git a/t/999-tear-env.t b/t/999-tear-env.t new file mode 100644 index 0000000000000000000000000000000000000000..afe261a8a5ba3f10ec45a2f6b15d711743132ec9 --- /dev/null +++ b/t/999-tear-env.t @@ -0,0 +1,17 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Shell::Command; +use Test::Most; + +chdir 't' or die $!; + +if (!-d 'etc') { + plan skip_all => 'No need to tear previous env.'; +} + +ok rm_rf 'etc'; + +done_testing;