You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-04 15:02:09 +03:00
* Fix issue with buffers in objects using hSet When using hSet with an object, any buffer values inside the object are converted to strings instead of left as buffers. This fix specifically handles the special case of buffers, whilst casting everything else strings (to continue "gracefully" handling the case where the value not a valid type). * Update HSET.ts * Update HSET.spec.ts Co-authored-by: Leibale Eidelman <leibale1998@gmail.com>
75 lines
2.3 KiB
TypeScript
75 lines
2.3 KiB
TypeScript
import { strict as assert } from 'assert';
|
|
import { transformArguments } from './HSET';
|
|
import testUtils, { GLOBAL } from '../test-utils';
|
|
|
|
describe('HSET', () => {
|
|
describe('transformArguments', () => {
|
|
describe('field, value', () => {
|
|
it('string', () => {
|
|
assert.deepEqual(
|
|
transformArguments('key', 'field', 'value'),
|
|
['HSET', 'key', 'field', 'value']
|
|
);
|
|
});
|
|
|
|
it('number', () => {
|
|
assert.deepEqual(
|
|
transformArguments('key', 1, 2),
|
|
['HSET', 'key', '1', '2']
|
|
);
|
|
});
|
|
|
|
it('Buffer', () => {
|
|
assert.deepEqual(
|
|
transformArguments(Buffer.from('key'), Buffer.from('field'), Buffer.from('value')),
|
|
['HSET', Buffer.from('key'), Buffer.from('field'), Buffer.from('value')]
|
|
);
|
|
});
|
|
});
|
|
|
|
it('Map', () => {
|
|
assert.deepEqual(
|
|
transformArguments('key', new Map([['field', 'value']])),
|
|
['HSET', 'key', 'field', 'value']
|
|
);
|
|
});
|
|
|
|
it('Array', () => {
|
|
assert.deepEqual(
|
|
transformArguments('key', [['field', 'value']]),
|
|
['HSET', 'key', 'field', 'value']
|
|
);
|
|
});
|
|
|
|
describe('Object', () => {
|
|
it('string', () => {
|
|
assert.deepEqual(
|
|
transformArguments('key', { field: 'value' }),
|
|
['HSET', 'key', 'field', 'value']
|
|
);
|
|
});
|
|
|
|
it('Buffer', () => {
|
|
assert.deepEqual(
|
|
transformArguments('key', { field: Buffer.from('value') }),
|
|
['HSET', 'key', 'field', Buffer.from('value')]
|
|
);
|
|
});
|
|
});
|
|
});
|
|
|
|
testUtils.testWithClient('client.hSet', async client => {
|
|
assert.equal(
|
|
await client.hSet('key', 'field', 'value'),
|
|
1
|
|
);
|
|
}, GLOBAL.SERVERS.OPEN);
|
|
|
|
testUtils.testWithCluster('cluster.hSet', async cluster => {
|
|
assert.equal(
|
|
await cluster.hSet('key', { field: 'value' }),
|
|
1
|
|
);
|
|
}, GLOBAL.CLUSTERS.OPEN);
|
|
});
|