Promise.all([broker1.start(), broker2.start(), broker.start()]) .delay(2000) .then(() => { broker.repl(); }) .then(() => broker.call("greeter.hello").then(res => broker.logger.info("Call 'greeter.hello':", res))) .then(() => broker.call("greeter.hello@local").then(res => broker.logger.info("Call 'greeter.hello@local':", res))) .then(() => broker.call("greeter.hello@ns-venus").then(res => broker.logger.info("Call 'greeter.hello@ns-venus':", res))) .then(() => broker.call("greeter.hello@ns-mars").then(res => broker.logger.info("Call 'greeter.hello@ns-mars':", res))) .catch(err => broker.logger.error(err));
it("destroy mail on-the-fly to node1", () => { servicesChanged.mockClear(); H.removeServices(node1, ["mail"]); return Promise.resolve().delay(100).then(() => { expect(H.hasService(master, "mail")).toBe(false); expect(H.getActionNodes(master, "mail.send")).toEqual([]); expect(servicesChanged).toHaveBeenCalledTimes(1); }); });
async doSomething() { await Promise.resolve().delay(500); const ctx = asyncLocalStorage.getStore(); console.log("Current context params:", ctx ? ctx.params : "<No context>"); }
it("should missing polyfilled methods", () => { expect(Promise.method).toBeUndefined(); expect(Promise.delay).toBeUndefined(); expect(Promise.prototype.delay).toBeUndefined(); expect(Promise.prototype.timeout).toBeUndefined(); expect(Promise.TimeoutError).toBeUndefined(); //expect(Promise.map).toBeUndefined(); //expect(Promise.mapSeries).toBeUndefined(); });
it("should exists polyfilled methods", () => { utils.polyfillPromise(global.Promise); expect(Promise.method).toBeDefined(); expect(Promise.delay).toBeDefined(); expect(Promise.prototype.delay).toBeDefined(); expect(Promise.prototype.timeout).toBeDefined(); expect(Promise.TimeoutError).toBeDefined(); //expect(Promise.map).toBeDefined(); //expect(Promise.mapSeries).toBeDefined(); });
function measureTP(transporter, dataName) { received = 0; console.log(kleur.cyan().bold(`'${transporter}' transporter with ${dataName}bytes payload:`)); console.log(kleur.cyan().bold("===============================================")); let data = getDataFile(dataName + ".json"); let payload = JSON.parse(data); return createBrokers(transporter) .then(([b1, b2]) => { return new Promise(r => { resolve = r; startTime = Date.now(); for (let i = 0; i < MAX; i++) b1.call("echo.reply", payload).catch(err => console.error(transporter, err.message)); }).delay(500).then(() => Promise.all([b1.stop(), b2.stop()])); }); }
it("--- create broker with transporter", () => { mw1.created = null; mw1.starting = null; mw1.started = null; mw1.stopping = null; mw1.stopped = null; mw2.created = null; mw2.starting = null; mw2.started = null; mw2.stopping = null; mw2.stopped = null; broker = new ServiceBroker({ logger: false, nodeID: "node-1", transporter: "Fake", internalMiddlewares: false, middlewares: [mw1, mw2] }); const broker2 = new ServiceBroker({ logger: false, nodeID: "node-2", transporter: "Fake", internalMiddlewares: false, middlewares: [mw1, mw2] }); broker2.createService({ name: "greeter", actions: { hello(ctx) { FLOW.push(`svc-${ctx.action.name}-${ctx.params.name}`); return `Hello ${ctx.params.name}!`; } } }); return Promise.all([broker.start(), broker2.start()]).delay(500)/*.catch(protectReject).then(() => { expect(FLOW).toEqual([ ]); })*/; });
b1.start().then(() => b1.waitForServices("echo")), b2.start() ]).delay(1000).then(() => [b1, b2]);
]).delay(1000).then(([ [fake1, fake2], [nats1, nats2],
Promise.delay(2000).then(() => sub3.start()); return Promise.all([pub.start(), sub1.start(), sub2.start()]).delay(500); }); pub.broadcast("hello.world", { testing: true }); return Promise.delay(2000) .catch(protectReject) .then(() => { Promise.delay(2000) .catch(protectReject) .then(() => sub3.start()); return Promise.all([pub.start(), sub1.start(), sub2.start()]).delay(500); }); return Promise.delay(2000) .catch(protectReject) .then(() => { Promise.delay(2000).then(() => sub3.start()); return Promise.delay(2000) .catch(protectReject) .then(() => {
it("load mail on-the-fly to node1", () => { servicesChanged.mockClear(); H.addServices(node1, [mailService]); return Promise.resolve().delay(100).then(() => { expect(H.hasService(master, "mail")).toBe(true); expect(H.getActionNodes(master, "mail.send")).toEqual(["node-1"]); expect(servicesChanged).toHaveBeenCalledTimes(1); }); });