Skip to content

Commit 7026a27

Browse files
authored
Merge e4fa732 into 85091cd
2 parents 85091cd + e4fa732 commit 7026a27

File tree

4 files changed

+59
-1
lines changed

4 files changed

+59
-1
lines changed

Diff for: packages/json/lib/commands/MSET.spec.ts

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { strict as assert } from 'assert';
2+
import testUtils, { GLOBAL } from '../test-utils';
3+
import { transformArguments } from './MSET';
4+
5+
describe('MSET', () => {
6+
testUtils.isVersionGreaterThanHook([2, 6]);
7+
8+
describe('transformArguments', () => {
9+
it('transformArguments', () => {
10+
assert.deepEqual(
11+
transformArguments([{
12+
key: 'key',
13+
path: '$',
14+
value: 'json'
15+
}, {
16+
key: 'key2',
17+
path: '$',
18+
value: 'json2'
19+
}]),
20+
['JSON.MSET', 'key', '$', '"json"', 'key2', '$', '"json2"']
21+
);
22+
});
23+
});
24+
25+
26+
testUtils.testWithClient('client.json.mSet', async client => {
27+
assert.equal(
28+
await client.json.mSet([{ key: "key", path: "$", value: "json" }, { key: "key2", path: "$", value: "json2" }]),
29+
'OK'
30+
);
31+
}, GLOBAL.SERVERS.OPEN);
32+
});

Diff for: packages/json/lib/commands/MSET.ts

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { RedisJSON, transformRedisJsonArgument} from '.';
2+
import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands';
3+
4+
export const FIRST_KEY_INDEX = 1;
5+
6+
export interface KeyPathValue {
7+
key: RedisCommandArgument;
8+
path: RedisCommandArgument;
9+
value: RedisJSON;
10+
}
11+
12+
export function transformArguments(keyPathValues: Array<KeyPathValue>): RedisCommandArguments {
13+
const args: RedisCommandArguments = ['JSON.MSET'];
14+
15+
for (const { key, path, value } of keyPathValues) {
16+
args.push(key, path, transformRedisJsonArgument(value));
17+
}
18+
19+
return args;
20+
}
21+
22+
export declare function transformReply(): 'OK';

Diff for: packages/json/lib/commands/index.ts

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import * as DEL from './DEL';
99
import * as FORGET from './FORGET';
1010
import * as GET from './GET';
1111
import * as MGET from './MGET';
12+
import * as MSET from './MSET';
1213
import * as NUMINCRBY from './NUMINCRBY';
1314
import * as NUMMULTBY from './NUMMULTBY';
1415
import * as OBJKEYS from './OBJKEYS';
@@ -42,6 +43,8 @@ export default {
4243
get: GET,
4344
MGET,
4445
mGet: MGET,
46+
MSET,
47+
mSet: MSET,
4548
NUMINCRBY,
4649
numIncrBy: NUMINCRBY,
4750
NUMMULTBY,

Diff for: packages/json/lib/test-utils.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import RedisJSON from '.';
33

44
export default new TestUtils({
55
dockerImageName: 'redislabs/rejson',
6-
dockerImageVersionArgument: 'rejson-version'
6+
dockerImageVersionArgument: 'rejson-version',
7+
defaultDockerVersion: 'edge'
78
});
89

910
export const GLOBAL = {

0 commit comments

Comments
 (0)