#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
BEGIN {
plan skip_all => "JavaScript::V8x::TestMoreish not available" unless eval { require JavaScript::V8x::TestMoreish };
}
plan qw/no_plan/;
use Jemplate;
use Jemplate::Runtime;
use JavaScript::V8x::TestMoreish;
my $jemplate = Jemplate->new;
my @js;
push @js, $jemplate->compile_template_content( <<_END_, 't0' );
[% BLOCK t1 %][% list = [ 1 .. 10 ] %][% list.join(', ') %][% END %]
[% BLOCK t2 %][% FOREACH ii = [ 1 .. 4 ] %][% ii %] [% END %][% END %]
[% BLOCK t3 %][% FOREACH ii = [ -1 .. -4 ] %][% ii %] [% END %][% END %]
[% BLOCK t4 %][% FOREACH ii = [ -4 .. -1 ] %][% ii %] [% END %][% END %]
_END_
eval {
$jemplate->compile_template_content( <<_END_, 't0' );
[% BLOCK t1 %][% broken = [ 1 .. end ] %][% list.join(', ') %][% END %]
_END_
};
like $@, qr{Range expansion is current supported for positive/negative integer values only};
test_js_eval( Jemplate::Runtime->kernel );
test_js_eval( join "\n", @js, "1;" );
test_js <<'_END_';
var result
result = Jemplate.process( 't1', { } )
areEqual( result, "1, 2, 3, 4, 5, 6, 7, 8, 9, 10" );
result = Jemplate.process( 't2', { } )
areEqual( result, "1 2 3 4 " );
result = Jemplate.process( 't3', { } )
areEqual( result, "" );
result = Jemplate.process( 't4', { } )
areEqual( result, "-4 -3 -2 -1 " );
_END_