From 2ec03798a40d927718bbef429a58ed29a93a8403 Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Tue, 2 Jun 2015 15:56:39 +0900 Subject: [PATCH] Add a test to verify that older entries get dropped from TtlSet. --- test/util/ttlset.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/util/ttlset.js b/test/util/ttlset.js index a0bb552f..6c0f418e 100644 --- a/test/util/ttlset.js +++ b/test/util/ttlset.js @@ -1,10 +1,34 @@ var chai = require('chai') +var sinon = require('sinon') var expect = chai.expect +chai.use(require('sinon-chai')) var TtlSet = require('../../lib/util/ttlset') describe('TtlSet', function() { + it.only('should timeout old entries', function(done) { + var ttlset = new TtlSet(50) + + var spy = sinon.spy() + ttlset.on('timeout', spy) + + ttlset.bump(1, Date.now()) + ttlset.bump(2, Date.now() + 100) + ttlset.bump(3, Date.now() + 200) + ttlset.bump(4, Date.now() + 1000) + + setTimeout(function() { + expect(spy).to.have.been.calledThrice + expect(spy).to.have.been.calledWith(1) + expect(spy).to.have.been.calledWith(2) + expect(spy).to.have.been.calledWith(3) + expect(ttlset.head).to.equal(ttlset.tail) + ttlset.stop() + done() + }, 300) + }) + describe('bump', function() { it('should create an item for the value if none exists', function(done) {