aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
diff options
context:
space:
mode:
authorlulalala <mark@goodlife.tw>2019-03-17 18:07:47 +0800
committerlulalala <mark@goodlife.tw>2019-03-31 22:59:13 +0800
commit5e24c333505c3bab3c85d834ac985281f141709f (patch)
treef8066d0859bca8f62c04bf0ec82f189db3e36dc7 /activemodel
parentaaa0c3279745e3405bc3279924e41cb641e1af8e (diff)
downloadrails-5e24c333505c3bab3c85d834ac985281f141709f.tar.gz
rails-5e24c333505c3bab3c85d834ac985281f141709f.tar.bz2
rails-5e24c333505c3bab3c85d834ac985281f141709f.zip
Spec for display original raw type in details
Diffstat (limited to 'activemodel')
-rw-r--r--activemodel/test/cases/errors_test.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/activemodel/test/cases/errors_test.rb b/activemodel/test/cases/errors_test.rb
index 89c3d1b7f4..0837e9db96 100644
--- a/activemodel/test/cases/errors_test.rb
+++ b/activemodel/test/cases/errors_test.rb
@@ -528,6 +528,24 @@ class ErrorsTest < ActiveModel::TestCase
assert_equal({ name: [{ error: :invalid }] }, person.errors.details)
end
+ test "details retains original type as error" do
+ errors = ActiveModel::Errors.new(Person.new)
+ errors.add(:name, "cannot be nil")
+ errors.add("foo", "bar")
+ errors.add(:baz, nil)
+ errors.add(:age, :invalid, count: 3, message: "%{count} is too low")
+
+ assert_equal(
+ {
+ name: [{ error: "cannot be nil" }],
+ foo: [{ error: "bar" }],
+ baz: [{ error: nil }],
+ age: [{ error: :invalid, count: 3 }]
+ },
+ errors.details
+ )
+ end
+
test "group_by_attribute" do
person = Person.new
error = person.errors.add(:name, :invalid, message: "is bad")