// Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy of // the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. // Specs for jquery_couch.js lines 163-209 describe 'jQuery couchdb db' before stubAlert(); end after destubAlert(); end before_each db = $.couch.db('spec_db'); end describe 'constructor' it 'should set the name' db.name.should.eql 'spec_db' end it 'should set the uri' db.uri.should.eql '/spec_db/' end end describe 'triggering db functions' before_each db.create(); end after_each db.drop(); end describe 'compact' it 'should return ok true' db.compact({ success: function(resp) { resp.ok.should.be_true }, error: function(status, error, reason){errorCallback(status, error, reason)} }); end it 'should trigger _compact' db.compact({ success: function(resp, obj) { obj.url.should.eql "/spec_db/_compact" }, error: function(status, error, reason){errorCallback(status, error, reason)} }); end end describe 'viewCleanup' it 'should return ok true' db.viewCleanup({ success: function(resp) { resp.ok.should.be_true }, error: function(status, error, reason){errorCallback(status, error, reason)} }); end it 'should trigger _view_cleanup' db.viewCleanup({ success: function(resp, obj) { obj.url.should.eql "/spec_db/_view_cleanup" }, error: function(status, error, reason){errorCallback(status, error, reason)} }); end end describe 'compactView' before_each var designDoc = { "views" : { "people" : { "map" : "function(doc) { emit(doc._id, doc); }" } }, "_id" : "_design/myview" }; db.saveDoc(designDoc); db.saveDoc({"Name" : "Felix Gaeta", "_id" : "123"}); end it 'should return ok true' db.compactView("myview", { success: function(resp) { resp.ok.should.be_true }, error: function(status, error, reason){errorCallback(status, error, reason)} }); end it 'should trigger _compact_view with the groupname' db.compactView("myview", { success: function(resp, obj) { obj.url.should.eql "/spec_db/_compact/myview" }, error: function(status, error, reason){errorCallback(status, error, reason)} }); end it 'should return raise a 404 error when the design name doesnt exist' db.compactView("non_existing_design_name", { error: function(status, error, reason){ status.should.eql 404 error.should.eql "not_found" reason.should.eql "missing" }, success: function(resp){successCallback(resp)} }); end it 'should alert with an error message prefix' db.compactView("asdf"); alert_msg.should.match /The view could not be compacted/ end end end describe 'create' after_each db.drop(); end it 'should return ok true' db.create({ success: function(resp) { resp.ok.should.be_true }, error: function(status, error, reason){errorCallback(status, error, reason)} }); end it 'should result in a created db' db.create(); db.create({ error: function(status, error, reason){ status.should.eql 412 error.should.eql "file_exists" reason.should.eql "The database could not be created, the file already exists." }, success: function(resp){successCallback(resp)} }); end it 'should alert with an error message prefix' db.create(); db.create(); alert_msg.should.match /The database could not be created/ end end describe 'drop' before_each db.create(); end it 'should return ok true' db.drop({ success: function(resp) { resp.ok.should.be_true }, error: function(status, error, reason){errorCallback(status, error, reason)} }); end it 'should result in a deleted db' db.drop(); db.drop({ error: function(status, error, reason){ status.should.eql 404 error.should.eql "not_found" reason.should.eql "missing" }, success: function(resp){successCallback(resp)} }); end it 'should alert with an error message prefix' db.drop(); db.drop(); alert_msg.should.match /The database could not be deleted/ end end end