spec/unit/proxyable_spec.rb in couchrest_model-2.2.0.beta1 vs spec/unit/proxyable_spec.rb in couchrest_model-2.2.0.beta2

- old
+ new

@@ -59,10 +59,27 @@ @class.connection.update(:join => '-') allow(@class).to receive(:proxy_database_method).and_return(:slug) allow(@class).to receive(:proxy_database_suffixes).and_return({ assoc: 'suffix' }) expect(@obj.proxy_database(:assoc).name).to eql('couchrest-proxy-suffix') end + + context "when use_database is set" do + before do + @class = Class.new(CouchRest::Model::Base) + @class.class_eval do + use_database "another_database" + def slug; 'proxy'; end + end + @obj = @class.new + end + + it "should provide proxy database from method not considering use database" do + expect(@class).to receive(:proxy_database_method).at_least(:twice).and_return(:slug) + expect(@obj.proxy_database(:assoc)).to be_a(CouchRest::Database) + expect(@obj.proxy_database(:assoc).name).to eql('couchrest_proxy') + end + end end describe "class methods" do @@ -310,18 +327,36 @@ expect(@model).to receive(:all).and_return(view) @obj.last end it "should proxy #get" do - expect(@model).to receive(:get).with(32, 'database') + expect(@model).to receive(:fetch_and_build_from_database).with(32, 'database') expect(@obj).to receive(:proxy_update) @obj.get(32) end + it "should proxy #get and catch missing doc error" do + expect(@model).to receive(:fetch_and_build_from_database).with(32, 'database').and_raise(CouchRest::Model::DocumentNotFound) + expect(@obj.get(32)).to be_nil + end + + it "should proxy #find" do - expect(@model).to receive(:get).with(32, 'database') + expect(@model).to receive(:fetch_and_build_from_database).with(32, 'database') expect(@obj).to receive(:proxy_update) @obj.find(32) + end + + it "should proxy #get!" do + expect(@model).to receive(:fetch_and_build_from_database).with(32, 'database') + expect(@obj).to receive(:proxy_update) + @obj.get!(32) + end + + it "should proxy #find!" do + expect(@model).to receive(:fetch_and_build_from_database).with(32, 'database') + expect(@obj).to receive(:proxy_update) + @obj.find!(32) end it "should proxy factory methods" do expect(@model).to receive(:factory_method).with(@obj, "arg_1", "arg_2") @obj.factory_method("arg_1", "arg_2")