Skip to content

Commit 1f90562

Browse files
include both type and message when inheriting field-level errors (#95)
1 parent 49fe94a commit 1f90562

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

lib/subroutine/op.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def inherit_errors(error_object, prefix: nil)
135135
end
136136

137137
if field_config
138-
errors.add(field_config.field_name, error.message)
138+
errors.add(field_config.field_name, error.type, message: error.message)
139139
else
140140
errors.add(:base, error_object.full_message(field_name, error.message))
141141
end

test/subroutine/base_test.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,15 @@ def test_validation_errors_can_be_inherited_and_transformed
127127
assert_equal ["has gotta be @admin.com"], op.errors[:email]
128128
end
129129

130+
def test_validation_errors_can_be_inherited_with_both_type_and_message
131+
op = ::AdminSignupOp.new(password: "password123")
132+
133+
refute op.submit
134+
135+
assert op.errors.added?(:email, :blank)
136+
assert_equal ["can't be blank"], op.errors[:email]
137+
end
138+
130139
def test_validation_errors_can_be_inherited_and_prefixed
131140
op = PrefixedInputsOp.new(user_email_address: "foo@bar.com")
132141
refute op.submit

0 commit comments

Comments
 (0)