Skip to content

Commit

Permalink
fix redis#2398 - fix v4 interface in legacyMode
Browse files Browse the repository at this point in the history
  • Loading branch information
leibale committed Jan 30, 2023
1 parent bb9a024 commit ca9a567
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
14 changes: 13 additions & 1 deletion packages/client/lib/client/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { strict as assert } from 'assert';
import testUtils, { GLOBAL, waitTillBeenCalled } from '../test-utils';
import RedisClient, { RedisClientType } from '.';
import { RedisClientMultiCommandType } from './multi-command';
import { RedisCommandArguments, RedisCommandRawReply, RedisModules, RedisFunctions, RedisScripts } from '../commands';
import { RedisCommandRawReply, RedisModules, RedisFunctions, RedisScripts } from '../commands';
import { AbortError, ClientClosedError, ClientOfflineError, ConnectionTimeoutError, DisconnectsClientError, SocketClosedUnexpectedlyError, WatchError } from '../errors';
import { defineScript } from '../lua-script';
import { spy } from 'sinon';
Expand Down Expand Up @@ -199,6 +199,18 @@ describe('Client', () => {
}
});

testUtils.testWithClient('client.v4.{command} should return a promise', async client => {
assert.equal(
await client.v4.ping(),
'PONG'
);
}, {
...GLOBAL.SERVERS.OPEN,
clientOptions: {
legacyMode: true
}
});

testUtils.testWithClient('client.{command} should accept vardict arguments', async client => {
assert.equal(
await promisify(client.set).call(client, 'a', 'b'),
Expand Down
2 changes: 1 addition & 1 deletion packages/client/lib/client/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ export default class RedisClient<

for (const [ name, command ] of Object.entries(COMMANDS as RedisCommands)) {
this.#defineLegacyCommand(name, command);
(this as any)[name.toLowerCase()] = (this as any)[name];
(this as any)[name.toLowerCase()] ??= (this as any)[name];
}

// hard coded commands
Expand Down
2 changes: 1 addition & 1 deletion packages/client/lib/client/multi-command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ export default class RedisClientMultiCommand {

for (const [ name, command ] of Object.entries(COMMANDS as RedisCommands)) {
this.#defineLegacyCommand(name, command);
(this as any)[name.toLowerCase()] = (this as any)[name];
(this as any)[name.toLowerCase()] ??= (this as any)[name];
}
}

Expand Down

0 comments on commit ca9a567

Please sign in to comment.