#!perl use strict; use warnings; use Test::More; use Pinto::Globals; use lib 't/lib'; use Pinto::Tester; use Pinto::Tester::Util qw(make_dist_archive); #------------------------------------------------------------------------------ my $t = Pinto::Tester->new; $Pinto::Globals::current_utc_time = 0; # Freeze time to begining of epoch $Pinto::Globals::current_time_offset = 0; # Freeze local timezone to UTC $t->run_ok( Add => { stack => 'master', archives => make_dist_archive("ME/Foo-0.01 = Foo~0.01") } ); $t->run_ok( Copy => { stack => 'master', to_stack => 'branch' } ); $t->run_ok( Add => { stack => 'branch', archives => make_dist_archive("ME/Bar-0.02 = Bar~0.02") } ); #------------------------------------------------------------------------------ subtest 'log master' => sub { my $stack = 'master'; $t->run_ok( Log => { stack => $stack } ); my $msgs = () = ${ $t->outstr } =~ m/revision [0-9a-f\-]{36}/g; is $msgs, 1, "Stack $stack has correct message count"; $t->stdout_like( qr/Foo-0.01.tar.gz/, 'Log message has Foo archive' ); # TODO: Consider adding hook to set username on the Tester; $t->stdout_like( qr/User: USERNAME/, 'Log message has correct user' ); # This test might not be portable, based on locale settings: $t->stdout_like( qr/Date: Jan 1, 1970/, 'Log message has correct date' ); }; #------------------------------------------------------------------------------ subtest 'log branch' => sub { my $stack = 'branch'; $t->run_ok( Log => { stack => $stack } ); my $msgs = () = ${ $t->outstr } =~ m/revision [0-9a-f\-]{36}/g; is $msgs, 2, "Stack $stack has correct message count"; $t->stdout_like( qr/Foo-0.01.tar.gz/, 'Log messages have Foo archive' ); $t->stdout_like( qr/Bar-0.02.tar.gz/, 'Log messages have Bar archive' ); }; #----------------------------------------------------------------------------- done_testing;