UNPKG

hemera-redis-store

Version:
211 lines (197 loc) 4.69 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('test') client.set('test', 'value') } hemera.ready(() => { init() tap.test('这是一个关于Redis zset类型的(exists)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'exists', key: 'test' }).then(resp => { t.equal(1, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(expire)测试', (t) => { t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'expire', key: 'test', delaytime: 1 }).then(resp => { setTimeout(()=>{ hemera.act({ topic: 'redis-store', cmd: 'get', key: 'test' }).then(resp => { t.equal(null, resp.data) }, err => { t.error(err) }) }, 1500) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(pexpire)测试', (t) => { init() t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'pexpire', key: 'test', delaytime: 1000 }).then(resp => { setTimeout(()=>{ hemera.act({ topic: 'redis-store', cmd: 'get', key: 'test' }).then(resp => { t.equal(null, resp.data) }, err => { t.error(err) }) }, 1500) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(expireat)测试', (t) => { init() const timestamp = (new Date()).valueOf() t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'expireat', key: 'test', delaytime: parseInt(timestamp / 1000) + 1 }).then(resp => { setTimeout(()=>{ hemera.act({ topic: 'redis-store', cmd: 'get', key: 'test' }).then(resp => { t.equal(null, resp.data) }, err => { t.error(err) }) }, 1500) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(pexpireat)测试', (t) => { init() const timestamp = (new Date()).valueOf() t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'pexpireat', key: 'test', delaytime: timestamp + 1000 }).then(resp => { setTimeout(()=>{ hemera.act({ topic: 'redis-store', cmd: 'get', key: 'test' }).then(resp => { t.equal(null, resp.data) }, err => { t.error(err) }) }, 1500) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(pexpireat)测试', (t) => { init() t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'pexpire', key: 'test', delaytime: 1500 }).then(resp => { hemera.act({ topic: 'redis-store', cmd: 'persist', key: 'test' }).then(resp => { setTimeout(()=>{ hemera.act({ topic: 'redis-store', cmd: 'get', key: 'test' }).then(resp => { t.equal('value', resp.data) }, err => { t.error(err) }) }, 2000) }, err => { t.error(err) }) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(ttl)测试', (t) => { init() t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'ttl', key: 'test' }).then(resp => { t.equal(-1, resp.data) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(keys)测试', (t) => { init() t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'keys', pattern: 'test' }).then(resp => { t.equal(1, resp.data.length) }, err => { t.error(err) }) }) tap.test('这是一个关于Redis zset类型的(lastsave)测试', (t) => { init() t.plan(1); hemera.act({ topic: 'redis-store', cmd: 'lastsave' }).then(resp => { t.ok(resp.data) }, err => { t.error(err) }) }) }) tap.tearDown(() => { console.log("tap.tearDown") hemera.close() })