mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
190 lines
4.9 KiB
JavaScript
190 lines
4.9 KiB
JavaScript
|
|
/**
|
|
* Test dependencies
|
|
*
|
|
* @api private
|
|
*/
|
|
|
|
var sio = require('socket.io')
|
|
, should = require('should')
|
|
, MemoryStore = sio.MemoryStore;
|
|
|
|
/**
|
|
* Test.
|
|
*/
|
|
|
|
module.exports = {
|
|
|
|
'test storing data for a client': function (done) {
|
|
var store = new MemoryStore
|
|
, client = store.client('test');
|
|
|
|
client.id.should.equal('test');
|
|
|
|
client.set('a', 'b', function (err) {
|
|
should.strictEqual(err, null);
|
|
|
|
client.get('a', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.eql('b');
|
|
|
|
client.has('a', function (err, has) {
|
|
should.strictEqual(err, null);
|
|
has.should.be.true;
|
|
|
|
client.has('b', function (err, has) {
|
|
should.strictEqual(err, null);
|
|
has.should.be.false;
|
|
|
|
client.del('a', function (err) {
|
|
should.strictEqual(err, null);
|
|
|
|
client.has('a', function (err, has) {
|
|
should.strictEqual(err, null);
|
|
has.should.be.false;
|
|
|
|
client.set('b', 'c', function (err) {
|
|
should.strictEqual(err, null);
|
|
|
|
client.set('c', 'd', function (err) {
|
|
should.strictEqual(err, null);
|
|
|
|
client.get('b', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.equal('c');
|
|
|
|
client.get('c', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.equal('d');
|
|
|
|
store.destroy();
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
},
|
|
|
|
'test cleaning up clients data': function (done) {
|
|
var rand1 = Math.abs(Math.random() * Date.now() | 0)
|
|
, rand2 = Math.abs(Math.random() * Date.now() | 0);
|
|
|
|
var store = new MemoryStore()
|
|
, client1 = store.client(rand1)
|
|
, client2 = store.client(rand2);
|
|
|
|
client1.set('a', 'b', function (err) {
|
|
should.strictEqual(err, null);
|
|
|
|
client2.set('c', 'd', function (err) {
|
|
should.strictEqual(err, null);
|
|
|
|
client1.has('a', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.be.true;
|
|
|
|
client2.has('c', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.be.true;
|
|
|
|
store.destroy();
|
|
|
|
var newstore = new MemoryStore()
|
|
, newclient1 = newstore.client(rand1)
|
|
, newclient2 = newstore.client(rand2);
|
|
|
|
newclient1.has('a', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.be.false;
|
|
|
|
newclient2.has('c', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.be.false;
|
|
|
|
newstore.destroy();
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
},
|
|
|
|
'test cleaning up a particular client': function (done) {
|
|
var rand1 = Math.abs(Math.random() * Date.now() | 0)
|
|
, rand2 = Math.abs(Math.random() * Date.now() | 0);
|
|
|
|
var store = new MemoryStore()
|
|
, client1 = store.client(rand1)
|
|
, client2 = store.client(rand2);
|
|
|
|
client1.set('a', 'b', function (err) {
|
|
should.strictEqual(err, null);
|
|
|
|
client2.set('c', 'd', function (err) {
|
|
should.strictEqual(err, null);
|
|
|
|
client1.has('a', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.be.true;
|
|
|
|
client2.has('c', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.be.true;
|
|
|
|
store.clients.should.have.property(rand1);
|
|
store.clients.should.have.property(rand2);
|
|
store.destroyClient(rand1);
|
|
|
|
store.clients.should.not.have.property(rand1);
|
|
store.clients.should.have.property(rand2);
|
|
|
|
client1.has('a', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.equal(false);
|
|
|
|
store.destroy();
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
},
|
|
|
|
'test destroy expiration': function (done) {
|
|
var store = new MemoryStore()
|
|
, id = Math.abs(Math.random() * Date.now() | 0)
|
|
, client = store.client(id);
|
|
|
|
client.set('a', 'b', function (err) {
|
|
should.strictEqual(err, null);
|
|
store.destroyClient(id, 1);
|
|
|
|
setTimeout(function () {
|
|
client.get('a', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
val.should.equal('b');
|
|
});
|
|
}, 500);
|
|
|
|
setTimeout(function () {
|
|
client.get('a', function (err, val) {
|
|
should.strictEqual(err, null);
|
|
should.strictEqual(val, null);
|
|
|
|
store.destroy();
|
|
done();
|
|
});
|
|
}, 1900);
|
|
});
|
|
}
|
|
|
|
};
|