#!perl
use strict;
use warnings;
# This test was generated by inc::CheckJiraInChanges
use Test::More tests => 1;
my @commits = split /\n/, <<'EOC';
133721b (HEAD -> maint-v1.4, xdg/maint-v1.4, origin/maint-v1.4, dagolden/maint-v1.4) PERL-652 Fix legacy update for empty document
EOC
my %ticket_map;
for my $commit ( @commits ) {
for my $ticket ( $commit =~ /PERL-(\d+)/g ) {
next if $ENV{CHECK_JIRA_SKIP}
&& grep { $ticket eq $_ } split " ", $ENV{CHECK_JIRA_SKIP};
$ticket_map{$ticket} ||= [];
push @{$ticket_map{$ticket}}, $commit;
}
}
# grab Changes lines from new version to next un-indented line
open my $fh, "<:encoding(UTF-8)", "Changes";
my $changelog = do { local $/; <$fh> };
my @bad;
for my $ticket ( keys %ticket_map ) {
if ( index( $changelog, "PERL-$ticket" ) < 0 ) {
push @bad, $ticket;
}
}
if ( !@commits ) {
pass("No commits with Jira tickets");
}
else {
ok( ! scalar @bad, "Jira tickets in Changes")
or diag "Jira tickets missing:\n"
. join("\n", map { " * $_" } map { @{$ticket_map{$_}} } sort { $a <=> $b } @bad );
}