diff --git a/packages/client/lib/client/index.spec.ts b/packages/client/lib/client/index.spec.ts index b608c7c092..a0824e440b 100644 --- a/packages/client/lib/client/index.spec.ts +++ b/packages/client/lib/client/index.spec.ts @@ -607,11 +607,41 @@ describe('Client', () => { } }); - testUtils.testWithClient('executeIsolated', async client => { - const id = await client.clientId(), - isolatedId = await client.executeIsolated(isolatedClient => isolatedClient.clientId()); - assert.ok(id !== isolatedId); - }, GLOBAL.SERVERS.OPEN); + describe('isolationPool', () => { + testUtils.testWithClient('executeIsolated', async client => { + const id = await client.clientId(), + isolatedId = await client.executeIsolated(isolatedClient => isolatedClient.clientId()); + assert.ok(id !== isolatedId); + }, GLOBAL.SERVERS.OPEN); + + testUtils.testWithClient('should be able to use pool even before connect', async client => { + await client.executeIsolated(() => Promise.resolve()); + // make sure to destroy isolation pool + await client.connect(); + await client.disconnect(); + }, { + ...GLOBAL.SERVERS.OPEN, + disableClientSetup: true + }); + + testUtils.testWithClient('should work after reconnect (#2406)', async client => { + await client.disconnect(); + await client.connect(); + await client.executeIsolated(() => Promise.resolve()); + }, GLOBAL.SERVERS.OPEN); + + testUtils.testWithClient('should throw ClientClosedError after disconnect', async client => { + await client.connect(); + await client.disconnect(); + await assert.rejects( + client.executeIsolated(() => Promise.resolve()), + ClientClosedError + ); + }, { + ...GLOBAL.SERVERS.OPEN, + disableClientSetup: true + }); + }); async function killClient< M extends RedisModules, @@ -731,7 +761,7 @@ describe('Client', () => { members.map(member => [member.value, member.score]).sort(sort) ); }, GLOBAL.SERVERS.OPEN); - + describe('PubSub', () => { testUtils.testWithClient('should be able to publish and subscribe to messages', async publisher => { function assertStringListener(message: string, channel: string) { diff --git a/packages/time-series/lib/commands/index.ts b/packages/time-series/lib/commands/index.ts index 8e36e21082..0b0b56d263 100644 --- a/packages/time-series/lib/commands/index.ts +++ b/packages/time-series/lib/commands/index.ts @@ -128,7 +128,7 @@ export function transformTimestampArgument(timestamp: Timestamp): string { } export function pushRetentionArgument(args: RedisCommandArguments, retention?: number): RedisCommandArguments { - if (retention) { + if (retention !== undefined) { args.push( 'RETENTION', retention.toString() @@ -144,7 +144,7 @@ export enum TimeSeriesEncoding { } export function pushEncodingArgument(args: RedisCommandArguments, encoding?: TimeSeriesEncoding): RedisCommandArguments { - if (encoding) { + if (encoding !== undefined) { args.push( 'ENCODING', encoding @@ -155,7 +155,7 @@ export function pushEncodingArgument(args: RedisCommandArguments, encoding?: Tim } export function pushChunkSizeArgument(args: RedisCommandArguments, chunkSize?: number): RedisCommandArguments { - if (chunkSize) { + if (chunkSize !== undefined) { args.push( 'CHUNK_SIZE', chunkSize.toString() @@ -166,7 +166,7 @@ export function pushChunkSizeArgument(args: RedisCommandArguments, chunkSize?: n } export function pushDuplicatePolicy(args: RedisCommandArguments, duplicatePolicy?: TimeSeriesDuplicatePolicies): RedisCommandArguments { - if (duplicatePolicy) { + if (duplicatePolicy !== undefined) { args.push( 'DUPLICATE_POLICY', duplicatePolicy