From 329885b4ae3167d0092e856095b726e2adf89c97 Mon Sep 17 00:00:00 2001 From: Joe Price Date: Wed, 6 Apr 2022 08:43:32 -0700 Subject: [PATCH] Flatten array arguments in legacyMode multi commands (#2064) --- packages/client/lib/client/index.spec.ts | 14 ++++++++++++++ packages/client/lib/client/multi-command.ts | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/client/lib/client/index.spec.ts b/packages/client/lib/client/index.spec.ts index 308ce1e9c4..c48505c758 100644 --- a/packages/client/lib/client/index.spec.ts +++ b/packages/client/lib/client/index.spec.ts @@ -294,6 +294,20 @@ describe('Client', () => { } } }); + + testUtils.testWithClient('client.multi.{command}.exec should flatten array arguments', async client => { + assert.deepEqual( + await client.multi() + .sAdd('a', ['b', 'c']) + .v4.exec(), + [2]) + }, { + ...GLOBAL.SERVERS.OPEN, + clientOptions: { + legacyMode: true + } + }); + }); describe('events', () => { diff --git a/packages/client/lib/client/multi-command.ts b/packages/client/lib/client/multi-command.ts index cce0b515f1..7b28637d67 100644 --- a/packages/client/lib/client/multi-command.ts +++ b/packages/client/lib/client/multi-command.ts @@ -87,7 +87,7 @@ export default class RedisClientMultiCommand { #defineLegacyCommand(name: string): void { this.v4[name] = (this as any)[name].bind(this.v4); (this as any)[name] = - (...args: Array): void => (this as any).addCommand(name, args); + (...args: Array): void => (this as any).addCommand(name, ...args); } commandsExecutor(command: RedisCommand, args: Array): this {