fixed merge
This commit is contained in:
commit
0c91f5d234
2 changed files with 70 additions and 0 deletions
|
@ -3,6 +3,16 @@ require File.dirname(__FILE__) + '/../../spec_helper'
|
|||
class Basic < CouchRest::Model
|
||||
end
|
||||
|
||||
class BasicWithValidation < CouchRest::Model
|
||||
|
||||
before :save, :validate
|
||||
key_accessor :name
|
||||
|
||||
def validate
|
||||
throw(:halt, false) unless name
|
||||
end
|
||||
end
|
||||
|
||||
class WithTemplate < CouchRest::Model
|
||||
unique_id do |model|
|
||||
model['important-field']
|
||||
|
@ -241,6 +251,28 @@ describe CouchRest::Model do
|
|||
end
|
||||
end
|
||||
|
||||
describe "finding the first instance of a model" do
|
||||
before(:all) do
|
||||
WithTemplate.new('important-field' => '1').save
|
||||
WithTemplate.new('important-field' => '2').save
|
||||
WithTemplate.new('important-field' => '3').save
|
||||
WithTemplate.new('important-field' => '4').save
|
||||
end
|
||||
it "should make the design doc" do
|
||||
WithTemplate.all
|
||||
d = WithTemplate.design_doc
|
||||
d['views']['all']['map'].should include('WithTemplate')
|
||||
end
|
||||
it "should find first" do
|
||||
rs = WithTemplate.first
|
||||
rs['important-field'].should == "1"
|
||||
end
|
||||
it "should return nil if no instances are found" do
|
||||
WithTemplate.all.each {|obj| obj.destroy }
|
||||
WithTemplate.first.should be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe "getting a model with a subobject field" do
|
||||
before(:all) do
|
||||
course_doc = {
|
||||
|
@ -286,6 +318,21 @@ describe CouchRest::Model do
|
|||
@obj['couchrest-type'].should == 'Basic'
|
||||
end
|
||||
end
|
||||
|
||||
describe "saving a model with validation hooks added as extlib" do
|
||||
before(:all) do
|
||||
@obj = BasicWithValidation.new
|
||||
end
|
||||
|
||||
it "save should return false is the model doesn't save as expected" do
|
||||
@obj.save.should be_false
|
||||
end
|
||||
|
||||
it "save! should raise and exception if the model doesn't save" do
|
||||
lambda{ @obj.save!}.should raise_error("#{@obj.inspect} failed to save")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "saving a model with a unique_id configured" do
|
||||
before(:each) do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue