1use strict;
2use warnings;
3
4use Test::More tests => 4;
5
6use HTML::FormFu;
7use lib 't/lib';
8use HTMLFormFu::TestLib;
9
10my $form = HTML::FormFu->new;
11
12$form->load_config_file('t/constraints/required_only_on_reps.yml');
13
14# Valid
15{
16    $form->process(
17        {   foo_1 => 'a',
18            bar_1 => '',
19            buz_1 => 'g',
20            moo_1 => 'j',
21            foo_2 => '',
22            bar_2 => 'e',
23            buz_2 => '',
24            moo_2 => 'k',
25            foo_3 => '',
26            bar_3 => '',
27            buz_3 => 'i',
28            moo_3 => 'l',
29            count => 3,
30        } );
31
32    ok( $form->submitted_and_valid );
33}
34
35# Valid
36{
37    $form->process(
38        {   foo_1 => 'a',
39            bar_1 => 'd',
40            buz_1 => 'g',
41            moo_1 => 'j',
42            foo_2 => 'b',
43            bar_2 => 'e',
44            buz_2 => 'h',
45            moo_2 => 'k',
46            foo_3 => 'c',
47            bar_3 => 'f',
48            buz_3 => 'i',
49            moo_3 => 'l',
50            count => 3,
51        } );
52
53    ok( $form->submitted_and_valid );
54}
55
56# Missing - Invalid
57{
58    $form->process(
59        {   foo_1 => '',
60            bar_1 => '',
61            buz_1 => '',
62            moo_1 => '',
63            foo_2 => '',
64            bar_2 => '',
65            buz_2 => '',
66            moo_2 => 'k',
67            foo_3 => '',
68            bar_3 => '',
69            buz_3 => 'i',
70            moo_3 => '',
71            count => 3,
72        } );
73
74    ok( !$form->submitted_and_valid );
75
76    is_deeply(
77        [ $form->has_errors ],
78        [   qw/
79                foo_1
80                buz_1
81                moo_1
82                bar_2
83                moo_3
84                /
85        ] );
86}
87