/t/reprender.t

http://github.com/gshank/html-formhandler · Raku · 38 lines · 32 code · 6 blank · 0 comment · 0 complexity · aaf3983218b5cee2b9614ecebfc88cd7 MD5 · raw file

  1. use strict;
  2. use warnings;
  3. use Test::More;
  4. {
  5. package Test::Repeatable::Array;
  6. use HTML::FormHandler::Moose;
  7. extends 'HTML::FormHandler';
  8. has_field 'foo';
  9. has_field 'my_array' => ( type => 'Repeatable', num_when_empty => 2 );
  10. has_field 'my_array.contains' => ( type => 'Text' );
  11. has_field 'my_rep' => ( type => 'Repeatable', 'num_when_empty' => 2 );
  12. has_field 'my_rep.foo';
  13. has_field 'bar';
  14. }
  15. my $form = Test::Repeatable::Array->new;
  16. my $rendered_array = $form->field('my_array')->render;
  17. like( $rendered_array, qr/my_array\.0/, 'renders my_array field' );
  18. my $rendered_rep = $form->field('my_rep')->render;
  19. like( $rendered_rep, qr/my_rep\.0/, 'renders my_rep field' );
  20. $form->process( params => {} );
  21. $rendered_array = $form->field('my_array')->render;
  22. like( $rendered_array, qr/my_array\.0/, 'renders my_array field' );
  23. $rendered_rep = $form->field('my_rep')->render;
  24. like( $rendered_rep, qr/my_rep\.0/, 'renders my_rep field' );
  25. $form->process( params => { foo => 'xxx', bar => 'yyy',
  26. 'my_array.0' => '', 'my_array.1' => '',
  27. 'my_rep.0.foo' => '', 'my_rep.1.foo' => '' } );
  28. $rendered_array = $form->field('my_array')->render;
  29. like( $rendered_array, qr/my_array\.0/, 'renders my_array field' );
  30. $rendered_rep = $form->field('my_rep')->render;
  31. like( $rendered_rep, qr/my_rep\.0/, 'renders my_rep field' );
  32. done_testing;