Skip to content

Commit

Permalink
do not store value with errors
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Oct 2, 2013
1 parent c05fda7 commit 484cc7f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
10 changes: 5 additions & 5 deletions lib/Mojolicious/Validator/Validation.pm
Expand Up @@ -32,18 +32,18 @@ sub check {
for my $value (ref $input eq 'ARRAY' ? @$input : $input) {
next if $self->$cb($name, $value, @_);
delete $self->output->{$name};
$self->{errors}{$name} = [$check, $value, @_];
$self->{error}{$name} = [$check, @_];
last;
}

return $self;
}

sub error { shift->{errors}{shift()} }
sub error { shift->{error}{shift()} }

sub has_data { !!keys %{shift->input} }

sub has_error { $_[1] ? exists $_[0]{errors}{$_[1]} : !!keys %{$_[0]{errors}} }
sub has_error { $_[1] ? exists $_[0]{error}{$_[1]} : !!keys %{$_[0]{error}} }

sub is_valid { exists $_[0]->output->{$_[1] // $_[0]->topic} }

Expand Down Expand Up @@ -75,7 +75,7 @@ sub param {
sub required {
my ($self, $name) = @_;
$self->optional($name);
$self->{errors}{$name} = ['required'] unless $self->is_valid;
$self->{error}{$name} = ['required'] unless $self->is_valid;
return $self;
}

Expand Down Expand Up @@ -150,7 +150,7 @@ Perform validation check.
Return details about failed validation check.
my ($check, $value, @args) = @{$validation->error('foo')};
my ($check, @args) = @{$validation->error('foo')};
=head2 has_data
Expand Down
14 changes: 7 additions & 7 deletions t/mojolicious/validation_lite_app.t
Expand Up @@ -58,12 +58,12 @@ ok !$validation->optional('baz')->equal_to('does_not_exist')->is_valid,
'not valid';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok $validation->has_error, 'has error';
is_deeply $validation->error('baz'), [qw(equal_to bar does_not_exist)],
is_deeply $validation->error('baz'), [qw(equal_to does_not_exist)],
'right error';
ok !$validation->optional('yada')->equal_to('foo')->is_valid, 'not valid';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok $validation->has_error, 'has error';
is_deeply $validation->error('yada'), [qw(equal_to yada foo)], 'right error';
is_deeply $validation->error('yada'), [qw(equal_to foo)], 'right error';

# In
$validation = $t->app->validation;
Expand All @@ -74,8 +74,7 @@ ok !$validation->has_error, 'no error';
ok !$validation->required('baz')->in(qw(yada whatever))->is_valid, 'not valid';
is_deeply $validation->output, {foo => [qw(bar whatever)]}, 'right result';
ok $validation->has_error, 'has error';
is_deeply $validation->error('baz'), [qw(in ohoh yada whatever)],
'right error';
is_deeply $validation->error('baz'), [qw(in yada whatever)], 'right error';

# Regex
$validation = $t->app->validation;
Expand All @@ -87,7 +86,7 @@ my $re = qr/ar$/;
ok !$validation->required('baz')->regex($re)->is_valid, 'not valid';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok $validation->has_error, 'has error';
is_deeply $validation->error('baz'), [qw(regex yada), $re], 'right error';
is_deeply $validation->error('baz'), ['regex', $re], 'right error';

# Size
$validation = $t->app->validation;
Expand All @@ -98,12 +97,13 @@ ok !$validation->has_error, 'no error';
ok !$validation->required('baz')->size(1, 3)->is_valid, 'not valid';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok $validation->has_error, 'has error';
is_deeply $validation->error('baz'), [qw(size yada 1 3)], 'right error';
is_deeply $validation->error('baz'), [qw(size 1 3)], 'right error';
ok !$validation->required('yada')->size(5, 10)->is_valid, 'not valid';
is $validation->topic, 'yada', 'right topic';
ok $validation->has_error('baz'), 'has error';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok $validation->has_error, 'has error';
is_deeply $validation->error('yada'), [qw(size yada 5 10)], 'right error';
is_deeply $validation->error('yada'), [qw(size 5 10)], 'right error';

# Multiple empty values
$validation = $t->app->validation;
Expand Down

0 comments on commit 484cc7f

Please sign in to comment.