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

fix COPY spec

This commit is contained in:
dovi
2023-05-02 20:02:03 -04:00
parent ca90d51fb8
commit 3dfea00318
3 changed files with 48 additions and 57 deletions

View File

@@ -1,67 +1,54 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { transformArguments, transformReply } from './COPY';
import COPY from './COPY';
describe('COPY', () => {
testUtils.isVersionGreaterThanHook([6, 2]);
testUtils.isVersionGreaterThanHook([6, 2]);
describe('transformArguments', () => {
it('simple', () => {
assert.deepEqual(
transformArguments('source', 'destination'),
['COPY', 'source', 'destination']
);
});
it('with destination DB flag', () => {
assert.deepEqual(
transformArguments('source', 'destination', {
destinationDb: 1
}),
['COPY', 'source', 'destination', 'DB', '1']
);
});
it('with replace flag', () => {
assert.deepEqual(
transformArguments('source', 'destination', {
replace: true
}),
['COPY', 'source', 'destination', 'REPLACE']
);
});
it('with both flags', () => {
assert.deepEqual(
transformArguments('source', 'destination', {
destinationDb: 1,
replace: true
}),
['COPY', 'source', 'destination', 'DB', '1', 'REPLACE']
);
});
describe('transformArguments', () => {
it('simple', () => {
assert.deepEqual(
COPY.transformArguments('source', 'destination'),
['COPY', 'source', 'destination']
);
});
describe('transformReply', () => {
it('0', () => {
assert.equal(
transformReply(0),
false
);
});
it('1', () => {
assert.equal(
transformReply(1),
true
);
});
it('with destination DB flag', () => {
assert.deepEqual(
COPY.transformArguments('source', 'destination', {
DB: 1
}),
['COPY', 'source', 'destination', 'DB', '1']
);
});
testUtils.testWithClient('client.copy', async client => {
assert.equal(
await client.copy('source', 'destination'),
false
);
}, GLOBAL.SERVERS.OPEN);
it('with replace flag', () => {
assert.deepEqual(
COPY.transformArguments('source', 'destination', {
REPLACE: true
}),
['COPY', 'source', 'destination', 'REPLACE']
);
});
it('with both flags', () => {
assert.deepEqual(
COPY.transformArguments('source', 'destination', {
DB: 1,
REPLACE: true
}),
['COPY', 'source', 'destination', 'DB', '1', 'REPLACE']
);
});
});
testUtils.testAll('copy', async client => {
assert.equal(
await client.copy('{tag}source', '{tag}destination'),
false
);
}, {
client: GLOBAL.SERVERS.OPEN,
cluster: GLOBAL.CLUSTERS.OPEN
});
});

View File

@@ -7,6 +7,7 @@ export interface CopyCommandOptions {
export default {
FIRST_KEY_INDEX: 1,
IS_READ_ONLY: false,
transformArguments(source: RedisArgument, destination: RedisArgument, options?: CopyCommandOptions) {
const args = ['COPY', source, destination];

View File

@@ -40,6 +40,7 @@ import CLUSTER_SLOTS from './CLUSTER_SLOTS';
import CLUSTER_MEET from './CLUSTER_MEET';
import CLUSTER_MYID from './CLUSTER_MYID';
import CLUSTER_REPLICATE from './CLUSTER_REPLICATE';
import COPY from './COPY';
import DECR from './DECR';
import DECRBY from './DECRBY';
import DEL from './DEL';
@@ -267,6 +268,8 @@ export default {
clusterMyId: CLUSTER_MYID,
CLUSTER_REPLICATE,
clusterReplicate: CLUSTER_REPLICATE,
COPY,
copy: COPY,
DECR,
decr: DECR,
DECRBY,