1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-13 10:02:24 +03:00

fix CLUSTER_NODES, add some tests

This commit is contained in:
leibale
2021-06-28 20:45:42 -04:00
parent 33f8d5e484
commit 22c2748fa8
3 changed files with 44 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
import { strict as assert } from 'assert'; import { strict as assert } from 'assert';
import { itWithCluster, TestRedisClusters } from '../test-utils';
import { transformArguments, transformReply } from './CLUSTER_INFO'; import { transformArguments, transformReply } from './CLUSTER_INFO';
describe('CLUSTER INFO', () => { describe('CLUSTER INFO', () => {
@@ -43,4 +44,21 @@ describe('CLUSTER INFO', () => {
} }
); );
}); });
itWithCluster(TestRedisClusters.OPEN, 'cluster.clusterInfo', async cluster => {
const info = await cluster.clusterInfo();
assert.equal(info.state, 'ok');
assert.deepEqual(info.slots, {
assigned: 16384,
ok: 16384,
pfail: 0,
fail: 0
});
assert.equal(info.knownNodes, 3);
assert.equal(info.size, 3);
assert.equal(typeof info.currentEpoch, 'number');
assert.equal(typeof info.myEpoch, 'number');
assert.equal(typeof info.stats.messagesReceived, 'number');
assert.equal(typeof info.stats.messagesSent, 'number');
});
}); });

View File

@@ -1,4 +1,5 @@
import { strict as assert } from 'assert'; import { strict as assert } from 'assert';
import { itWithCluster, TestRedisClusters } from '../test-utils';
import { RedisClusterNodeLinkStates, transformArguments, transformReply } from './CLUSTER_NODES'; import { RedisClusterNodeLinkStates, transformArguments, transformReply } from './CLUSTER_NODES';
describe('CLUSTER NODES', () => { describe('CLUSTER NODES', () => {
@@ -92,4 +93,26 @@ describe('CLUSTER NODES', () => {
); );
}); });
}); });
itWithCluster(TestRedisClusters.OPEN, 'cluster.clusterNodes', async cluster => {
const nodes = await cluster.clusterNodes();
for (const node of (await cluster.clusterNodes())) {
assert.equal(typeof node.id, 'string');
assert.equal(typeof node.url, 'string');
assert.equal(typeof node.host, 'string');
assert.equal(typeof node.port, 'number');
assert.equal(typeof node.cport, 'number');
assert.ok(Array.isArray(node.flags));
assert.equal(typeof node.pingSent, 'number');
assert.equal(typeof node.pongRecv, 'number');
assert.equal(typeof node.configEpoch, 'number');
assert.equal(typeof node.linkState, 'string');
for (const slot of node.slots) {
assert.equal(typeof slot.from, 'number');
assert.equal(typeof slot.to, 'number');
}
}
});
}); });

View File

@@ -16,7 +16,7 @@ interface RedisClusterNodeTransformedUrl {
export interface RedisClusterReplicaNode extends RedisClusterNodeTransformedUrl { export interface RedisClusterReplicaNode extends RedisClusterNodeTransformedUrl {
id: string; id: string;
url: string; url: string;
flags: Array<string>, flags: Array<string>;
pingSent: number; pingSent: number;
pongRecv: number; pongRecv: number;
configEpoch: number; configEpoch: number;
@@ -25,8 +25,8 @@ export interface RedisClusterReplicaNode extends RedisClusterNodeTransformedUrl
export interface RedisClusterMasterNode extends RedisClusterReplicaNode { export interface RedisClusterMasterNode extends RedisClusterReplicaNode {
slots: Array<{ slots: Array<{
from: number, from: number;
to: number to: number;
}>; }>;
replicas: Array<RedisClusterReplicaNode>; replicas: Array<RedisClusterReplicaNode>;
} }