diff --git a/lib/subroutine/op.rb b/lib/subroutine/op.rb index 283fcf4..e5bc738 100644 --- a/lib/subroutine/op.rb +++ b/lib/subroutine/op.rb @@ -135,7 +135,7 @@ def inherit_errors(error_object, prefix: nil) end if field_config - errors.add(field_config.field_name, error.message) + errors.add(field_config.field_name, error.type, message: error.message) else errors.add(:base, error_object.full_message(field_name, error.message)) end diff --git a/test/subroutine/base_test.rb b/test/subroutine/base_test.rb index 6f0e028..fe8abcd 100644 --- a/test/subroutine/base_test.rb +++ b/test/subroutine/base_test.rb @@ -127,6 +127,15 @@ def test_validation_errors_can_be_inherited_and_transformed assert_equal ["has gotta be @admin.com"], op.errors[:email] end + def test_validation_errors_can_be_inherited_with_both_type_and_message + op = ::AdminSignupOp.new(password: "password123") + + refute op.submit + + assert op.errors.added?(:email, :blank) + assert_equal ["can't be blank"], op.errors[:email] + end + def test_validation_errors_can_be_inherited_and_prefixed op = PrefixedInputsOp.new(user_email_address: "foo@bar.com") refute op.submit