From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use strict;
use Test::More 0.88;
{
package Keywords; # see also Dist::Zilla::Plugin::Keywords ;)
use Moose;
sub mvp_multivalue_args { qw(keywords) }
has keywords => (
is => 'ro', isa => 'ArrayRef[Str]',
lazy => 1,
default => sub { [] },
);
sub metadata
{
my $self = shift;
my $keywords = $self->keywords;
return { @$keywords ? ( keywords => $keywords ) : () };
}
}
{
my $tzil = Builder->from_config(
{ dist_root => 'corpus/dist/DZT' },
{
add_files => {
'source/dist.ini' => simple_ini(
[ '=Keywords' => 'plugin 1' => { keywords => [ qw(foo bar) ] } ],
[ '=Keywords' => 'plugin 2' => { keywords => [ qw(dog cat) ] } ],
),
},
},
);
cmp_deeply(
$tzil->distmeta,
{
abstract => 'Sample DZ Dist',
author => ['E. Xavier Ample <example@example.org>'],
dynamic_config => 0,
generated_by => ignore,
license => [ 'perl_5' ],
'meta-spec' => {
version => 2
},
name => 'DZT-Sample',
release_status => 'stable',
version => '0.001',
keywords => [ qw(foo bar dog cat) ],
x_generated_by_perl => "$^V",
x_spdx_expression => 'Artistic-1.0-Perl OR GPL-1.0-or-later',
},
'metadata is correctly merged together',
);
}
done_testing;