spec/unit/caching_spec.rb in couch_potato-1.16.0 vs spec/unit/caching_spec.rb in couch_potato-1.17.0
- old
+ new
@@ -35,10 +35,19 @@
db.load '1'
db.load '1'
end
+ it 'caches nil' do
+ allow(couchrest_db).to receive(:get).with('1').and_return(nil)
+
+ db.load '1'
+ db.load '1'
+
+ expect(couchrest_db).to have_received(:get).with('1').exactly(1).times
+ end
+
it 'gets an object from the cache the 2nd time via #load!' do
expect(couchrest_db).to receive(:get).with('1').exactly(1).times
db.load! '1'
db.load! '1'
@@ -90,10 +99,21 @@
expect(couchrest_db).to have_received(:bulk_load).with(['1']).exactly(1).times
expect(couchrest_db).to have_received(:bulk_load).with(['2']).exactly(1).times
end
+ it 'caches nil' do
+ allow(couchrest_db).to receive(:bulk_load).with(['1']).and_return('rows' => [{'doc' => nil}])
+ allow(couchrest_db).to receive(:bulk_load).with(['2']).and_return('rows' => [{'doc' => doc2}])
+
+
+ db.load_document(['1'])
+ db.load_document(['1', '2'])
+
+ expect(couchrest_db).to have_received(:bulk_load).with(['1']).exactly(1).times
+ end
+
it 'instruments the load call' do
allow(couchrest_db).to receive(:bulk_load).with(['1'])
.and_return('rows' => [{'doc' => doc1}])
allow(couchrest_db).to receive(:bulk_load).with(['2'])
.and_return('rows' => [{'doc' => doc2}])
@@ -134,25 +154,9 @@
db.load_document(['1'])
result = db.load_document(['1', '2'])
expect(result).to eql([doc1, doc2])
- end
-
- it 'does not cache documents that do not respond to id' do
- doc1 = {
- 'id' => '1',
- }
- doc2 = {
- 'id' => '2',
- }
- allow(couchrest_db).to receive(:bulk_load).with(['1', '2'])
- .and_return('rows' => [{'doc' => doc1}, {'doc' => doc2}])
-
- db.load_document(['1', '2'])
- db.load_document(['1', '2'])
-
- expect(couchrest_db).to have_received(:bulk_load).with(['1', '2']).exactly(2).times
end
end
context 'when switching the database' do
end