diff --git a/lib/couch_potato/database.rb b/lib/couch_potato/database.rb index d37e666..ed3f03f 100644 --- a/lib/couch_potato/database.rb +++ b/lib/couch_potato/database.rb @@ -127,8 +127,8 @@ def save_document(document, options = {}, retries = 0, &block) alias save save_document # saves a document, raises a CouchPotato::Database::ValidationsFailedError on failure - def save_document!(document, options = {}) - save_document(document, options) || raise(ValidationsFailedError, document.errors.full_messages) + def save_document!(document, options = {}, &block) + save_document(document, options, &block) || raise(ValidationsFailedError, document.errors.full_messages) end alias save! save_document! diff --git a/spec/unit/database_spec.rb b/spec/unit/database_spec.rb index d979aac..8fb1f7a 100644 --- a/spec/unit/database_spec.rb +++ b/spec/unit/database_spec.rb @@ -366,6 +366,14 @@ def set_errors end end +describe CouchPotato::Database, 'save_document!' do + it 'calls the block if provided' do + doc = double('doc').as_null_object + + expect {|b| CouchPotato.database.save_document!(doc, &b)}.to yield_with_args(doc) + end +end + describe CouchPotato::Database, 'first' do before(:each) do @couchrest_db = double('couchrest db').as_null_object