From 7ee9e2835417ac23864e0c22293c4c3a1b140d7b Mon Sep 17 00:00:00 2001 From: Alexander Lang Date: Tue, 13 Jan 2026 10:54:42 +0100 Subject: [PATCH] fix save! did not use passed block --- lib/couch_potato/database.rb | 4 ++-- spec/unit/database_spec.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) 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