my
$generated_by
=
'Dist::Zilla::Tester version '
. (Builder->VERSION ||
'(undef)'
);
my
$converted_by
=
"CPAN::Meta::Converter version "
. CPAN::Meta::Converter->VERSION;
my
$generated_by_re
=
qr/\A\Q$generated_by\E(?:, \Q$converted_by\E)?\z/
;
my
$serialization_yaml
=
'YAML::Tiny version '
. YAML::Tiny->VERSION;
my
$json_backend
= JSON::MaybeXS::JSON();
my
$serialization_json
=
$json_backend
.
' version '
.
$json_backend
->VERSION;
{
my
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/DZT'
},
{
add_files
=> {
'source/dist.ini'
=> simple_ini(
[
'MetaResources'
=> {
},
],
[
'MetaYAML'
],
[
'MetaJSON'
],
),
},
},
);
eval
{
$tzil
->build };
ok(!$@,
'no errors from old-style bugtracker and repository for MetaResources'
);
is_yaml(
$tzil
->slurp_file(
'build/META.yml'
),
{
abstract
=>
'Sample DZ Dist'
,
author
=> [
'E. Xavier Ample <example@example.org>'
],
build_requires
=> {},
dynamic_config
=> 0,
generated_by
=> re(
$generated_by_re
),
license
=>
'perl'
,
'meta-spec'
=> {
version
=>
'1.4'
},
name
=>
'DZT-Sample'
,
resources
=> {
},
version
=>
'0.001'
,
x_generated_by_perl
=>
"$^V"
,
x_serialization_backend
=>
$serialization_yaml
,
x_spdx_expression
=>
'Artistic-1.0-Perl OR GPL-1.0-or-later'
,
},
'META.yml matches expected 1.4 spec output'
);
is_json(
$tzil
->slurp_file(
'build/META.json'
),
{
abstract
=>
'Sample DZ Dist'
,
author
=> [
'E. Xavier Ample <example@example.org>'
],
dynamic_config
=> 0,
generated_by
=> re(
$generated_by_re
),
license
=> [
'perl_5'
],
'meta-spec'
=> {
url
=> re(
qr/^http.*CPAN::Meta::Spec$/
),
version
=> 2
},
name
=>
'DZT-Sample'
,
prereqs
=> {},
release_status
=>
'stable'
,
resources
=> {
},
version
=>
'0.001'
,
x_generated_by_perl
=>
"$^V"
,
x_serialization_backend
=>
$serialization_json
,
x_spdx_expression
=>
'Artistic-1.0-Perl OR GPL-1.0-or-later'
,
},
'META.json was 2.0 output, old-style resources were upgraded'
);
}
{
my
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/DZT'
},
{
add_files
=> {
'source/dist.ini'
=> simple_ini(
[
'MetaResources'
=> {
'bugtracker.mailto'
=>
'project@bugs.example.com'
,
'repository.type'
=>
'git'
,
},
],
[
'MetaYAML'
],
[
'MetaJSON'
],
),
},
},
);
eval
{
$tzil
->build };
ok(!$@,
'no errors from new-style bugtracker and repository for MetaResources'
);
is_yaml(
$tzil
->slurp_file(
'build/META.yml'
),
{
abstract
=>
'Sample DZ Dist'
,
author
=> [
'E. Xavier Ample <example@example.org>'
],
build_requires
=> {},
dynamic_config
=> 0,
generated_by
=> re(
$generated_by_re
),
license
=>
'perl'
,
'meta-spec'
=> {
version
=>
'1.4'
},
name
=>
'DZT-Sample'
,
resources
=> {
},
version
=>
'0.001'
,
x_generated_by_perl
=>
"$^V"
,
x_serialization_backend
=>
$serialization_yaml
,
x_spdx_expression
=>
'Artistic-1.0-Perl OR GPL-1.0-or-later'
,
},
'META.yml matches expected 1.4 spec output, new style resources were down-graded'
);
is_json(
$tzil
->slurp_file(
'build/META.json'
),
{
abstract
=>
'Sample DZ Dist'
,
author
=> [
'E. Xavier Ample <example@example.org>'
],
dynamic_config
=> 0,
generated_by
=> re(
$generated_by_re
),
license
=> [
'perl_5'
],
'meta-spec'
=> {
url
=> re(
qr/^http.*CPAN::Meta::Spec$/
),
version
=> 2
},
name
=>
'DZT-Sample'
,
prereqs
=> {},
release_status
=>
'stable'
,
resources
=> {
bugtracker
=> {
mailto
=>
'project@bugs.example.com'
,
},
repository
=> {
type
=>
'git'
,
}
},
version
=>
'0.001'
,
x_generated_by_perl
=>
"$^V"
,
x_serialization_backend
=>
$serialization_json
,
x_spdx_expression
=>
'Artistic-1.0-Perl OR GPL-1.0-or-later'
,
},
'META.json was 2.0 output'
);
}
done_testing;