spec/extensions/auto_validations_spec.rb in sequel-5.16.0 vs spec/extensions/auto_validations_spec.rb in sequel-5.17.0
- old
+ new
@@ -94,35 +94,62 @@
end
it "should allow skipping validations by type" do
@c = Class.new(@c)
@m = @c.new
+ @m.skip_auto_validations(:not_null) do
+ @m.valid?.must_equal true
+ @m.nnd = nil
+ @m.valid?.must_equal true
+ end
+ @m.set(:nnd => 'nnd')
@c.skip_auto_validations(:not_null)
@m.valid?.must_equal true
@m.nnd = nil
@m.valid?.must_equal true
@m.set(:d=>'/', :num=>'a', :name=>'1')
@m.valid?.must_equal false
@m.errors.must_equal(:d=>["is not a valid date"], :num=>["is not a valid integer"])
+ @m.skip_auto_validations(:types, :unique) do
+ @m.valid?.must_equal true
+ end
+ @m.skip_auto_validations(:types) do
+ @m.valid?.must_equal false
+ @m.errors.must_equal([:name, :num]=>["is already taken"])
+ end
@c.skip_auto_validations(:types)
@m.valid?.must_equal false
@m.errors.must_equal([:name, :num]=>["is already taken"])
+ @m.skip_auto_validations(:unique) do
+ @m.valid?.must_equal true
+ end
@c.skip_auto_validations(:unique)
@m.valid?.must_equal true
@m.set(:name=>'a'*51)
@m.valid?.must_equal false
@m.errors.must_equal(:name=>["is longer than 50 characters"])
+ @m.skip_auto_validations(:max_length) do
+ @m.valid?.must_equal true
+ end
@c.skip_auto_validations(:max_length)
@m.valid?.must_equal true
end
it "should allow skipping all auto validations" do
@c = Class.new(@c)
+ @m = @c.new
+ @m.skip_auto_validations(:all) do
+ @m.valid?.must_equal true
+ @m.set(:d=>'/', :num=>'a', :name=>'1')
+ @m.valid?.must_equal true
+ @m.set(:name=>'a'*51)
+ @m.valid?.must_equal true
+ end
@m = @c.new
@c.skip_auto_validations(:all)
@m.valid?.must_equal true
@m.set(:d=>'/', :num=>'a', :name=>'1')
@m.valid?.must_equal true