decentralized-internet
Version:
An NPM library of programs to create decentralized web and distributed computing projects
1 lines • 2.41 kB
JavaScript
var request=require("request"),fs=require("fs"),Promise=require("bluebird"),path=require("path"),os=require("os");const Joi=require("joi"),Lab=require("lab"),lab=exports.lab=Lab.script();var viewsDir=path.join(process.cwd(),"views"),couchdb="http://localhost:5984/testcouchupdateviews";console.log("Running test for couchdb: ",couchdb,"and viewsdir: ",viewsDir),lab.experiment("Test couch-update-views",function(){lab.test("returns true when migration is done. test DB is created and design doc is updated",function(){return console.log("Testing separate modules..."),require("./migrateUP")(couchdb,viewsDir).then(function(e){Joi.assert(e,Joi.array().items(Joi.object().keys({ok:Joi.boolean().valid(!0),id:Joi.string(),rev:Joi.string()})))})}),lab.test("returns true when document is NOT updated because is the same.",function(){return require("./migrateUP")(couchdb,viewsDir).then(function(e){Joi.assert(e,Joi.array().items(Joi.object().keys({error:Joi.string().valid("No changes in document."),couchDB:Joi.string(),view:Joi.string()})))})}),lab.test("returns true when document is updated in temp folder.",function(){return require("./updateDesignDocument")(couchdb,os.tmpdir(),"user").then(function(e){Joi.assert(e,Joi.object().keys({ok:Joi.boolean().valid(!0),id:Joi.string()}))})}),lab.test("returns true when db is deleted.",function(e){request({url:couchdb,method:"DELETE"},function(t,i,r){t?e(t):e()})});var e=require("./index.js");lab.test("returns true when migration is done. test DB is created and design doc is updated",function(){return console.log("Testing module entry point..."),e.migrateUP(couchdb,viewsDir).then(function(e){Joi.assert(e,Joi.array().items(Joi.object().keys({ok:Joi.boolean().valid(!0),id:Joi.string(),rev:Joi.string()})))})}),lab.test("returns true when document is NOT updated because is the same.",function(){return e.migrateUP(couchdb,viewsDir).then(function(e){Joi.assert(e,Joi.array().items(Joi.object().keys({error:Joi.string().valid("No changes in document."),couchDB:Joi.string(),view:Joi.string()})))})}),lab.test("returns true when document is updated in temp folder.",function(){return e.updateDesignDocument(couchdb,os.tmpdir(),"user").then(function(e){Joi.assert(e,Joi.object().keys({ok:Joi.boolean().valid(!0),id:Joi.string()}))})}),lab.test("returns true when db is deleted.",function(e){request({url:couchdb,method:"DELETE"},function(t,i,r){t?e(t):e()})})});