diff options
author | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2013-01-11 03:18:36 -0800 |
---|---|---|
committer | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2013-01-11 03:18:36 -0800 |
commit | fc6f5a43df06bd3ecc9e77706da4dc833dafe726 (patch) | |
tree | ebad82bd112b64322d593a871d99cdbf41a7cfac /activemodel | |
parent | 94797ed146ba02f627a365293e46b6e8c42a4fd7 (diff) | |
parent | 7171f9cc8ff99731dbfb736f16c3f7dae7058dfe (diff) | |
download | rails-fc6f5a43df06bd3ecc9e77706da4dc833dafe726.tar.gz rails-fc6f5a43df06bd3ecc9e77706da4dc833dafe726.tar.bz2 rails-fc6f5a43df06bd3ecc9e77706da4dc833dafe726.zip |
Merge pull request #8866 from adomokos/adding_more_tests_to_errors_test
Adding tests to cover untested methods in errors_tests.rb
Diffstat (limited to 'activemodel')
-rw-r--r-- | activemodel/test/cases/errors_test.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/activemodel/test/cases/errors_test.rb b/activemodel/test/cases/errors_test.rb index 1ffce1ae47..cc0c3f16d2 100644 --- a/activemodel/test/cases/errors_test.rb +++ b/activemodel/test/cases/errors_test.rb @@ -54,6 +54,59 @@ class ErrorsTest < ActiveModel::TestCase assert errors.has_key?(:foo), 'errors should have key :foo' end + test "should be able to clear the errors" do + person = Person.new + person.validate! + + assert_equal 1, person.errors.count + person.errors.clear + assert person.errors.empty? + end + + test "get returns the error by the provided key" do + errors = ActiveModel::Errors.new(self) + errors[:foo] = "omg" + + assert_equal ["omg"], errors.get(:foo) + end + + test "sets the error with the provided key" do + errors = ActiveModel::Errors.new(self) + errors.set(:foo, "omg") + + assert_equal({ foo: "omg" }, errors.messages) + end + + test "values returns an array of messages" do + errors = ActiveModel::Errors.new(self) + errors.set(:foo, "omg") + errors.set(:baz, "zomg") + + assert_equal ["omg", "zomg"], errors.values + end + + test "keys returns the error keys" do + errors = ActiveModel::Errors.new(self) + errors.set(:foo, "omg") + errors.set(:baz, "zomg") + + assert_equal [:foo, :baz], errors.keys + end + + test "as_json returns a json formatted representation of the errors hash" do + person = Person.new + person.validate! + + assert_equal({ name: ["can not be nil"] }, person.errors.as_json) + end + + test "as_json with :full_messages option" do + person = Person.new + person.validate! + + assert_equal({ name: ["name can not be nil"] }, person.errors.as_json(full_messages: true)) + end + test "should return true if no errors" do person = Person.new person.errors[:foo] |