Data-MuForm

 view release on metacpan or  search on metacpan

t/repeatable/list.t  view on Meta::CPAN

    use Moo;
    use Data::MuForm::Meta;
    extends 'Data::MuForm';

    has_field 'name';
    has_field 'tags' => ( type => 'Repeatable' );
    has_field 'tags.contains';

    sub validate_tags_contains {
        my ( $self, $field ) = @_;
        if ( $field->value eq 'busybee' ) {
            $field->add_error('That tag is not allowed');
        }
    }
}

my $form = List::Form->new;
ok( $form, 'form created' );

# check for single empty repeatable
$form->process;

t/repeatable/list.t  view on Meta::CPAN

$fif = {
   'name' => 'joe',
   'tags.0' => 'linux',
   'tags.1' => 'algorithms',
   'tags.2' => 'loops',
};
is_deeply( $form->fif, $fif, 'fif is correct' );

is_deeply( $form->values, $params, 'values are correct' );

$params = { name => 'sally', tags => ['busybee', 'sillysally', 'missymim'] };
$form->process($params);
ok( $form->field('tags.0')->has_errors, 'instance has errors' );
ok( $form->has_errors, 'form has errors' );

done_testing;



( run in 0.232 second using v1.01-cache-2.11-cpan-87723dcf8b7 )