The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
use strict;
use warnings;

use Test::More tests => 9;

use HTML::FormFu;

my $form = HTML::FormFu->new;

$form->element('Text')->name('foo');
$form->element('Text')->name('bar');
$form->element('Text')->name('string');

$form->constraint( 'Number', 'foo', 'bar', 'string' );

$form->process(
    {   foo     => 1,
        bar     => [ 2, 3 ],
        string  => 'yada',
        unknown => 4,
    } );

ok( grep  { $_ eq 'foo' } $form->param );
ok( grep  { $_ eq 'bar' } $form->param );
ok( !grep { $_ eq 'string' } $form->param );
ok( !grep { $_ eq 'unknown' } $form->param );

is( $form->param('foo'), 1, 'foo param' );

my $bar = $form->param('bar');
is( $bar, 2, 'bar param scalar context' );
my @bar = $form->param('bar');
is_deeply( \@bar, [ 2, 3 ], 'bar param list context' );

ok( !$form->param('string'),  'string param not returned' );
ok( !$form->param('unknown'), 'unknown param not returned' );