Redis.Cluster.mockImplementation(() => { let onCallbacks = {}; return { on: jest.fn((event, cb) => onCallbacks[event] = cb), disconnect: jest.fn(), subscribe: jest.fn(), publish: jest.fn(), onCallbacks }; });
it("init Redis cluster client", () => { broker.namespace = "TESTING"; const discoverer = new RedisDiscoverer({ cluster: { nodes: ["redis-server"], options: { db: 3 } } }); Redis.Cluster.mockClear(); Serializers.JSON.prototype.init.mockClear(); // ---- ^ SETUP ^ --- discoverer.init(broker.registry); // ---- ˇ ASSERTS ˇ --- expect(discoverer.instanceHash).toBe("12345678"); expect(discoverer.PREFIX).toBe("MOL-TESTING-DSCVR"); expect(discoverer.BEAT_KEY).toBe("MOL-TESTING-DSCVR-BEAT:node-99|12345678"); expect(discoverer.INFO_KEY).toBe("MOL-TESTING-DSCVR-INFO:node-99"); expect(discoverer.client).toBeInstanceOf(Redis.Cluster); expect(discoverer.serializer).toBeInstanceOf(Serializers.JSON); expect(Redis.Cluster).toHaveBeenCalledTimes(1); expect(Redis.Cluster).toHaveBeenCalledWith(["redis-server"], { db: 3 }); expect(Serializers.JSON.prototype.init).toHaveBeenCalledTimes(1); expect(Serializers.JSON.prototype.init).toHaveBeenCalledWith(broker); });