it("check with PACKET_HEARTBEAT", () => { transporter.publish.mockClear(); transporter.publishBalancedRequest.mockClear(); let packet = new P.Packet(P.PACKET_HEARTBEAT, null); return transporter.prepublish(packet).catch(protectReject).then(() => { expect(transporter.publish).toHaveBeenCalledTimes(1); expect(transporter.publishBalancedEvent).toHaveBeenCalledTimes(0); expect(transporter.publishBalancedRequest).toHaveBeenCalledTimes(0); }); });
it("should call waitForServices if dependencies are defined", async () => { svc.parseServiceSchema({ name: "posts", dependencies: ["users", "auth"] }); broker.registerLocalService.mockClear(); broker.callMiddlewareHook.mockClear(); svc.waitForServices.mockClear(); await svc._start(); expect(broker.callMiddlewareHook).toBeCalledTimes(2); expect(broker.callMiddlewareHook).toHaveBeenNthCalledWith(1, "serviceStarting", [svc]); expect(broker.callMiddlewareHook).toHaveBeenNthCalledWith(2, "serviceStarted", [svc]); expect(broker.registerLocalService).toBeCalledTimes(1); expect(broker.registerLocalService).toBeCalledWith(svc._serviceSpecification); expect(svc.waitForServices).toBeCalledTimes(1); expect(svc.waitForServices).toBeCalledWith(["users", "auth"], 0, 1000); });
it("should call stopped of services", () => { broker.services.forEach(svc => svc._stop = jest.fn()); broker.broadcastLocal.mockClear(); broker.metrics.set.mockClear(); broker.callMiddlewareHook.mockClear(); broker.registry.regenerateLocalRawInfo = jest.fn(); broker.registry.discoverer.sendLocalNodeInfo = jest.fn();
expect(broker.middlewares.wrapMethod).toHaveBeenCalledWith("emit", handler, undefined, undefined); broker.middlewares.wrapMethod.mockClear(); broker.wrapMethod("emit", handler, o, { reverse: true }); expect(broker.middlewares.callHandlers).toHaveBeenCalledWith("started", [1,2,3], undefined); broker.middlewares.callHandlers.mockClear(); broker.callMiddlewareHook("started", [1,2,3], { reverse: true }); expect(broker.middlewares.callSyncHandlers).toHaveBeenCalledWith("started", [1,2,3], undefined); broker.middlewares.callSyncHandlers.mockClear(); broker.callMiddlewareHookSync("started", [1,2,3], { reverse: true });
broker.createService.mockClear(); broker._restartService.mockClear(); let service = broker.loadService("./test/services/users.service.js"); expect(service).toBeInstanceOf(broker.ServiceFactory); broker.createService.mockClear(); broker._restartService.mockClear(); let service = broker.loadService("./test/services/posts.service.js"); expect(service).toBeDefined(); broker.createService.mockClear(); broker._restartService.mockClear(); let service = broker.loadService("./test/services/greeter.es6.service.js"); expect(service).toBeDefined();
}); broker.callMiddlewareHook.mockClear();
broker.createService.mockClear(); broker._restartService.mockClear(); let service = broker.loadService("./test/services/users.service.js"); expect(service).toBeInstanceOf(broker.ServiceFactory); broker.createService.mockClear(); broker._restartService.mockClear(); let service = broker.loadService("./test/services/posts.service.js"); expect(service).toBeDefined(); broker.createService.mockClear(); broker._restartService.mockClear(); let service = broker.loadService("./test/services/greeter.es6.service.js"); expect(service).toBeDefined();
it("check with PACKET_DISCONNECT", () => { transporter.publish.mockClear(); transporter.publishBalancedRequest.mockClear(); let packet = new P.Packet(P.PACKET_DISCONNECT, null); return transporter.prepublish(packet).catch(protectReject).then(() => { expect(transporter.publish).toHaveBeenCalledTimes(1); expect(transporter.publishBalancedEvent).toHaveBeenCalledTimes(0); expect(transporter.publishBalancedRequest).toHaveBeenCalledTimes(0); }); });
it("should call broker methods", async () => { svc.parseServiceSchema({ name: "posts" }); broker.registerLocalService.mockClear(); broker.callMiddlewareHook.mockClear(); svc.waitForServices.mockClear(); await svc._start(); expect(broker.callMiddlewareHook).toBeCalledTimes(2); expect(broker.callMiddlewareHook).toHaveBeenNthCalledWith(1, "serviceStarting", [svc]); expect(broker.callMiddlewareHook).toHaveBeenNthCalledWith(2, "serviceStarted", [svc]); expect(broker.registerLocalService).toBeCalledTimes(1); expect(broker.registerLocalService).toBeCalledWith(svc._serviceSpecification); expect(svc.waitForServices).toBeCalledTimes(0); });
it("check with PACKET_PONG", () => { transporter.publish.mockClear(); transporter.publishBalancedRequest.mockClear(); let packet = new P.Packet(P.PACKET_PONG, null); return transporter.prepublish(packet).catch(protectReject).then(() => { expect(transporter.publish).toHaveBeenCalledTimes(1); expect(transporter.publishBalancedEvent).toHaveBeenCalledTimes(0); expect(transporter.publishBalancedRequest).toHaveBeenCalledTimes(0); }); });