The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -w

use strict;
use Test::More;

use Text::Xslate;
use File::Copy qw(copy move);
use File::Path qw(rmtree);

use t::lib::Util;

my $base    = path . "/myapp/base.tx";
my $derived = path . "/myapp/derived.tx";
rmtree cache_dir;
END{
    move "$base.save" => $base if -e "$base.save";

    rmtree cache_dir;
}

note 'for files';

utime $^T - 120, $^T - 120, $base, $derived;

my $tx = Text::Xslate->new(path => [path], cache_dir => cache_dir);

#use Data::Dumper; print Dumper $tx;

is $tx->render('myapp/derived.tx', {lang => 'Xslate'}), <<'T', 'original' for 1 .. 2;
HEAD
    D-BEFORE
    Hello, Xslate world!
    D-AFTER
FOOT
T

move $base => "$base.save";
copy "$base.mod" => $base;

utime $^T+60, $^T+60, $base;
note "modify $base";

is $tx->render('myapp/derived.tx', {lang => 'Foo'}), <<'T', 'modified' for 1 .. 2;
HEAD
    D-BEFORE
    Modified version of base.tx
    D-AFTER
FOOT
T

move "$base.save" => $base;
utime $^T+120, $^T+120, $base;
note "modify $base again";

is $tx->render('myapp/derived.tx', {lang => 'Perl'}), <<'T', 'again' for 1 .. 2;
HEAD
    D-BEFORE
    Hello, Perl world!
    D-AFTER
FOOT
T

done_testing;