You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Support RedisTimeSeries (#1757)
* Implement missing commands and add test * Update DECRBY.spec.ts * Small changes * clean code * Update MGET_WITHLABELS.ts Use map in transformReply Co-authored-by: leibale <leibale1998@gmail.com>
This commit is contained in:
106
packages/time-series/lib/commands/REVRANGE.spec.ts
Normal file
106
packages/time-series/lib/commands/REVRANGE.spec.ts
Normal file
@@ -0,0 +1,106 @@
|
||||
import { strict as assert } from 'assert';
|
||||
import testUtils, { GLOBAL } from '../test-utils';
|
||||
import { transformArguments } from './REVRANGE';
|
||||
import { TimeSeriesAggregationType } from '.';
|
||||
|
||||
describe('REVRANGE', () => {
|
||||
describe('transformArguments', () => {
|
||||
it('without options', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', '-', '+'),
|
||||
['TS.REVRANGE', 'key', '-', '+']
|
||||
);
|
||||
});
|
||||
|
||||
it('with FILTER_BY_TS', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', '-', '+', {
|
||||
FILTER_BY_TS: [0]
|
||||
}),
|
||||
['TS.REVRANGE', 'key', '-', '+', 'FILTER_BY_TS', '0']
|
||||
);
|
||||
});
|
||||
|
||||
it('with FILTER_BY_VALUE', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', '-', '+', {
|
||||
FILTER_BY_VALUE: {
|
||||
min: 1,
|
||||
max: 2
|
||||
}
|
||||
}),
|
||||
['TS.REVRANGE', 'key', '-', '+', 'FILTER_BY_VALUE', '1', '2']
|
||||
);
|
||||
});
|
||||
|
||||
it('with COUNT', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', '-', '+', {
|
||||
COUNT: 1
|
||||
}),
|
||||
['TS.REVRANGE', 'key', '-', '+', 'COUNT', '1']
|
||||
);
|
||||
});
|
||||
|
||||
it('with ALIGN', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', '-', '+', {
|
||||
ALIGN: '-'
|
||||
}),
|
||||
['TS.REVRANGE', 'key', '-', '+', 'ALIGN', '-']
|
||||
);
|
||||
});
|
||||
|
||||
it('with AGGREGATION', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', '-', '+', {
|
||||
AGGREGATION: {
|
||||
type: TimeSeriesAggregationType.AVARAGE,
|
||||
timeBucket: 1
|
||||
}
|
||||
}),
|
||||
['TS.REVRANGE', 'key', '-', '+', 'AGGREGATION', 'avg', '1']
|
||||
);
|
||||
});
|
||||
|
||||
it('with FILTER_BY_TS, FILTER_BY_VALUE, COUNT, ALIGN, AGGREGATION', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', '-', '+', {
|
||||
FILTER_BY_TS: [0],
|
||||
FILTER_BY_VALUE: {
|
||||
min: 1,
|
||||
max: 2
|
||||
},
|
||||
COUNT: 1,
|
||||
ALIGN: '-',
|
||||
AGGREGATION: {
|
||||
type: TimeSeriesAggregationType.AVARAGE,
|
||||
timeBucket: 1
|
||||
}
|
||||
}),
|
||||
[
|
||||
'TS.REVRANGE', 'key', '-', '+', 'FILTER_BY_TS', '0', 'FILTER_BY_VALUE',
|
||||
'1', '2', 'COUNT', '1', 'ALIGN', '-', 'AGGREGATION', 'avg', '1'
|
||||
]
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
testUtils.testWithClient('client.ts.revRange', async client => {
|
||||
await Promise.all([
|
||||
client.ts.add('key', 0, 1),
|
||||
client.ts.add('key', 1, 2)
|
||||
]);
|
||||
|
||||
assert.deepEqual(
|
||||
await client.ts.revRange('key', '-', '+'),
|
||||
[{
|
||||
timestamp: 1,
|
||||
value: 2
|
||||
}, {
|
||||
timestamp: 0,
|
||||
value: 1
|
||||
}]
|
||||
);
|
||||
}, GLOBAL.SERVERS.OPEN);
|
||||
});
|
Reference in New Issue
Block a user