hemera-redis-store
Version:
340 lines (315 loc) • 7.76 kB
JavaScript
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()
})