Files
zonemaster.es/zonemaster-engine/t/pod-coverage.t
Malin 8d4eaa1489 feat: add full Zonemaster stack with Docker and Spanish UI
- Clone all 5 Zonemaster component repos (LDNS, Engine, CLI, Backend, GUI)
- Dockerfile.backend: 8-stage multi-stage build LDNS→Engine→CLI→Backend
- Dockerfile.gui: Astro static build served via nginx
- docker-compose.yml: backend (internal) + frontend (port 5353)
- nginx.conf: root redirects to /es/, /api/ proxied to backend
- zonemaster-gui/config.ts: defaultLanguage set to 'es' (Spanish)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:19:24 +02:00

52 lines
1.0 KiB
Perl

use Test::More;
use 5.14.2;
use strict;
use warnings;
use Zonemaster::Engine;
use File::Find;
eval { require Pod::Coverage };
if ( $@ ) {
plan skip_all => "Need Pod::Coverage to run these tests.";
exit( 0 );
}
my @modules;
find(
sub {
if ( $File::Find::name =~ m|lib/(.*)\.pm| ) {
my $name = $1;
$name =~ s|/|::|g;
push @modules, $name;
}
},
'lib'
);
foreach my $name ( @modules ) {
next if $name =~ q{Zonemaster::Engine::Constants};
my $pc = Pod::Coverage->new( package => $name , private => [ qr/^_/ ] );
if ( defined $pc->coverage ) {
my @uncovered = $pc->uncovered;
if ( @uncovered == 1 and $uncovered[0] eq 'LC_MESSAGES' ) {
next;
}
is( $pc->coverage, 1.0, $name );
if ( $pc->coverage < 1.0 ) {
foreach my $name ( @uncovered ) {
diag "Function '$name' not documented";
}
}
}
else {
diag $pc->why_unrated . ' for ' . $name;
}
}
done_testing;