You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
fix some Z (sorted list) commands, increase commands test coverage
This commit is contained in:
@@ -30,7 +30,18 @@ describe('COMMAND INFO', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
testUtils.testWithClient('client.commandInfo', async client => {
|
describe('client.commandInfo', () => {
|
||||||
assertPingCommand((await client.commandInfo(['PING']))[0]);
|
testUtils.testWithClient('PING', async client => {
|
||||||
}, GLOBAL.SERVERS.OPEN);
|
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);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@@ -23,7 +23,7 @@ export function transformArguments(...[ key, value, fieldValue ]: SingleFieldArg
|
|||||||
pushMap(args, value);
|
pushMap(args, value);
|
||||||
} else if (Array.isArray(value)) {
|
} else if (Array.isArray(value)) {
|
||||||
pushTuples(args, value);
|
pushTuples(args, value);
|
||||||
} else if (typeof value === 'object' && value !== null) {
|
} else {
|
||||||
pushObject(args, value);
|
pushObject(args, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,15 +1,15 @@
|
|||||||
import { transformArgumentNumberInfinity } from './generic-transformers';
|
import { transformArgumentStringNumberInfinity } from './generic-transformers';
|
||||||
|
|
||||||
export const FIRST_KEY_INDEX = 1;
|
export const FIRST_KEY_INDEX = 1;
|
||||||
|
|
||||||
export const IS_READ_ONLY = true;
|
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 [
|
return [
|
||||||
'ZCOUNT',
|
'ZCOUNT',
|
||||||
key,
|
key,
|
||||||
transformArgumentNumberInfinity(min),
|
transformArgumentStringNumberInfinity(min),
|
||||||
transformArgumentNumberInfinity(max)
|
transformArgumentStringNumberInfinity(max)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11,13 +11,6 @@ describe('ZRANGE', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('using strings', () => {
|
|
||||||
assert.deepEqual(
|
|
||||||
transformArguments('src', '0', '1'),
|
|
||||||
['ZRANGE', 'src', '0', '1']
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('with BYSCORE', () => {
|
it('with BYSCORE', () => {
|
||||||
assert.deepEqual(
|
assert.deepEqual(
|
||||||
transformArguments('src', 0, 1, {
|
transformArguments('src', 0, 1, {
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { transformArgumentNumberInfinity } from './generic-transformers';
|
import { transformArgumentStringNumberInfinity } from './generic-transformers';
|
||||||
|
|
||||||
export const FIRST_KEY_INDEX = 1;
|
export const FIRST_KEY_INDEX = 1;
|
||||||
|
|
||||||
@@ -17,8 +17,8 @@ export function transformArguments(key: string, min: string | number, max: strin
|
|||||||
const args = [
|
const args = [
|
||||||
'ZRANGE',
|
'ZRANGE',
|
||||||
key,
|
key,
|
||||||
typeof min === 'string' ? min : transformArgumentNumberInfinity(min),
|
transformArgumentStringNumberInfinity(min),
|
||||||
typeof max === 'string' ? max : transformArgumentNumberInfinity(max)
|
transformArgumentStringNumberInfinity(max)
|
||||||
];
|
];
|
||||||
|
|
||||||
switch (options?.BY) {
|
switch (options?.BY) {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { RedisCommandArguments } from '.';
|
import { RedisCommandArguments } from '.';
|
||||||
import { transformArgumentNumberInfinity } from './generic-transformers';
|
import { transformArgumentStringNumberInfinity } from './generic-transformers';
|
||||||
|
|
||||||
export const FIRST_KEY_INDEX = 1;
|
export const FIRST_KEY_INDEX = 1;
|
||||||
|
|
||||||
@@ -21,8 +21,8 @@ export function transformArguments(
|
|||||||
const args = [
|
const args = [
|
||||||
'ZRANGEBYLEX',
|
'ZRANGEBYLEX',
|
||||||
key,
|
key,
|
||||||
typeof min === 'string' ? min : transformArgumentNumberInfinity(min),
|
transformArgumentStringNumberInfinity(min),
|
||||||
typeof max === 'string' ? max : transformArgumentNumberInfinity(max)
|
transformArgumentStringNumberInfinity(max)
|
||||||
];
|
];
|
||||||
|
|
||||||
if (options?.LIMIT) {
|
if (options?.LIMIT) {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { RedisCommandArguments } from '.';
|
import { RedisCommandArguments } from '.';
|
||||||
import { transformArgumentNumberInfinity } from './generic-transformers';
|
import { transformArgumentStringNumberInfinity } from './generic-transformers';
|
||||||
|
|
||||||
export const FIRST_KEY_INDEX = 1;
|
export const FIRST_KEY_INDEX = 1;
|
||||||
|
|
||||||
@@ -21,8 +21,8 @@ export function transformArguments(
|
|||||||
const args = [
|
const args = [
|
||||||
'ZRANGEBYSCORE',
|
'ZRANGEBYSCORE',
|
||||||
key,
|
key,
|
||||||
typeof min === 'string' ? min : transformArgumentNumberInfinity(min),
|
transformArgumentStringNumberInfinity(min),
|
||||||
typeof max === 'string' ? max : transformArgumentNumberInfinity(max)
|
transformArgumentStringNumberInfinity(max)
|
||||||
];
|
];
|
||||||
|
|
||||||
if (options?.LIMIT) {
|
if (options?.LIMIT) {
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { transformArgumentNumberInfinity } from './generic-transformers';
|
import { transformArgumentStringNumberInfinity } from './generic-transformers';
|
||||||
|
|
||||||
export const FIRST_KEY_INDEX = 1;
|
export const FIRST_KEY_INDEX = 1;
|
||||||
|
|
||||||
@@ -12,13 +12,19 @@ interface ZRangeStoreOptions {
|
|||||||
WITHSCORES?: true;
|
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 = [
|
const args = [
|
||||||
'ZRANGESTORE',
|
'ZRANGESTORE',
|
||||||
dst,
|
dst,
|
||||||
src,
|
src,
|
||||||
transformArgumentNumberInfinity(min),
|
transformArgumentStringNumberInfinity(min),
|
||||||
transformArgumentNumberInfinity(max)
|
transformArgumentStringNumberInfinity(max)
|
||||||
];
|
];
|
||||||
|
|
||||||
switch (options?.BY) {
|
switch (options?.BY) {
|
||||||
|
@@ -7,6 +7,7 @@ import {
|
|||||||
transformReplyNumberInfinityArray,
|
transformReplyNumberInfinityArray,
|
||||||
transformReplyNumberInfinityNull,
|
transformReplyNumberInfinityNull,
|
||||||
transformArgumentNumberInfinity,
|
transformArgumentNumberInfinity,
|
||||||
|
transformArgumentStringNumberInfinity,
|
||||||
transformReplyTuples,
|
transformReplyTuples,
|
||||||
transformReplyStreamMessages,
|
transformReplyStreamMessages,
|
||||||
transformReplyStreamsMessages,
|
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', () => {
|
it('transformReplyTuples', () => {
|
||||||
assert.deepEqual(
|
assert.deepEqual(
|
||||||
transformReplyTuples(['key1', 'value1', 'key2', 'value2']),
|
transformReplyTuples(['key1', 'value1', 'key2', 'value2']),
|
||||||
|
@@ -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 {
|
export interface TuplesObject {
|
||||||
[field: string]: string;
|
[field: string]: string;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user