You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-12-15 23:55:38 +03:00
V5 bringing RESP3, Sentinel and TypeMapping to node-redis
RESP3 Support - Some commands responses in RESP3 aren't stable yet and therefore return an "untyped" ReplyUnion. Sentinel TypeMapping Correctly types Multi commands Note: some API changes to be further documented in v4-to-v5.md
This commit is contained in:
@@ -1,72 +1,39 @@
|
||||
import { strict as assert } from 'assert';
|
||||
import { strict as assert } from 'node:assert';
|
||||
import testUtils, { GLOBAL } from '../test-utils';
|
||||
import { transformArguments, transformReply } from './XINFO_STREAM';
|
||||
import XINFO_STREAM from './XINFO_STREAM';
|
||||
|
||||
describe('XINFO STREAM', () => {
|
||||
it('transformArguments', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key'),
|
||||
['XINFO', 'STREAM', 'key']
|
||||
);
|
||||
it('transformArguments', () => {
|
||||
assert.deepEqual(
|
||||
XINFO_STREAM.transformArguments('key'),
|
||||
['XINFO', 'STREAM', 'key']
|
||||
);
|
||||
});
|
||||
|
||||
testUtils.testAll('xInfoStream', async client => {
|
||||
const [, reply] = await Promise.all([
|
||||
client.xGroupCreate('key', 'group', '$', {
|
||||
MKSTREAM: true
|
||||
}),
|
||||
client.xInfoStream('key')
|
||||
]);
|
||||
|
||||
assert.deepEqual(reply, {
|
||||
length: 0,
|
||||
'radix-tree-keys': 0,
|
||||
'radix-tree-nodes': 1,
|
||||
'last-generated-id': '0-0',
|
||||
...testUtils.isVersionGreaterThan([7, 0]) && {
|
||||
'max-deleted-entry-id': '0-0',
|
||||
'entries-added': 0,
|
||||
'recorded-first-entry-id': '0-0',
|
||||
},
|
||||
groups: 1,
|
||||
'first-entry': null,
|
||||
'last-entry': null
|
||||
});
|
||||
|
||||
it('transformReply', () => {
|
||||
assert.deepEqual(
|
||||
transformReply([
|
||||
'length', 2,
|
||||
'radix-tree-keys', 1,
|
||||
'radix-tree-nodes', 2,
|
||||
'last-generated-id', '1538385846314-0',
|
||||
'groups', 2,
|
||||
'first-entry', ['1538385820729-0', ['foo', 'bar']],
|
||||
'last-entry', ['1538385846314-0', ['field', 'value']]
|
||||
]),
|
||||
{
|
||||
length: 2,
|
||||
radixTreeKeys: 1,
|
||||
radixTreeNodes: 2,
|
||||
groups: 2,
|
||||
lastGeneratedId: '1538385846314-0',
|
||||
firstEntry: {
|
||||
id: '1538385820729-0',
|
||||
message: Object.create(null, {
|
||||
foo: {
|
||||
value: 'bar',
|
||||
configurable: true,
|
||||
enumerable: true
|
||||
}
|
||||
})
|
||||
},
|
||||
lastEntry: {
|
||||
id: '1538385846314-0',
|
||||
message: Object.create(null, {
|
||||
field: {
|
||||
value: 'value',
|
||||
configurable: true,
|
||||
enumerable: true
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
testUtils.testWithClient('client.xInfoStream', async client => {
|
||||
await client.xGroupCreate('key', 'group', '$', {
|
||||
MKSTREAM: true
|
||||
});
|
||||
|
||||
assert.deepEqual(
|
||||
await client.xInfoStream('key'),
|
||||
{
|
||||
length: 0,
|
||||
radixTreeKeys: 0,
|
||||
radixTreeNodes: 1,
|
||||
groups: 1,
|
||||
lastGeneratedId: '0-0',
|
||||
firstEntry: null,
|
||||
lastEntry: null
|
||||
}
|
||||
);
|
||||
}, GLOBAL.SERVERS.OPEN);
|
||||
}, {
|
||||
client: GLOBAL.SERVERS.OPEN,
|
||||
cluster: GLOBAL.CLUSTERS.OPEN
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user