From 3c7171cdaf72416a25f005e9537243c707386aa7 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Tue, 20 Feb 2024 17:21:23 +0100 Subject: [PATCH] fix group set_changes --- lib/CPAN/Changes/Group.pm | 8 ++++++-- t/group.t | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/lib/CPAN/Changes/Group.pm b/lib/CPAN/Changes/Group.pm index 4283230..ade2260 100644 --- a/lib/CPAN/Changes/Group.pm +++ b/lib/CPAN/Changes/Group.pm @@ -61,8 +61,12 @@ sub changes { sub set_changes { my ($self, @changes) = @_; - my $entry = $self->_entry->clone(entries => \@changes); - $self->_entry($entry); + $self->clear_changes; + my $entry = $self->_entry; + for my $change (@changes) { + $entry->add_entry($change); + } + return; } sub clear_changes { diff --git a/t/group.t b/t/group.t index 5b38e02..67ec2c9 100644 --- a/t/group.t +++ b/t/group.t @@ -2,6 +2,7 @@ use strict; use warnings; use Test::More; +use CPAN::Changes; use CPAN::Changes::Parser; my $parser = CPAN::Changes::Parser->new; @@ -15,4 +16,20 @@ my $parser = CPAN::Changes::Parser->new; is eval { $groups[0]->name }, '', 'group has empty name'; } +{ + my $changes = CPAN::Changes->new; + $changes->add_release({version => '1.0'}); + my $release = $changes->release('1.0'); + my $entry = $release->add_entry('welp'); + my $sub_entry = $entry->add_entry('welp'); + my ($group) = ($release->group_values); + $group->set_changes( + 'guff', + 'blorf', + ); + + is join(',', map $_->text, @{$entry->entries}), 'guff,blorf', + 'set_changes properly sets entries'; +} + done_testing;