test/model_test.rb in context_validations-0.1.1 vs test/model_test.rb in context_validations-0.2.0
- old
+ new
@@ -24,6 +24,23 @@
validations = [ActiveModel::Validations::PresenceValidator.new(:attributes => [:first_name]), ActiveModel::Validations::FormatValidator.new(:attributes => [:email], :with => EmailFormat), ActiveRecord::Validations::UniquenessValidator.new(:attributes => [:email])]
@user.validations = validations
@user.valid?.must_equal false
@user.errors.count.must_equal 2
end
+
+ it 'respect conditional validations set onto the instance' do
+ validations = [
+ ActiveModel::Validations::PresenceValidator.new(:attributes => [:first_name], :if => :can_validate?),
+ ActiveModel::Validations::PresenceValidator.new(:attributes => [:first_name], :if => Proc.new { |model| model.can_validate? }),
+ ActiveModel::Validations::PresenceValidator.new(:attributes => [:first_name], :unless => :cannot_validate?),
+ ActiveModel::Validations::PresenceValidator.new(:attributes => [:first_name], :unless => Proc.new { |model| model.cannot_validate? })
+ ]
+ def @user.can_validate?
+ false
+ end
+ def @user.cannot_validate?
+ true
+ end
+ @user.validations = validations
+ @user.valid?.must_equal true
+ end
end