diff --git a/packages/client/lib/commands/ZRANGEBYSCORE.spec.ts b/packages/client/lib/commands/ZRANGEBYSCORE.spec.ts index 1d064c37c1..2ff55676b8 100644 --- a/packages/client/lib/commands/ZRANGEBYSCORE.spec.ts +++ b/packages/client/lib/commands/ZRANGEBYSCORE.spec.ts @@ -1,33 +1,36 @@ -// import { strict as assert } from 'assert'; -// import testUtils, { GLOBAL } from '../test-utils'; -// import { transformArguments } from './ZRANGEBYSCORE'; +import { strict as assert } from 'assert'; +import testUtils, { GLOBAL } from '../test-utils'; +import ZRANGEBYSCORE from './ZRANGEBYSCORE'; -// describe('ZRANGEBYSCORE', () => { -// describe('transformArguments', () => { -// it('simple', () => { -// assert.deepEqual( -// transformArguments('src', 0, 1), -// ['ZRANGEBYSCORE', 'src', '0', '1'] -// ); -// }); +describe('ZRANGEBYSCORE', () => { + describe('transformArguments', () => { + it('simple', () => { + assert.deepEqual( + ZRANGEBYSCORE.transformArguments('src', 0, 1), + ['ZRANGEBYSCORE', 'src', '0', '1'] + ); + }); -// it('with LIMIT', () => { -// assert.deepEqual( -// transformArguments('src', 0, 1, { -// LIMIT: { -// offset: 0, -// count: 1 -// } -// }), -// ['ZRANGEBYSCORE', 'src', '0', '1', 'LIMIT', '0', '1'] -// ); -// }); -// }); + it('with LIMIT', () => { + assert.deepEqual( + ZRANGEBYSCORE.transformArguments('src', 0, 1, { + LIMIT: { + offset: 0, + count: 1 + } + }), + ['ZRANGEBYSCORE', 'src', '0', '1', 'LIMIT', '0', '1'] + ); + }); + }); -// testUtils.testWithClient('client.zRangeByScore', async client => { -// assert.deepEqual( -// await client.zRangeByScore('src', 0, 1), -// [] -// ); -// }, GLOBAL.SERVERS.OPEN); -// }); + testUtils.testAll('zRangeByScore', async client => { + assert.deepEqual( + await client.zRangeByScore('src', 0, 1), + [] + ); + }, { + client: GLOBAL.SERVERS.OPEN, + cluster: GLOBAL.CLUSTERS.OPEN + }); +}); diff --git a/packages/client/lib/commands/ZRANGEBYSCORE.ts b/packages/client/lib/commands/ZRANGEBYSCORE.ts index 562dd6b5d0..e54c96380d 100644 --- a/packages/client/lib/commands/ZRANGEBYSCORE.ts +++ b/packages/client/lib/commands/ZRANGEBYSCORE.ts @@ -1,35 +1,36 @@ -// import { RedisCommandArgument, RedisCommandArguments } from '.'; -// import { transformStringDoubleArgument } from './generic-transformers'; +import { RedisArgument, ArrayReply, BlobStringReply, Command } from '../RESP/types'; +import { transformStringDoubleArgument } from './generic-transformers'; -// export const FIRST_KEY_INDEX = 1; +export interface ZRangeByScoreOptions { + LIMIT?: { + offset: number; + count: number; + }; +} -// export const IS_READ_ONLY = true; +export declare function transformReply(): Array; -// export interface ZRangeByScoreOptions { -// LIMIT?: { -// offset: number; -// count: number; -// }; -// } +export default { + FIRST_KEY_INDEX: 1, + IS_READ_ONLY: true, + transformArguments( + key: RedisArgument, + min: string | number, + max: string | number, + options?: ZRangeByScoreOptions + ) { + const args = [ + 'ZRANGEBYSCORE', + key, + transformStringDoubleArgument(min), + transformStringDoubleArgument(max) + ]; -// export function transformArguments( -// key: RedisCommandArgument, -// min: string | number, -// max: string | number, -// options?: ZRangeByScoreOptions -// ): RedisCommandArguments { -// const args = [ -// 'ZRANGEBYSCORE', -// key, -// transformStringDoubleArgument(min), -// transformStringDoubleArgument(max) -// ]; + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } -// if (options?.LIMIT) { -// args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); -// } - -// return args; -// } - -// export declare function transformReply(): Array; + return args; + }, + transformReply: undefined as unknown as () => ArrayReply +} as const satisfies Command; diff --git a/packages/client/lib/commands/index.ts b/packages/client/lib/commands/index.ts index c5c58f2877..818bc4ef17 100644 --- a/packages/client/lib/commands/index.ts +++ b/packages/client/lib/commands/index.ts @@ -165,6 +165,7 @@ import ZRANDMEMBER_COUNT_WITHSCORES from './ZRANDMEMBER_COUNT_WITHSCORES'; import ZRANDMEMBER_COUNT from './ZRANDMEMBER_COUNT'; import ZRANDMEMBER from './ZRANDMEMBER'; import ZRANGE from './ZRANGE'; +import ZRANGEBYSCORE from './ZRANGEBYSCORE'; import ZRANK from './ZRANK'; import ZREM from './ZREM'; import ZREVRANK from './ZREVRANK'; @@ -510,6 +511,8 @@ export default { zRandMember: ZRANDMEMBER, ZRANGE, zRange: ZRANGE, + ZRANGEBYSCORE, + zRangeByScore: ZRANGEBYSCORE, ZRANK, zRank: ZRANK, ZREM, diff --git a/todo.md b/todo.md index 6a7744fc3f..cd08196a65 100644 --- a/todo.md +++ b/todo.md @@ -18,7 +18,6 @@ - `ZREMRANGEBYLEX.ts` - `ZREMRANGEBYRANK.ts` - `ZREMRANGEBYSCORE.ts` -- `ZUNIONSTORE.ts` # fot leiba - `BZMPOP.ts`