1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-04 15:02:09 +03:00

fix some Z (sorted list) commands, increase commands test coverage

This commit is contained in:
leibale
2021-11-11 18:50:32 -05:00
parent 41423fe8aa
commit ba66892b7c
10 changed files with 61 additions and 28 deletions

View File

@@ -30,7 +30,18 @@ describe('COMMAND INFO', () => {
);
});
testUtils.testWithClient('client.commandInfo', async client => {
assertPingCommand((await client.commandInfo(['PING']))[0]);
}, GLOBAL.SERVERS.OPEN);
describe('client.commandInfo', () => {
testUtils.testWithClient('PING', async client => {
assertPingCommand((await client.commandInfo(['PING']))[0]);
}, GLOBAL.SERVERS.OPEN);
testUtils.testWithClient('DOSE_NOT_EXISTS', async client => {
assert.deepEqual(
await client.commandInfo(['DOSE_NOT_EXISTS']),
[null]
);
}, GLOBAL.SERVERS.OPEN);
});
});

View File

@@ -23,7 +23,7 @@ export function transformArguments(...[ key, value, fieldValue ]: SingleFieldArg
pushMap(args, value);
} else if (Array.isArray(value)) {
pushTuples(args, value);
} else if (typeof value === 'object' && value !== null) {
} else {
pushObject(args, value);
}

View File

@@ -1,15 +1,15 @@
import { transformArgumentNumberInfinity } from './generic-transformers';
import { transformArgumentStringNumberInfinity } from './generic-transformers';
export const FIRST_KEY_INDEX = 1;
export const IS_READ_ONLY = true;
export function transformArguments(key: string, min: number, max: number): Array<string> {
export function transformArguments(key: string, min: string | number, max: string | number): Array<string> {
return [
'ZCOUNT',
key,
transformArgumentNumberInfinity(min),
transformArgumentNumberInfinity(max)
transformArgumentStringNumberInfinity(min),
transformArgumentStringNumberInfinity(max)
];
}

View File

@@ -11,13 +11,6 @@ describe('ZRANGE', () => {
);
});
it('using strings', () => {
assert.deepEqual(
transformArguments('src', '0', '1'),
['ZRANGE', 'src', '0', '1']
);
});
it('with BYSCORE', () => {
assert.deepEqual(
transformArguments('src', 0, 1, {

View File

@@ -1,4 +1,4 @@
import { transformArgumentNumberInfinity } from './generic-transformers';
import { transformArgumentStringNumberInfinity } from './generic-transformers';
export const FIRST_KEY_INDEX = 1;
@@ -17,8 +17,8 @@ export function transformArguments(key: string, min: string | number, max: strin
const args = [
'ZRANGE',
key,
typeof min === 'string' ? min : transformArgumentNumberInfinity(min),
typeof max === 'string' ? max : transformArgumentNumberInfinity(max)
transformArgumentStringNumberInfinity(min),
transformArgumentStringNumberInfinity(max)
];
switch (options?.BY) {

View File

@@ -1,5 +1,5 @@
import { RedisCommandArguments } from '.';
import { transformArgumentNumberInfinity } from './generic-transformers';
import { transformArgumentStringNumberInfinity } from './generic-transformers';
export const FIRST_KEY_INDEX = 1;
@@ -21,8 +21,8 @@ export function transformArguments(
const args = [
'ZRANGEBYLEX',
key,
typeof min === 'string' ? min : transformArgumentNumberInfinity(min),
typeof max === 'string' ? max : transformArgumentNumberInfinity(max)
transformArgumentStringNumberInfinity(min),
transformArgumentStringNumberInfinity(max)
];
if (options?.LIMIT) {

View File

@@ -1,5 +1,5 @@
import { RedisCommandArguments } from '.';
import { transformArgumentNumberInfinity } from './generic-transformers';
import { transformArgumentStringNumberInfinity } from './generic-transformers';
export const FIRST_KEY_INDEX = 1;
@@ -21,8 +21,8 @@ export function transformArguments(
const args = [
'ZRANGEBYSCORE',
key,
typeof min === 'string' ? min : transformArgumentNumberInfinity(min),
typeof max === 'string' ? max : transformArgumentNumberInfinity(max)
transformArgumentStringNumberInfinity(min),
transformArgumentStringNumberInfinity(max)
];
if (options?.LIMIT) {

View File

@@ -1,4 +1,4 @@
import { transformArgumentNumberInfinity } from './generic-transformers';
import { transformArgumentStringNumberInfinity } from './generic-transformers';
export const FIRST_KEY_INDEX = 1;
@@ -12,13 +12,19 @@ interface ZRangeStoreOptions {
WITHSCORES?: true;
}
export function transformArguments(dst: string, src: string, min: number, max: number, options?: ZRangeStoreOptions): Array<string> {
export function transformArguments(
dst: string,
src: string,
min: string | number,
max: string | number,
options?: ZRangeStoreOptions
): Array<string> {
const args = [
'ZRANGESTORE',
dst,
src,
transformArgumentNumberInfinity(min),
transformArgumentNumberInfinity(max)
transformArgumentStringNumberInfinity(min),
transformArgumentStringNumberInfinity(max)
];
switch (options?.BY) {

View File

@@ -7,6 +7,7 @@ import {
transformReplyNumberInfinityArray,
transformReplyNumberInfinityNull,
transformArgumentNumberInfinity,
transformArgumentStringNumberInfinity,
transformReplyTuples,
transformReplyStreamMessages,
transformReplyStreamsMessages,
@@ -175,6 +176,22 @@ describe('Generic Transformers', () => {
});
});
describe('transformArgumentStringNumberInfinity', () => {
it("'0.5'", () => {
assert.equal(
transformArgumentStringNumberInfinity('0.5'),
'0.5'
);
});
it('0.5', () => {
assert.equal(
transformArgumentStringNumberInfinity(0.5),
'0.5'
);
});
});
it('transformReplyTuples', () => {
assert.deepEqual(
transformReplyTuples(['key1', 'value1', 'key2', 'value2']),

View File

@@ -69,6 +69,12 @@ export function transformArgumentNumberInfinity(num: number): string {
}
}
export function transformArgumentStringNumberInfinity(num: string | number): string {
if (typeof num === 'string') return num;
return transformArgumentNumberInfinity(num);
}
export interface TuplesObject {
[field: string]: string;
}