You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-03 04:01:40 +03:00
* refactor pubsub, add support for sharded pub sub * run tests in redis 7 only, fix PUBSUB SHARDCHANNELS test * add some comments and fix some bugs * PubSubType, not PubSubTypes 🤦♂️ * remove test.txt * fix some bugs, add tests * add some tests * fix #2345 - allow PING in PubSub mode (remove client side validation) * remove .only * revert changes in cluster/index.ts * fix tests minimum version * handle server sunsubscribe * add 'sharded-channel-moved' event to docs, improve the events section in the main README (fix #2302) * exit "resubscribe" if pubsub not active * Update commands-queue.ts * Release client@1.5.0-rc.0 * WIP * use `node:util` instead of `node:util/types` (to support node 14) * run PubSub resharding test with Redis 7+ * fix inconsistency in live resharding test * add some tests * fix iterateAllNodes when starting from a replica * fix iterateAllNodes random * fix slotNodesIterator * fix slotNodesIterator * clear pubSubNode when node in use * wait for all nodes cluster state to be ok before testing * `cluster.minimizeConections` tests * `client.reconnectStrategry = false | 0` tests * sharded pubsub + cluster 🎉 * add minimum version to sharded pubsub tests * add cluster sharded pubsub live reshard test, use stable dockers for tests, make sure to close pubsub clients when a node disconnects from the cluster * fix "ssubscribe & sunsubscribe" test * lock search docker to 2.4.9 * change numberOfMasters default to 2 * use edge for bloom * add tests * add back getMasters and getSlotMaster as deprecated functions * add some tests * fix reconnect strategy + docs * sharded pubsub docs * Update pub-sub.md * some jsdoc, docs, cluster topology test * clean pub-sub docs Co-authored-by: Simon Prickett <simon@redislabs.com> * reconnect startegy docs and bug fix Co-authored-by: Simon Prickett <simon@redislabs.com> * refine jsdoc and some docs Co-authored-by: Simon Prickett <simon@redislabs.com> * I'm stupid * fix cluster topology test * fix cluster topology test * Update README.md * Update clustering.md * Update pub-sub.md Co-authored-by: Simon Prickett <simon@redislabs.com>
57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
import TestUtils from '@redis/test-utils';
|
|
import { SinonSpy } from 'sinon';
|
|
import { promiseTimeout } from './utils';
|
|
|
|
export default new TestUtils({
|
|
dockerImageName: 'redis',
|
|
dockerImageVersionArgument: 'redis-version'
|
|
});
|
|
|
|
export const GLOBAL = {
|
|
SERVERS: {
|
|
OPEN: {
|
|
serverArguments: []
|
|
},
|
|
PASSWORD: {
|
|
serverArguments: ['--requirepass', 'password'],
|
|
clientOptions: {
|
|
password: 'password'
|
|
}
|
|
}
|
|
},
|
|
CLUSTERS: {
|
|
OPEN: {
|
|
serverArguments: []
|
|
},
|
|
PASSWORD: {
|
|
serverArguments: ['--requirepass', 'password'],
|
|
clusterConfiguration: {
|
|
defaults: {
|
|
password: 'password'
|
|
}
|
|
}
|
|
},
|
|
WITH_REPLICAS: {
|
|
serverArguments: [],
|
|
numberOfMasters: 2,
|
|
numberOfReplicas: 1,
|
|
clusterConfiguration: {
|
|
useReplicas: true
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
export async function waitTillBeenCalled(spy: SinonSpy): Promise<void> {
|
|
const start = process.hrtime.bigint(),
|
|
calls = spy.callCount;
|
|
|
|
do {
|
|
if (process.hrtime.bigint() - start > 1_000_000_000) {
|
|
throw new Error('Waiting for more than 1 second');
|
|
}
|
|
|
|
await promiseTimeout(50);
|
|
} while (spy.callCount === calls);
|
|
}
|