diff --git a/packages/client/lib/commands/SPOP.spec.ts b/packages/client/lib/commands/SPOP.spec.ts index f435134416..542e1ba3fc 100644 --- a/packages/client/lib/commands/SPOP.spec.ts +++ b/packages/client/lib/commands/SPOP.spec.ts @@ -1,12 +1,14 @@ import { strict as assert } from 'node:assert'; import testUtils, { GLOBAL } from '../test-utils'; import SPOP from './SPOP'; -import { parseArgs } from './generic-transformers'; +import { BasicCommandParser } from '../client/parser'; describe('SPOP', () => { it('transformArguments', () => { + const parser = new BasicCommandParser(); + SPOP.parseCommand(parser, 'key'); assert.deepEqual( - parseArgs(SPOP, 'key'), + parser.redisArgs, ['SPOP', 'key'] ); }); @@ -16,6 +18,19 @@ describe('SPOP', () => { await client.sPop('key'), null ); + + await client.sAdd('key', 'member'); + + assert.equal( + await client.sPop('key'), + 'member' + ); + + assert.equal( + await client.sPop('key'), + null + ); + }, { client: GLOBAL.SERVERS.OPEN, cluster: GLOBAL.CLUSTERS.OPEN diff --git a/packages/client/lib/commands/SPOP_COUNT.spec.ts b/packages/client/lib/commands/SPOP_COUNT.spec.ts index 935ff43780..9720101f31 100644 --- a/packages/client/lib/commands/SPOP_COUNT.spec.ts +++ b/packages/client/lib/commands/SPOP_COUNT.spec.ts @@ -1,21 +1,36 @@ import { strict as assert } from 'node:assert'; import testUtils, { GLOBAL } from '../test-utils'; import SPOP_COUNT from './SPOP_COUNT'; -import { parseArgs } from './generic-transformers'; +import { BasicCommandParser } from '../client/parser'; describe('SPOP_COUNT', () => { it('transformArguments', () => { + const parser = new BasicCommandParser(); + SPOP_COUNT.parseCommand(parser, 'key', 1); assert.deepEqual( - parseArgs(SPOP_COUNT, 'key', 1), + parser.redisArgs, ['SPOP', 'key', '1'] ); }); testUtils.testAll('sPopCount', async client => { + assert.deepEqual( await client.sPopCount('key', 1), [] ); + + await Promise.all([ + client.sAdd('key', 'member'), + client.sAdd('key', 'member2'), + client.sAdd('key', 'member3') + ]) + + assert.deepEqual( + (await client.sPopCount('key', 3)).length, + 3 + ); + }, { client: GLOBAL.SERVERS.OPEN, cluster: GLOBAL.CLUSTERS.OPEN diff --git a/packages/client/lib/commands/SPOP_COUNT.ts b/packages/client/lib/commands/SPOP_COUNT.ts index 1191f07cff..a285e6f5c4 100644 --- a/packages/client/lib/commands/SPOP_COUNT.ts +++ b/packages/client/lib/commands/SPOP_COUNT.ts @@ -1,5 +1,5 @@ import { CommandParser } from '../client/parser'; -import { RedisArgument, BlobStringReply, NullReply, Command } from '../RESP/types'; +import { RedisArgument, Command, ArrayReply } from '../RESP/types'; export default { IS_READ_ONLY: false, @@ -16,5 +16,5 @@ export default { parser.pushKey(key); parser.push(count.toString()); }, - transformReply: undefined as unknown as () => BlobStringReply | NullReply + transformReply: undefined as unknown as () => ArrayReply } as const satisfies Command;