Brannigan

 view release on metacpan or  search on metacpan

t/05-defaults.t  view on Meta::CPAN

    my $rejects = $b->process('validated_defaults', $params);
    is($rejects, undef, 'Valid defaults pass validation');
    is($params->{status}, 'pending', 'Valid default applied');
    is($params->{count}, 10, 'Valid numeric default applied');
}

# Test that defaults don't apply to required parameters that fail
$b->register_schema('required_no_default', {
    params => {
        name => { required => 1 },
        backup_name => { default => 'unnamed' }
    }
});

{
    my $params = {}; # Missing required name
    my $rejects = $b->process('required_no_default', $params);
    is($rejects, { name => { required => 1 } }, 'Required parameter failure');
    is($params->{backup_name}, 'unnamed', 'Default still applied to non-required params');
}

# Edge case: empty string and zero values should not trigger defaults
$b->register_schema('edge_cases', {
    params => {
        description => { default => 'No description' },
        count => { default => 1, integer => 1 },
        flag => { default => 'true' }
    }
});



( run in 0.348 second using v1.01-cache-2.11-cpan-beeb90c9504 )