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")