From 65c691fd756b72d34cf3c8331e584e9cec90f879 Mon Sep 17 00:00:00 2001 From: dovi Date: Wed, 3 May 2023 18:23:45 -0400 Subject: [PATCH] fix SMOVE --- docs/v4-to-v5.md | 1 + packages/client/lib/commands/SMOVE.spec.ts | 37 ++++++++++++---------- packages/client/lib/commands/SMOVE.ts | 25 ++++++++------- packages/client/lib/commands/index.ts | 3 ++ todo.md | 1 - 5 files changed, 37 insertions(+), 30 deletions(-) diff --git a/docs/v4-to-v5.md b/docs/v4-to-v5.md index 481bd95c69..29d23f4929 100644 --- a/docs/v4-to-v5.md +++ b/docs/v4-to-v5.md @@ -85,6 +85,7 @@ Some command arguments/replies have changed to align more closely to data types - `SCRIPT EXISTS`: `Array` -> `Array` [^boolean-to-number] - `SISMEMBER`: `boolean` -> `number` [^boolean-to-number] - `SMISMEMBER`: `Array` -> `Array` [^boolean-to-number] +- `SMOVE`: `boolean` -> `number` [^boolean-to-number] [^enum-to-constants]: TODO diff --git a/packages/client/lib/commands/SMOVE.spec.ts b/packages/client/lib/commands/SMOVE.spec.ts index d3a9ca6eda..60007ceffd 100644 --- a/packages/client/lib/commands/SMOVE.spec.ts +++ b/packages/client/lib/commands/SMOVE.spec.ts @@ -1,19 +1,22 @@ -// import { strict as assert } from 'assert'; -// import testUtils, { GLOBAL } from '../test-utils'; -// import { transformArguments } from './SMOVE'; +import { strict as assert } from 'assert'; +import testUtils, { GLOBAL } from '../test-utils'; +import SMOVE from './SMOVE'; -// describe('SMOVE', () => { -// it('transformArguments', () => { -// assert.deepEqual( -// transformArguments('source', 'destination', 'member'), -// ['SMOVE', 'source', 'destination', 'member'] -// ); -// }); +describe('SMOVE', () => { + it('transformArguments', () => { + assert.deepEqual( + SMOVE.transformArguments('source', 'destination', 'member'), + ['SMOVE', 'source', 'destination', 'member'] + ); + }); -// testUtils.testWithClient('client.sMove', async client => { -// assert.equal( -// await client.sMove('source', 'destination', 'member'), -// false -// ); -// }, GLOBAL.SERVERS.OPEN); -// }); + testUtils.testAll('sMove', async client => { + assert.equal( + await client.sMove('{tag}source', '{tag}destination', 'member'), + 0 + ); + }, { + client: GLOBAL.SERVERS.OPEN, + cluster: GLOBAL.CLUSTERS.OPEN + }); +}); diff --git a/packages/client/lib/commands/SMOVE.ts b/packages/client/lib/commands/SMOVE.ts index d6759c6212..183b363fb9 100644 --- a/packages/client/lib/commands/SMOVE.ts +++ b/packages/client/lib/commands/SMOVE.ts @@ -1,13 +1,14 @@ -// import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { RedisArgument, NumberReply, Command } from '../RESP/types'; -// export const FIRST_KEY_INDEX = 1; - -// export function transformArguments( -// source: RedisCommandArgument, -// destination: RedisCommandArgument, -// member: RedisCommandArgument -// ): RedisCommandArguments { -// return ['SMOVE', source, destination, member]; -// } - -// export { transformBooleanReply as transformReply } from './generic-transformers'; +export default { + FIRST_KEY_INDEX: 1, + IS_READ_ONLY: false, + transformArguments( + source: RedisArgument, + destination: RedisArgument, + member: RedisArgument + ) { + return ['SMOVE', source, destination, member]; + }, + transformReply: undefined as unknown as () => NumberReply +} as const satisfies Command; diff --git a/packages/client/lib/commands/index.ts b/packages/client/lib/commands/index.ts index e3985f82f8..143d9ce3ab 100644 --- a/packages/client/lib/commands/index.ts +++ b/packages/client/lib/commands/index.ts @@ -139,6 +139,7 @@ import SINTERSTORE from './SINTERSTORE'; import SISMEMBER from './SISMEMBER'; import SMEMBERS from './SMEMBERS'; import SMISMEMBER from './SMISMEMBER'; +import SMOVE from './SMOVE'; import SORT_RO from './SORT_RO'; import SORT_STORE from './SORT_STORE'; import SORT from './SORT'; @@ -479,6 +480,8 @@ export default { sMembers: SMEMBERS, SMISMEMBER, smIsMember: SMISMEMBER, + SMOVE, + sMove: SMOVE, SORT_RO, sortRo: SORT_RO, SORT_STORE, diff --git a/todo.md b/todo.md index c969748d18..3d7d0b3674 100644 --- a/todo.md +++ b/todo.md @@ -11,7 +11,6 @@ # waiting List categoreis -- List - Set - Bitmap