UNPKG

decentralized-internet

Version:

An NPM library of programs to create decentralized web and distributed computing projects

1 lines 2.5 kB
var request=require("request"),fs=require("fs"),Promise=require("bluebird"),path=require("path"),os=require("os");const Joi=require("@hapi/joi"),Lab=require("lab"),lab=exports.lab=Lab.script();var viewsDir=path.join(process.cwd(),"views"),viewsDir2=path.join(process.cwd(),"views2"),viewsDir3=path.join(process.cwd(),"views3"),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 migrateUp..."),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 if the documents are different, a help message is printed for the user.",function(){return require("./migrateUp")(couchdb,viewsDir2,!0).then(function(e){Joi.assert(e,Joi.array().items(Joi.object().keys({message:Joi.string().valid("Documents differ."),couchDB:Joi.string(),view:Joi.string()})))})}),lab.test("returns true if the document is deployed while testing because the design document is not found",function(){return require("./migrateUp")(couchdb,viewsDir3,!0).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({message: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 console.log("Testing updateDesignDocument..."),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(i,t,r){i?e(i):e()})}),lab.test("returns true when migration is done. test DB is created and design doc is updated",function(e){console.log("Testing module entry point...");var i=require("./index.js");Joi.assert(i,Joi.object().keys({couchUpdateViews:Joi.func().arity(0),migrateUp:Joi.func().arity(3),updateDesignDocument:Joi.func().arity(3)})),e()})});