-
Notifications
You must be signed in to change notification settings - Fork 62
/
view_updates_spec.rb
28 lines (24 loc) · 1.58 KB
/
view_updates_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require 'spec_helper'
describe "automatic view updates" do
before(:each) do
recreate_db
@db = CouchPotato.couchrest_database
end
it "should update a view that doesn't match the given functions" do
CouchPotato::View::ViewQuery.new(@db, 'test_design1', {'test_view' => {:map => 'function(doc) {}', :reduce => 'function() {}'}}, nil).query_view! # create view
CouchPotato::View::ViewQuery.new(@db, 'test_design1', {'test_view' => {:map => 'function(doc) {emit(doc.id, null)}', :reduce => 'function(key, values) {return sum(values)}'}}, nil).query_view!
CouchPotato.database.load('_design/test_design1')['views']['test_view'].should == {
'map' => 'function(doc) {emit(doc.id, null)}',
'reduce' => 'function(key, values) {return sum(values)}'
}
end
it "should only update a view once to avoid writing the view for every request" do
CouchPotato::View::ViewQuery.new(@db, 'test_design2', {'test_view' => {:map => 'function(doc) {}', :reduce => 'function() {}'}}, nil).query_view! # create view
CouchPotato::View::ViewQuery.new(@db, 'test_design2', {'test_view' => {:map => 'function(doc) {emit(doc.id, null)}', :reduce => 'function(key, values) {return sum(values)}'}}, nil).query_view!
CouchPotato::View::ViewQuery.new(@db, 'test_design2', {'test_view' => {:map => 'function(doc) {}', :reduce => 'function() {}'}}, nil).query_view!
CouchPotato.database.load('_design/test_design2')['views']['test_view'].should == {
'map' => 'function(doc) {emit(doc.id, null)}',
'reduce' => 'function(key, values) {return sum(values)}'
}
end
end