UNPKG

decentralized-internet

Version:

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

1 lines 871 B
"use strict";const _=require("lodash"),assert=require("assertthat"),async=require("async"),parse=require("parse-duration"),createPeers=require("./createPeers"),runTest=require("./runTest");runTest(__filename,e=>s=>{createPeers({count:e.ringSize,serviceInterval:e.serviceInterval},(r,t,a)=>{const i=_.clone(t);assert.that(r).is.null(),async.series([s=>{a.waitUntil(t,{interval:e.serviceInterval}).have("status").equalTo({status:"lonely"},s)},e=>{a.formRing(t,e)},s=>{a.waitUntil(t,{interval:e.serviceInterval}).have("status").equalTo({status:"joined"},s)},e=>{a.isRing(t,e)},s=>{async.eachSeries(t,(s,r)=>{if(i.length<3)return r(null);_.remove(i,s),async.series([e=>{s.stop(e)},s=>{setTimeout(s,1.5*parse(e.serviceInterval))},s=>{a.waitUntil(i,{interval:e.serviceInterval}).have("status").equalTo({status:"joined"},s)},e=>{a.isRing(i,e)}],r)},s)},e=>{a.stop(i,e)}],s)})});