UNPKG

hemera-redis-store

Version:
340 lines (315 loc) 7.76 kB
const tap = require("tap") const Hemera = require('nats-hemera') const Nats = require("hemera-testsuite/nats") const nats = new Nats() const hemera = new Hemera(nats) hemera.register(require("./init")) function init() { const client = hemera.redis.client client.del('zset') client.del('zset1') client.zadd('zset', 2, 'test') client.zadd('zset', 1, '123') client.zadd('zset', 1, 'hello') client.zadd('zset', 4, [1, 2, 3]) client.zadd('zset', 4, ['abc', 123]) client.zadd('zset', 5, 'hello word') client.zadd('zset1', 1, 'hello') client.zadd('zset1', 4, [1, 2, 3]) client.zadd('zset1', 4, ['abc', 123]) client.zadd('zset1', 5, 'hello word') client.zadd('zset1', 4, 'z word') client.zadd('zset1', 3, 'h word') client.zadd('zset1', 0, 'a') client.zadd('zset1', 1, 'b') client.zadd('zset1', 2, 'c') } hemera.ready(() => { init() tap.test('这是一个关于Redis zset类型的(zadd)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zadd', key: 'zset', score: 0, member: { name: 'name', value: 'value' } }).then(resp => { t.equal(1, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrange)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrange', key: 'zset', start: 0, stop: 3 }).then(resp => { t.equal('123', resp.data[1]) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrange + withscores)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrange', key: 'zset', start: 0, stop: 3, withscores: 'WITHSCORES' }).then(resp => { t.equal(8, resp.data.length) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zcard)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zcard', key: 'zset' }).then(resp => { t.equal(7, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zcount)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zcount', key: 'zset', min: 0, max: 2 }).then(resp => { t.equal(4, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zincrby)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zincrby', key: 'zset', number: 2, member: 'hello word' }).then(resp => { t.equal('7', resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zinterstore)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zinterstore', new_key: 'new_zset', num_keys: [2, 'zset', 'zset1'] }).then(resp => { t.equal(4, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zlexcount)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zlexcount', key: 'zset1', min: '[a', max: '[c' }).then(resp => { t.equal(2, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrangebylex)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrangebylex', key: 'zset1', min: '[a', max: '[z' }).then(resp => { t.equal(7, resp.data.length) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrangebylex+limit)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrangebylex', key: 'zset1', min: '[a', max: '[z', limit: 'LIMIT', offset: 0, count: 3 }).then(resp => { t.equal(3, resp.data.length) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrevrangebylex)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrevrangebylex', key: 'zset1', min: '[a', max: '(z', }).then(resp => { t.equal(3, resp.data.length) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrevrangebylex+limit)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrevrangebylex', key: 'zset1', min: '[a', max: '[z', limit: 'LIMIT', offset: 0, count: 1 }).then(resp => { t.equal(1, resp.data.length) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrank)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrank', key: 'zset', member: 'hello' }).then(resp => { t.equal(2, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zscore)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zscore', key: 'zset', member: 'hello' }).then(resp => { t.equal('1', resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrevrank)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrevrank', key: 'zset', member: 'hello' }).then(resp => { t.equal(4, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zremrangebylex)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zremrangebylex', key: 'zset1', min: '[a', max: '[c' }).then(resp => { t.equal(2, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zremrangebyscore)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zremrangebyscore', key: 'zset1', min: 0, max: 3 }).then(resp => { t.equal(3, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zremrangebyrank)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zremrangebyrank', key: 'zset1', start: 0, stop: 2 }).then(resp => { t.equal(3, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrevrange)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrevrange', key: 'zset', start: 0, stop: 3 }).then(resp => { t.equal(4, resp.data.length) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(zrevrange+withscores)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'zrevrange', key: 'zset', start: 0, stop: 3, withscores: 'WITHSCORES' }).then(resp => { t.equal(8, resp.data.length) }, err => { t.error(err) }) }) }) tap.tearDown(() => { console.log("tap.tearDown") hemera.close() })