App-Test-Generator
view release on metacpan or search on metacpan
bin/test-generator-index view on Meta::CPAN
position: 'top', // You can also use 'bottom', 'left', or 'right'
labels: {
boxWidth: 12,
padding: 10,
font: {
size: 12,
weight: 'bold'
}
}
}, tooltip: {
callbacks: {
label: function(context) {
const raw = context.raw;
const coverage = raw.y.toFixed(1);
const delta = raw.delta?.toFixed(1) ?? '0.0';
const sign = delta > 0 ? '+' : delta < 0 ? '-' : '±';
// const baseLine = `${raw.label}: ${coverage}% (${sign}${Math.abs(delta)}%)`;
const baseLine = `${coverage}% (${sign}${Math.abs(delta)}%)`;
const commentLine = raw.comment ? raw.comment : null;
return commentLine ? [baseLine, commentLine] : [baseLine];
}
lib/App/Test/Generator/SchemaExtractor.pm view on Meta::CPAN
if(scalar keys %{$schema}) {
foreach my $arg(keys %{$schema}) {
my $field = $schema->{$arg};
if(my $type = $field->{'type'}) {
if($type eq 'ARRAYREF') {
$field->{'type'} = 'arrayref';
} elsif($type eq 'SCALAR') {
$field->{'type'} = 'string';
}
}
delete $field->{'callbacks'};
}
return {
input => $schema,
style => 'hash',
source => 'validator'
}
}
}
}
lib/App/Test/Generator/SchemaExtractor.pm view on Meta::CPAN
foreach my $arg(keys %{$schema}) {
my $field = $schema->{$arg};
if(my $type = $field->{'type'}) {
if($type eq 'ARRAYREF') {
$field->{'type'} = 'arrayref';
} elsif($type eq 'SCALAR') {
$field->{'type'} = 'string';
}
}
delete $field->{'callbacks'};
}
return {
input => $schema,
style => 'hash',
source => 'validator'
}
}
}
}
t/params_validate.t view on Meta::CPAN
},
roles => {
type => ARRAYREF,
optional => 1,
default => [],
},
uppercase => {
type => SCALAR,
optional => 1,
default => 0,
callbacks => {
'is boolean' => sub { $_[0] == 0 || $_[0] == 1 },
},
},
}
);
my $name = $args{username};
$name = uc($name) if $args{uppercase};
return join(':', $name, @{ $args{roles} });
( run in 1.709 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )