The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 4;

use Text::Caml;

use Cwd ();
use File::Basename ();
use File::Spec     ();

my $renderer = Text::Caml->new;
my $templates_path =
  File::Spec->catfile(File::Basename::dirname(__FILE__), 'templates');

my $output =
  $renderer->render_file(File::Spec->catfile($templates_path, 'partial'));
is $output, 'Hello from partial!', "partial rendered from relative path ($templates_path)";

$renderer = Text::Caml->new;
$templates_path = Cwd::abs_path($templates_path);

$output =
  $renderer->render_file(File::Spec->catfile($templates_path, 'partial'));
is $output, 'Hello from partial!', "partial rendered from full path ($templates_path)";

$renderer = Text::Caml->new(templates_path => $templates_path);

$output = $renderer->render_file('partial');
is $output, 'Hello from partial!', "partial rendered from renderer path ($templates_path)";

eval { $output = $renderer->render_file('no_such_file') };
ok $@, 'exception thrown on non-existent partial file';