#! /usr/bin/env perl # -*- perl -*-
my
$q
= Qgoda->new;
my
(
$path
,
$rules
,
$path
,
$expect
,
$got
);
sub
compile_rules($);
$rules
= compile_rules [];
$expect
= {};
$path
=
'about-qgoda/index.md'
;
$got
= collect_defaults
$path
,
$rules
;
is_deeply
$got
,
$expect
,
'empty input'
;
$rules
= compile_rules [
{
files
=>
'index.md'
,
values
=> {
type
=>
'post'
,
view
=>
'post.html'
,
}
},
{
files
=>
'index.html'
,
values
=> {
type
=>
'page'
,
}
}
];
$expect
= {
type
=>
'post'
,
view
=>
'post.html'
,
};
$path
=
'about-qgoda/index.md'
;
$got
= collect_defaults
$path
,
$rules
;
is_deeply
$got
,
$expect
,
'empty input'
;
my
$original_rules
= [
{
files
=>
'index.md'
,
values
=> {
type
=>
'post'
,
view
=>
'post.html'
,
deeply
=> {
nested
=>
'original'
}
}
},
];
$rules
= compile_rules
$original_rules
;
$original_rules
->[0]->{
values
}->{deeply}->{nested} =>
'gotcha'
;
$expect
= {
type
=>
'post'
,
view
=>
'post.html'
,
deeply
=> {
nested
=>
'original'
}
};
$got
= collect_defaults
$path
,
$rules
;
is_deeply
$got
,
$expect
,
'deep copy'
;
done_testing();
sub
compile_rules($) {
my
$defaults
=
shift
;
$q
->config->__compileDefaults(
$defaults
);
}