You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
* - Added RESTORE functionality * add FIRST_KEY_INDEX, fix tests, clean example, add example to examples table * use returnBuffers in test --------- Co-authored-by: Leibale Eidelman <me@leibale.com>
This commit is contained in:
74
packages/client/lib/commands/RESTORE.spec.ts
Normal file
74
packages/client/lib/commands/RESTORE.spec.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
import { strict as assert } from 'assert';
|
||||
import testUtils, { GLOBAL } from '../test-utils';
|
||||
import { transformArguments } from './RESTORE';
|
||||
|
||||
describe('RESTORE', () => {
|
||||
describe('transformArguments', () => {
|
||||
it('simple', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', 0, 'value'),
|
||||
['RESTORE', 'key', '0', 'value']
|
||||
);
|
||||
});
|
||||
|
||||
it('with REPLACE', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', 0, 'value', {
|
||||
REPLACE: true
|
||||
}),
|
||||
['RESTORE', 'key', '0', 'value', 'REPLACE']
|
||||
);
|
||||
});
|
||||
|
||||
it('with ABSTTL', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', 0, 'value', {
|
||||
ABSTTL: true
|
||||
}),
|
||||
['RESTORE', 'key', '0', 'value', 'ABSTTL']
|
||||
);
|
||||
});
|
||||
|
||||
it('with IDLETIME', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', 0, 'value', {
|
||||
IDLETIME: 1
|
||||
}),
|
||||
['RESTORE', 'key', '0', 'value', 'IDLETIME', '1']
|
||||
);
|
||||
});
|
||||
|
||||
it('with FREQ', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', 0, 'value', {
|
||||
FREQ: 1
|
||||
}),
|
||||
['RESTORE', 'key', '0', 'value', 'FREQ', '1']
|
||||
);
|
||||
});
|
||||
|
||||
it('with REPLACE, ABSTTL, IDLETIME and FREQ', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('key', 0, 'value', {
|
||||
REPLACE: true,
|
||||
ABSTTL: true,
|
||||
IDLETIME: 1,
|
||||
FREQ: 2
|
||||
}),
|
||||
['RESTORE', 'key', '0', 'value', 'REPLACE', 'ABSTTL', 'IDLETIME', '1', 'FREQ', '2']
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
testUtils.testWithClient('client.restore', async client => {
|
||||
const [, dump] = await Promise.all([
|
||||
client.set('source', 'value'),
|
||||
client.dump(client.commandOptions({ returnBuffers: true }), 'source')
|
||||
]);
|
||||
|
||||
assert.equal(
|
||||
await client.restore('destination', 0, dump),
|
||||
'OK'
|
||||
);
|
||||
}, GLOBAL.SERVERS.OPEN);
|
||||
});
|
Reference in New Issue
Block a user