added spec to show problem with validation of array of casted models
This commit is contained in:
parent
1b6ed9ce93
commit
0c0b6ecff2
2 changed files with 39 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
|||
require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
|
||||
require File.join(FIXTURE_PATH, 'more', 'card')
|
||||
require File.join(FIXTURE_PATH, 'more', 'cat')
|
||||
|
||||
class WithCastedModelMixin < Hash
|
||||
include CouchRest::CastedModel
|
||||
|
@ -67,7 +68,7 @@ describe CouchRest::CastedModel do
|
|||
|
||||
describe "casted as an array of a different type" do
|
||||
before(:each) do
|
||||
@obj = DummyModel.new(:keywords => ['couch', 'sofa', 'relax', 'canapé'])
|
||||
@obj = DummyModel.new(:keywords => ['couch', 'sofa', 'relax', 'canape'])
|
||||
end
|
||||
|
||||
it "should cast the array propery" do
|
||||
|
@ -103,5 +104,24 @@ describe CouchRest::CastedModel do
|
|||
end
|
||||
|
||||
end
|
||||
|
||||
describe "saving document with array of casted models and validation" do
|
||||
before :each do
|
||||
@cat = Cat.new
|
||||
@cat.save
|
||||
end
|
||||
|
||||
it "should save" do
|
||||
toy = CatToy.new :name => "Mouse"
|
||||
@cat.toys.push(toy)
|
||||
@cat.save.should be_true
|
||||
end
|
||||
|
||||
it "should fail because name is not present" do
|
||||
toy = CatToy.new
|
||||
@cat.toys.push(toy)
|
||||
@cat.save.should be_false
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
18
spec/fixtures/more/cat.rb
vendored
Normal file
18
spec/fixtures/more/cat.rb
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
class Cat < CouchRest::ExtendedDocument
|
||||
include ::CouchRest::Validation
|
||||
|
||||
# Set the default database to use
|
||||
use_database TEST_SERVER.default_database
|
||||
|
||||
property :name
|
||||
property :toys, :cast_as => ['CatToy'], :default => []
|
||||
end
|
||||
|
||||
class CatToy < Hash
|
||||
include ::CouchRest::CastedModel
|
||||
include ::CouchRest::Validation
|
||||
|
||||
property :name
|
||||
|
||||
validates_present :name
|
||||
end
|
Loading…
Reference in a new issue