hemera-redis-store
Version:
205 lines (192 loc) • 4.45 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"))
hemera.ready(() => {
hemera.act({
topic: 'redis-store',
cmd: 'del',
key: 'string',
})
tap.test('这是一个关于Redis string类型的(set)测试', (t) => {
t.plan(1);
hemera.act({
topic: 'redis-store',
cmd: 'set',
key: 'string',
value: 1000
}).then(resp => {
t.equal('OK', resp.data)
}, err => {
t.error(err)
})
})
tap.test('这是一个关于Redis string类型的(get)测试', (t) => {
t.plan(1);
hemera.act({
topic: 'redis-store',
cmd: 'get',
key: 'string'
}).then(resp => {
t.equal('1000', resp.data)
}, err => {
t.error(err)
})
})
tap.test('这是一个关于Redis string类型的(incr,decr,incrby,decrby)测试', (t) => {
t.plan(5);
hemera.act({
topic: 'redis-store',
cmd: 'andsub',
method: 'incr',
key: 'string'
}).then(resp => {
t.equal(1001, resp.data)
}, err => {
t.error(err)
})
hemera.act({
topic: 'redis-store',
cmd: 'andsub',
method: 'decr',
key: 'string'
}).then(resp => {
t.equal(1000, resp.data)
}, err => {
t.error(err)
})
hemera.act({
topic: 'redis-store',
cmd: 'andsub',
method: 'incrby',
key: 'string',
number: 888
}).then(resp => {
t.equal(1888, resp.data)
}, err => {
t.error(err)
})
hemera.act({
topic: 'redis-store',
cmd: 'andsub',
method: 'decrby',
key: 'string',
number: 1000
}).then(resp => {
t.equal(888, resp.data)
}, err => {
t.error(err)
})
hemera.act({
topic: 'redis-store',
cmd: 'incrbyfloat',
key: 'string',
number: 112.5
}).then(resp => {
t.equal('1000.5', resp.data)
}, err => {
t.error(err)
})
})
tap.test('这是一个关于Redis string类型的(append)测试', (t) => {
t.plan(1);
hemera.act({
topic: 'redis-store',
cmd: 'append',
key: 'string',
value: 1000
}).then(resp => {
hemera.act({
topic: 'redis-store',
cmd: 'get',
key: 'string'
}).then(resp => {
t.equal('1000.51000', resp.data)
}, err => {
t.error(err)
})
}, err => {
t.error(err)
})
})
tap.test('这是一个关于Redis string类型的(getrange)测试', (t) => {
t.plan(1);
hemera.act({
topic: 'redis-store',
cmd: 'getrange',
key: 'string',
start: 5,
end: 9
}).then(resp => {
t.equal('51000', resp.data)
}, err => {
t.error(err)
})
})
tap.test('这是一个关于Redis string类型的(setrange)测试', (t) => {
t.plan(1);
hemera.act({
topic: 'redis-store',
cmd: 'setrange',
key: 'string',
offset: 5,
value: '9999'
}).then(resp => {
hemera.act({
topic: 'redis-store',
cmd: 'get',
key: 'string'
}).then(resp => {
t.equal('1000.99990', resp.data)
}, err => {
t.error(err)
})
}, err => {
t.error(err)
})
})
tap.test('这是一个关于Redis string类型的(del)测试', (t) => {
t.plan(1);
hemera.act({
topic: 'redis-store',
cmd: 'del',
key: 'string',
}).then(resp => {
t.equal(1, resp.data)
}, err => {
t.error(err)
})
})
tap.test('这是一个关于Redis string类型的(setex)测试', (t) => {
t.plan(2);
hemera.act({
topic: 'redis-store',
cmd: 'setex',
key: 'hello1',
value: 1000,
mode: 'EX',
delaytime: 2
}).then(resp => {
t.equal('OK', resp.data)
}, err => {
t.error(err)
})
setTimeout(()=>{
hemera.act({
topic: 'redis-store',
cmd: 'get',
key: 'hello1'
}).then(resp => {
t.equal(null, resp.data)
}, err => {
t.error(err)
})
},3000)
})
})
tap.tearDown(() => {
console.log("tap.tearDown")
hemera.close()
})