test/functional/validatable_test.rb in validatable-1.6.4 vs test/functional/validatable_test.rb in validatable-1.6.6
- old
+ new
@@ -1,8 +1,46 @@
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
functional_tests do
+
+ expect "can't be empty" do
+ child_class = Module.new do
+ include Validatable
+ validates_presence_of :name
+ end
+ klass = Class.new do
+ include Validatable
+ include_validations_from :child
+ define_method :child do
+ child_class
+ end
+ attr_accessor :name
+ end
+ instance = klass.new
+ instance.valid?
+ instance.errors.on(:name)
+ end
+
+ expect "can't be empty" do
+ child_class = Module.new do
+ include Validatable
+ validates_presence_of :name
+ end
+ klass = Class.new do
+ include Validatable
+ validates_presence_of :address
+ include_validations_from :child
+ define_method :child do
+ child_class
+ end
+ attr_accessor :name, :address
+ end
+ instance = klass.new
+ instance.valid?
+ instance.errors.on(:address)
+ end
+
expect :is_set do
klass = Class.new do
include Validatable
attr_accessor :result
before_validation do
@@ -89,11 +127,11 @@
validates_presence_of :name
validates_format_of :address, :with => /.+/
end
klass = Class.new do
include Validatable
- include_validations_for :child
+ include_errors_from :child
define_method :child do
child_class.new
end
end
instance = klass.new
@@ -108,11 +146,11 @@
validates_presence_of :name
validates_format_of :address, :with => /.+/
end
klass = Class.new do
include Validatable
- include_validations_for :child
+ include_errors_from :child
define_method :child do
child_class.new
end
end
instance = klass.new
@@ -131,11 +169,11 @@
klass = Class.new do
include Validatable
extend Forwardable
def_delegator :child, :name
validates_true_for :name, :logic => lambda { false }, :level => 2, :message => "invalid message"
- include_validations_for :child
+ include_errors_from :child
define_method :child do
@child ||= child_class.new
end
end
instance = klass.new
@@ -151,11 +189,11 @@
end
klass = Class.new do
include Validatable
validates_true_for :address, :logic => lambda { false }, :level => 1, :message => "invalid message"
- include_validations_for :child
+ include_errors_from :child
define_method :child do
@child ||= child_class.new
end
end
@@ -171,11 +209,11 @@
attr_accessor :name, :address
validates_presence_of :name
end
klass = Class.new do
include Validatable
- include_validations_for :child, :map => {:name => :namen}
+ include_errors_from :child, :map => {:name => :namen}
define_method :child do
child_class.new
end
end
instance = klass.new
@@ -189,11 +227,11 @@
attr_accessor :name, :address
validates_presence_of :name
end
klass = Class.new do
include Validatable
- include_validations_for :child, :if => lambda { true }
+ include_errors_from :child, :if => lambda { true }
define_method :child do
child_class.new
end
end
instance = klass.new
@@ -207,11 +245,11 @@
attr_accessor :name, :address
validates_presence_of :name
end
klass = Class.new do
include Validatable
- include_validations_for :child, :if => lambda { false }
+ include_errors_from :child, :if => lambda { false }
define_method :child do
child_class.new
end
end
instance = klass.new
@@ -352,8 +390,48 @@
validates_presence_of :address, :level => 2
attr_accessor :name, :address
end
instance = klass.new
instance.valid?
+ instance.errors.on(:address)
+ end
+
+ expect "Mod::Klass/Validatable::ValidatesPresenceOf/name" do
+ module Mod
+ class Klass
+ include Validatable
+ validates_presence_of :name
+ end
+ end
+ Mod::Klass.validations.first.key
+ end
+
+ expect "/Validatable::ValidatesPresenceOf/custom key" do
+ klass = Class.new do
+ include Validatable
+ validates_presence_of :name, :key => "custom key"
+ end
+ klass.validations.first.key
+ end
+
+ expect "can't be empty" do
+ klass = Class.new do
+ include Validatable
+ validates_presence_of :name, :address
+ attr_accessor :name, :address
+ end
+ instance = klass.new
+ instance.validate_only("presence_of/name")
+ instance.errors.on(:name)
+ end
+
+ expect nil do
+ klass = Class.new do
+ include Validatable
+ validates_presence_of :name, :address
+ attr_accessor :name, :address
+ end
+ instance = klass.new
+ instance.validate_only("presence_of/name")
instance.errors.on(:address)
end
end