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